From f9bc6f4389f283e03d25c376f03912f7e1ae5b9a Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:02:19 -0300 Subject: [PATCH 1/6] (feat) Added support for the latest version of Permissions module. Updated all examples for that module too. Refactored the logic to update the compiled protos --- Makefile | 134 +- buf.gen.chain.yaml | 20 + buf.gen.indexer.yaml | 21 + chain/auction/types/auction.pb.go | 164 +- chain/auction/types/errors.go | 8 - chain/auction/types/events.go | 6 - chain/auction/types/expected_keepers.go | 16 - chain/auction/types/genesis.go | 21 - chain/auction/types/key.go | 16 - chain/auction/types/msgs.go | 95 - chain/auction/types/params.go | 103 - chain/auction/types/paramset.go | 26 - chain/codec/codec.go | 1 + chain/crypto/codec/amino.go | 1 - chain/crypto/keyring/options.go | 44 - chain/exchange/types/common_utils.go | 33 - chain/exchange/types/derivative_orders.go | 8 + chain/exchange/types/errors.go | 3 +- chain/exchange/types/exchange.pb.go | 694 ++- chain/exchange/types/msgs.go | 14 +- chain/exchange/types/params.go | 57 +- chain/exchange/types/proposal.go | 39 +- chain/exchange/types/proposal.pb.go | 427 +- chain/exchange/types/query.pb.go | 2064 +++++-- chain/exchange/types/reclamation.go | 41 - chain/exchange/types/spot_orders.go | 16 +- chain/exchange/types/tx.pb.go | 556 +- chain/exchange/types/wasm_maker_contract.go | 23 - chain/helpers/common.go | 27 + chain/insurance/types/errors.go | 20 - chain/insurance/types/events.go | 1 - chain/insurance/types/expected_keepers.go | 20 - chain/insurance/types/genesis.go | 33 - chain/insurance/types/insurance.go | 56 - chain/insurance/types/key.go | 38 - chain/insurance/types/msgs.go | 184 - chain/insurance/types/params.go | 78 - chain/insurance/types/paramset.go | 26 - chain/ocr/types/expected_keepers.go | 29 - chain/ocr/types/genesis.go | 18 - chain/ocr/types/hooks.go | 38 - chain/ocr/types/msgs.go | 470 -- chain/oracle/types/band_ibc.go | 129 - chain/oracle/types/coinbase_oracle.go | 101 - chain/oracle/types/events.go | 6 - chain/oracle/types/expected_keepers.go | 46 - chain/oracle/types/genesis.go | 23 - chain/oracle/types/paramset.go | 26 - chain/oracle/types/pyth.go | 75 - chain/oracle/types/stork.go | 29 - chain/peggy/types/batch.go | 67 - chain/peggy/types/events.go | 28 - chain/peggy/types/expected_keepers.go | 54 - chain/peggy/types/genesis.go | 19 - chain/peggy/types/params_legacy.go | 108 - chain/peggy/types/proposal.go | 76 - chain/peggy/types/proposal.pb.go | 667 --- chain/permissions/types/codec.go | 6 - chain/permissions/types/errors.go | 24 - chain/permissions/types/expected_keepers.go | 26 - chain/permissions/types/genesis.go | 38 - chain/permissions/types/genesis.pb.go | 104 +- chain/permissions/types/msgs.go | 227 - chain/permissions/types/params.go | 33 - chain/permissions/types/permissions.pb.go | 1785 ++++-- chain/permissions/types/query.pb.go | 4837 +++++++++++---- chain/permissions/types/tx.pb.go | 2303 ++----- chain/permissions/types/types.go | 156 - chain/stream/types/query.pb.go | 268 +- chain/stream/types/request.go | 54 - chain/stream/types/response.go | 84 - chain/tokenfactory/types/authorityMetadata.go | 15 - .../types/authorityMetadata.pb.go | 84 +- chain/tokenfactory/types/denoms.go | 117 - chain/tokenfactory/types/errors.go | 25 - chain/tokenfactory/types/events.pb.go | 441 +- chain/tokenfactory/types/expected_keepers.go | 35 - chain/tokenfactory/types/genesis.go | 51 - chain/tokenfactory/types/gov.go | 54 - chain/tokenfactory/types/gov.pb.go | 465 -- chain/tokenfactory/types/keys.go | 50 - chain/tokenfactory/types/msgs.go | 288 - chain/tokenfactory/types/params.go | 63 - chain/tokenfactory/types/tx.pb.go | 508 +- chain/types/account.go | 186 - chain/types/chain_id.go | 54 - chain/types/code.go | 12 - chain/types/coin.go | 33 - chain/types/errors.go | 15 - chain/types/gas.go | 97 - chain/types/int.go | 22 - chain/types/params.go | 8 - chain/wasmx/types/exec_callback_msgs.go | 25 - chain/wasmx/types/exec_msgs.go | 26 - chain/wasmx/types/expected_keepers.go | 28 - chain/wasmx/types/genesis.go | 18 - chain/wasmx/types/paramset.go | 26 - chain/wasmx/types/util.go | 17 - client/chain/chain.go | 115 +- client/chain/chain_test_support.go | 48 +- client/chain/markets_assistant.go | 56 +- .../1_MsgCreateNamespace/example.go | 135 + .../permissions/2_DeleteNamespace/example.go | 74 - .../2_MsgUpdateNamespace/example.go | 113 + .../example.go | 43 +- .../permissions/3_UpdateNamespace/example.go | 78 - .../example.go | 0 .../4_UpdateNamespaceRoles/example.go | 91 - .../5_RevokeNamespaceRoles/example.go | 81 - .../example.go | 6 +- .../permissions/query/11_Voucher/example.go | 70 + .../12_PermissionsModuleState/example.go | 69 + .../query/1_NamespaceDenoms/example.go | 69 + .../example.go | 2 +- .../example.go | 2 +- .../example.go | 4 +- .../example.go | 2 +- .../query/6_RoleManagers/example.go | 69 + .../query/7_RoleManager/example.go | 70 + .../query/8_PolicyStatuses/example.go | 69 + .../9_PolicyManagerCapabilities/example.go | 69 + ...design_goagen_injective_accounts_rpc.pb.go | 2 +- ...n_goagen_injective_accounts_rpc_grpc.pb.go | 2 +- ...design_goagen_injective_accounts_rpc.pb.go | 5333 ----------------- ...n_goagen_injective_accounts_rpc_grpc.pb.go | 508 -- .../pb/pb/injective_accounts_rpc.pb.gw.go | 882 --- .../pb/pb/injective_accounts_rpc.proto | 623 -- ...adesign_goagen_injective_auction_rpc.pb.go | 2 +- ...gn_goagen_injective_auction_rpc_grpc.pb.go | 2 +- ...design_goagen_injective_campaign_rpc.pb.go | 524 +- ...n_goagen_injective_campaign_rpc_grpc.pb.go | 2 +- .../pb/injective_campaign_rpc.proto | 13 +- ...en_injective_derivative_exchange_rpc.pb.go | 1067 ++-- ...jective_derivative_exchange_rpc_grpc.pb.go | 2 +- .../injective_derivative_exchange_rpc.proto | 14 +- .../pb/event_provider_api.pb.gw.go | 569 ++ .../pb/event_provider_api.proto | 180 + .../pb/event_provider_api_grpc.pb_mock.go | 563 ++ .../goadesign_goagen_event_provider_api.pb.go | 1881 ++++++ ...esign_goagen_event_provider_api_grpc.pb.go | 325 + ...design_goagen_injective_exchange_rpc.pb.go | 640 +- ...n_goagen_injective_exchange_rpc_grpc.pb.go | 40 +- .../pb/injective_exchange_rpc.pb.gw.go | 85 + .../pb/injective_exchange_rpc.proto | 30 +- ...design_goagen_injective_explorer_rpc.pb.go | 1970 +++--- ...n_goagen_injective_explorer_rpc_grpc.pb.go | 40 +- .../pb/injective_explorer_rpc.pb.gw.go | 85 + .../pb/injective_explorer_rpc.proto | 27 + .../pb/goadesign_goagen_health.pb.go | 30 +- .../pb/goadesign_goagen_health_grpc.pb.go | 2 +- exchange/health_rpc/pb/health.proto | 2 + ...esign_goagen_injective_insurance_rpc.pb.go | 6 +- ..._goagen_injective_insurance_rpc_grpc.pb.go | 2 +- .../pb/injective_insurance_rpc.proto | 4 +- .../goadesign_goagen_injective_meta_rpc.pb.go | 2 +- ...esign_goagen_injective_meta_rpc_grpc.pb.go | 2 +- ...oadesign_goagen_injective_oracle_rpc.pb.go | 2 +- ...ign_goagen_injective_oracle_rpc_grpc.pb.go | 2 +- ...esign_goagen_injective_portfolio_rpc.pb.go | 2 +- ..._goagen_injective_portfolio_rpc_grpc.pb.go | 2 +- ...n_goagen_injective_spot_exchange_rpc.pb.go | 963 +-- ...gen_injective_spot_exchange_rpc_grpc.pb.go | 2 +- .../pb/injective_spot_exchange_rpc.proto | 14 +- ...adesign_goagen_injective_trading_rpc.pb.go | 673 ++- ...gn_goagen_injective_trading_rpc_grpc.pb.go | 40 +- .../pb/injective_trading_rpc.pb.gw.go | 85 + .../pb/injective_trading_rpc.proto | 55 + .../pb/injective_trading_rpc_grpc.pb_mock.go | 50 +- go.mod | 71 +- go.sum | 128 +- 170 files changed, 18334 insertions(+), 20402 deletions(-) create mode 100644 buf.gen.chain.yaml create mode 100644 buf.gen.indexer.yaml delete mode 100644 chain/auction/types/errors.go delete mode 100644 chain/auction/types/events.go delete mode 100644 chain/auction/types/expected_keepers.go delete mode 100644 chain/auction/types/genesis.go delete mode 100644 chain/auction/types/key.go delete mode 100644 chain/auction/types/msgs.go delete mode 100644 chain/auction/types/params.go delete mode 100644 chain/auction/types/paramset.go delete mode 100644 chain/crypto/keyring/options.go delete mode 100644 chain/exchange/types/reclamation.go delete mode 100644 chain/exchange/types/wasm_maker_contract.go create mode 100644 chain/helpers/common.go delete mode 100644 chain/insurance/types/errors.go delete mode 100644 chain/insurance/types/events.go delete mode 100644 chain/insurance/types/expected_keepers.go delete mode 100644 chain/insurance/types/genesis.go delete mode 100644 chain/insurance/types/insurance.go delete mode 100644 chain/insurance/types/key.go delete mode 100644 chain/insurance/types/msgs.go delete mode 100644 chain/insurance/types/params.go delete mode 100644 chain/insurance/types/paramset.go delete mode 100644 chain/ocr/types/expected_keepers.go delete mode 100644 chain/ocr/types/genesis.go delete mode 100644 chain/ocr/types/hooks.go delete mode 100644 chain/ocr/types/msgs.go delete mode 100644 chain/oracle/types/band_ibc.go delete mode 100644 chain/oracle/types/coinbase_oracle.go delete mode 100644 chain/oracle/types/events.go delete mode 100644 chain/oracle/types/expected_keepers.go delete mode 100644 chain/oracle/types/genesis.go delete mode 100644 chain/oracle/types/paramset.go delete mode 100644 chain/oracle/types/pyth.go delete mode 100644 chain/oracle/types/stork.go delete mode 100644 chain/peggy/types/batch.go delete mode 100644 chain/peggy/types/events.go delete mode 100644 chain/peggy/types/expected_keepers.go delete mode 100644 chain/peggy/types/genesis.go delete mode 100644 chain/peggy/types/params_legacy.go delete mode 100644 chain/peggy/types/proposal.go delete mode 100644 chain/peggy/types/proposal.pb.go delete mode 100644 chain/permissions/types/errors.go delete mode 100644 chain/permissions/types/expected_keepers.go delete mode 100644 chain/permissions/types/genesis.go delete mode 100644 chain/permissions/types/msgs.go delete mode 100644 chain/permissions/types/params.go delete mode 100644 chain/permissions/types/types.go delete mode 100644 chain/stream/types/request.go delete mode 100644 chain/stream/types/response.go delete mode 100644 chain/tokenfactory/types/authorityMetadata.go delete mode 100644 chain/tokenfactory/types/denoms.go delete mode 100644 chain/tokenfactory/types/errors.go delete mode 100644 chain/tokenfactory/types/expected_keepers.go delete mode 100644 chain/tokenfactory/types/genesis.go delete mode 100644 chain/tokenfactory/types/gov.go delete mode 100644 chain/tokenfactory/types/gov.pb.go delete mode 100644 chain/tokenfactory/types/keys.go delete mode 100644 chain/tokenfactory/types/msgs.go delete mode 100644 chain/tokenfactory/types/params.go delete mode 100644 chain/types/account.go delete mode 100644 chain/types/chain_id.go delete mode 100644 chain/types/code.go delete mode 100644 chain/types/coin.go delete mode 100644 chain/types/errors.go delete mode 100644 chain/types/gas.go delete mode 100644 chain/types/int.go delete mode 100644 chain/types/params.go delete mode 100644 chain/wasmx/types/exec_callback_msgs.go delete mode 100644 chain/wasmx/types/exec_msgs.go delete mode 100644 chain/wasmx/types/expected_keepers.go delete mode 100644 chain/wasmx/types/genesis.go delete mode 100644 chain/wasmx/types/paramset.go delete mode 100644 chain/wasmx/types/util.go create mode 100644 examples/chain/permissions/1_MsgCreateNamespace/example.go delete mode 100644 examples/chain/permissions/2_DeleteNamespace/example.go create mode 100644 examples/chain/permissions/2_MsgUpdateNamespace/example.go rename examples/chain/permissions/{1_CreateNamespace => 3_MsgUpdateActorRoles}/example.go (64%) delete mode 100644 examples/chain/permissions/3_UpdateNamespace/example.go rename examples/chain/permissions/{6_ClaimVoucher => 4_MsgClaimVoucher}/example.go (100%) delete mode 100644 examples/chain/permissions/4_UpdateNamespaceRoles/example.go delete mode 100644 examples/chain/permissions/5_RevokeNamespaceRoles/example.go rename examples/chain/permissions/query/{5_VouchersForAddress => 10_Vouchers}/example.go (90%) create mode 100644 examples/chain/permissions/query/11_Voucher/example.go create mode 100644 examples/chain/permissions/query/12_PermissionsModuleState/example.go create mode 100644 examples/chain/permissions/query/1_NamespaceDenoms/example.go rename examples/chain/permissions/query/{1_AllNamespaces => 2_Namespaces}/example.go (95%) rename examples/chain/permissions/query/{2_NamespaceByDenom => 3_Namespace}/example.go (94%) rename examples/chain/permissions/query/{3_AddressRoles => 4_RolesByActor}/example.go (92%) rename examples/chain/permissions/query/{4_AddressesByRole => 5_ActorsByRole}/example.go (94%) create mode 100644 examples/chain/permissions/query/6_RoleManagers/example.go create mode 100644 examples/chain/permissions/query/7_RoleManager/example.go create mode 100644 examples/chain/permissions/query/8_PolicyStatuses/example.go create mode 100644 examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go delete mode 100644 exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go delete mode 100644 exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go delete mode 100644 exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go delete mode 100644 exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto create mode 100644 exchange/event_provider_api/pb/event_provider_api.pb.gw.go create mode 100644 exchange/event_provider_api/pb/event_provider_api.proto create mode 100644 exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go create mode 100644 exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go create mode 100644 exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go diff --git a/Makefile b/Makefile index 4492bf96..f1fea3f6 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ all: copy-exchange-client: rm -rf exchange/* + mkdir -p exchange/event_provider_api mkdir -p exchange/health_rpc mkdir -p exchange/accounts_rpc mkdir -p exchange/auction_rpc @@ -16,9 +17,9 @@ copy-exchange-client: mkdir -p exchange/spot_exchange_rpc mkdir -p exchange/trading_rpc + cp -r ../injective-indexer/api/gen/grpc/event_provider_api/pb exchange/event_provider_api/pb cp -r ../injective-indexer/api/gen/grpc/health/pb exchange/health_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_auction_rpc/pb exchange/auction_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_campaign_rpc/pb exchange/campaign_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_derivative_exchange_rpc/pb exchange/derivative_exchange_rpc/pb @@ -31,44 +32,109 @@ copy-exchange-client: cp -r ../injective-indexer/api/gen/grpc/injective_spot_exchange_rpc/pb exchange/spot_exchange_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_trading_rpc/pb exchange/trading_rpc/pb -.PHONY: copy-exchange-client tests coverage - copy-chain-types: - cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 + cp -r ../injective-core/injective-chain/codec chain + cp -r ../injective-core/injective-chain/helpers chain + mkdir -p chain/crypto/codec && cp ../injective-core/injective-chain/crypto/codec/*.go chain/crypto/codec + rm -rf chain/crypto/codec/*test.go rm -rf chain/crypto/codec/*gw.go + mkdir -p chain/crypto/ethsecp256k1 && cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 rm -rf chain/crypto/ethsecp256k1/*test.go rm -rf chain/crypto/ethsecp256k1/*gw.go - cp ../injective-core/injective-chain/codec/types/*.go chain/codec/types - rm -rf chain/codec/types/*test.go rm -rf chain/codec/types/*gw.go - cp ../injective-core/injective-chain/modules/auction/types/*.go chain/auction/types - rm -rf chain/auction/types/*test.go rm -rf chain/auction/types/*gw.go - cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types - rm -rf chain/exchange/types/*test.go rm -rf chain/exchange/types/*gw.go - cp ../injective-core/injective-chain/modules/insurance/types/*.go chain/insurance/types - rm -rf chain/insurance/types/*test.go rm -rf chain/insurance/types/*gw.go - cp ../injective-core/injective-chain/modules/ocr/types/*.go chain/ocr/types - rm -rf chain/ocr/types/*test.go rm -rf chain/ocr/types/*gw.go - cp ../injective-core/injective-chain/modules/oracle/types/*.go chain/oracle/types - cp -r ../injective-core/injective-chain/modules/oracle/bandchain chain/oracle - rm -rf chain/oracle/types/*test.go rm -rf chain/oracle/types/*gw.go - cp ../injective-core/injective-chain/modules/peggy/types/*.go chain/peggy/types - rm -rf chain/peggy/types/*test.go rm -rf chain/peggy/types/*gw.go - cp ../injective-core/injective-chain/modules/permissions/types/*.go chain/permissions/types - rm -rf chain/permissions/types/*test.go rm -rf chain/permissions/types/*gw.go - cp ../injective-core/injective-chain/modules/tokenfactory/types/*.go chain/tokenfactory/types - rm -rf chain/tokenfactory/types/*test.go rm -rf chain/tokenfactory/types/*gw.go - cp ../injective-core/injective-chain/modules/wasmx/types/*.go chain/wasmx/types - rm -rf chain/wasmx/types/*test.go rm -rf chain/wasmx/types/*gw.go - cp ../injective-core/injective-chain/stream/types/*.go chain/stream/types - rm -rf chain/stream/types/*test.go rm -rf chain/stream/types/*gw.go - cp ../injective-core/injective-chain/types/*.go chain/types - rm -rf chain/types/*test.go rm -rf chain/types/*gw.go + mkdir -p chain/crypto/hd && cp ../injective-core/injective-chain/crypto/hd/*.go chain/crypto/hd + rm -rf chain/crypto/hd/*test.go rm -rf chain/crypto/hd/*gw.go + mkdir -p chain/auction/types && \ + cp ../injective-core/injective-chain/modules/auction/types/*.pb.go chain/auction/types && \ + cp ../injective-core/injective-chain/modules/auction/types/codec.go chain/auction/types + mkdir -p chain/exchange/types && \ + cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types && \ + rm -rf chain/exchange/types/*test.go && rm -rf chain/exchange/types/*gw.go + mkdir -p chain/insurance/types && \ + cp ../injective-core/injective-chain/modules/insurance/types/*.pb.go chain/insurance/types && \ + cp ../injective-core/injective-chain/modules/insurance/types/codec.go chain/insurance/types + mkdir -p chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/*.pb.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/errors.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/key.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/params.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/proposal.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/types.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/codec.go chain/ocr/types + mkdir -p chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/*.pb.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/codec.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/errors.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/msgs.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types && \ + cp -r ../injective-core/injective-chain/modules/oracle/bandchain chain/oracle + mkdir -p chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/abi_json.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/codec.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/ethereum.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/ethereum_signer.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/errors.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/key.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/msgs.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/params.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/types.go chain/peggy/types + mkdir -p chain/permissions/types && \ + cp ../injective-core/injective-chain/modules/permissions/types/*.pb.go chain/permissions/types && \ + cp ../injective-core/injective-chain/modules/permissions/types/codec.go chain/permissions/types + mkdir -p chain/tokenfactory/types && \ + cp ../injective-core/injective-chain/modules/tokenfactory/types/*.pb.go chain/tokenfactory/types && \ + cp ../injective-core/injective-chain/modules/tokenfactory/types/codec.go chain/tokenfactory/types + mkdir -p chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/*.pb.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/codec.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/custom_execution.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/errors.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/key.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/msgs.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/params.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/proposal.go chain/wasmx/types + mkdir -p chain/stream/types && \ + cp ../injective-core/injective-chain/stream/types/*.pb.go chain/stream/types + mkdir -p chain/types && \ + cp ../injective-core/injective-chain/types/*.pb.go ../injective-core/injective-chain/types/config.go chain/types && \ + cp ../injective-core/injective-chain/types/codec.go chain/types - @echo "👉 Replace injective-core/injective-chain/modules with sdk-go/chain" - @echo "👉 Replace injective-core/injective-chain/codec with sdk-go/chain/codec" - @echo "👉 Replace injective-core/injective-chain/codec/types with sdk-go/chain/codec/types" - @echo "👉 Replace injective-core/injective-chain/types with sdk-go/chain/types" - @echo "👉 Replace injective-core/injective-chain/crypto with sdk-go/chain/crypto" + @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain/modules|github.com/InjectiveLabs/sdk-go/chain|g" {} \; + @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain|github.com/InjectiveLabs/sdk-go/chain|g" {} \; + +#gen: gen-proto +# +#gen-proto: clone-all copy-proto +# buf generate --template buf.gen.chain.yaml +# buf generate --template buf.gen.indexer.yaml +# rm -rf local_proto +# $(call clean_repos) +# +#define clean_repos +# rm -Rf injective-indexer +#endef +# +#clean-all: +# $(call clean_repos) +# +#clone-injective-indexer: +# git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.4 --depth 1 --single-branch +# +#clone-all: clone-injective-indexer +# +#copy-proto: +# rm -rf local_proto +# mkdir -p local_proto +# find ./injective-indexer/api/gen/grpc -type f -name "*.proto" | while read -r file; do \ +# dest="local_proto/$$(basename $$(dirname $$(dirname "$$file")))/$$(basename $$(dirname "$$file"))"; \ +# mkdir -p "$$dest"; \ +# cp "$$file" "$$dest"; \ +# done tests: go test -race ./client/... ./ethereum/... coverage: go test -race -coverprofile=coverage.out -covermode=atomic ./client/... ./ethereum/... + +.PHONY: copy-exchange-client tests coverage \ No newline at end of file diff --git a/buf.gen.chain.yaml b/buf.gen.chain.yaml new file mode 100644 index 00000000..6f848993 --- /dev/null +++ b/buf.gen.chain.yaml @@ -0,0 +1,20 @@ +version: v2 +managed: + enabled: true + disable: + - module: buf.build/googleapis/googleapis + file_option: go_package_prefix +plugins: + - local: protoc-gen-go-grpc + out: ./chain/ + opt: paths=source_relative + - local: protoc-gen-gogo + out: ./chain/ + opt: paths=source_relative +inputs: +# - git_repo: https://github.com/InjectiveLabs/injective-core +# tag: v1.13.0 +# subdir: proto + - git_repo: https://github.com/InjectiveLabs/injective-core + branch: f/permissions-rework + subdir: proto diff --git a/buf.gen.indexer.yaml b/buf.gen.indexer.yaml new file mode 100644 index 00000000..81c925e6 --- /dev/null +++ b/buf.gen.indexer.yaml @@ -0,0 +1,21 @@ +version: v2 +managed: + enabled: true + disable: + - module: buf.build/googleapis/googleapis + file_option: go_package_prefix +plugins: + - remote: buf.build/protocolbuffers/go:v1.34.0 + out: ./exchange/ + opt: paths=source_relative + - remote: buf.build/grpc/go:v1.3.0 + out: ./exchange/ + opt: paths=source_relative +# - local: protoc-gen-go +# out: ./exchange/ +# opt: paths=source_relative +# - local: protoc-gen-go-grpc +# out: ./exchange/ +# opt: paths=source_relative +inputs: + - directory: local_proto diff --git a/chain/auction/types/auction.pb.go b/chain/auction/types/auction.pb.go index 164a7820..25703a53 100644 --- a/chain/auction/types/auction.pb.go +++ b/chain/auction/types/auction.pb.go @@ -32,6 +32,9 @@ type Params struct { AuctionPeriod int64 `protobuf:"varint,1,opt,name=auction_period,json=auctionPeriod,proto3" json:"auction_period,omitempty"` // min_next_bid_increment_rate defines the minimum increment rate for new bids MinNextBidIncrementRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=min_next_bid_increment_rate,json=minNextBidIncrementRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_next_bid_increment_rate"` + // inj_basket_max_cap defines the maximum cap for INJ contained in an auction + // basket + InjBasketMaxCap cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=inj_basket_max_cap,json=injBasketMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_basket_max_cap"` } func (m *Params) Reset() { *m = Params{} } @@ -365,43 +368,45 @@ func init() { } var fileDescriptor_49edfee5f1ef4b5a = []byte{ - // 567 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0x73, 0x18, 0x22, 0x7a, 0xa8, 0x40, 0xad, 0x8a, 0xa6, 0xad, 0x64, 0x47, 0x46, 0xa8, - 0x01, 0xa9, 0x3e, 0x4a, 0xb7, 0x6e, 0x18, 0x10, 0xaa, 0x14, 0x50, 0x65, 0x98, 0x58, 0xac, 0xb3, - 0xfd, 0xe4, 0x5c, 0x93, 0xbb, 0x8b, 0x7c, 0xe7, 0xa4, 0x19, 0x11, 0x5b, 0x59, 0xf8, 0x13, 0x98, - 0x61, 0xe1, 0x4f, 0x60, 0xec, 0xd8, 0x11, 0x31, 0x04, 0x94, 0x0c, 0x20, 0x46, 0xfe, 0x02, 0x14, - 0xff, 0x88, 0xbc, 0x20, 0x31, 0x74, 0x60, 0x49, 0xfc, 0xbe, 0xf7, 0xee, 0xfb, 0x3e, 0xef, 0x49, - 0xf7, 0xf0, 0x0e, 0x13, 0xc7, 0x10, 0x69, 0x36, 0x02, 0x42, 0xb3, 0x48, 0x33, 0x29, 0xc8, 0x68, - 0x2f, 0x04, 0x4d, 0xf7, 0xaa, 0xd8, 0x1d, 0xa6, 0x52, 0x4b, 0x73, 0x73, 0x99, 0xe8, 0x56, 0x07, - 0x65, 0xe2, 0xd6, 0x7a, 0x22, 0x13, 0x99, 0x67, 0x91, 0xc5, 0x57, 0x71, 0x61, 0xcb, 0x8a, 0xa4, - 0xe2, 0x52, 0x91, 0x90, 0x2a, 0x58, 0x7a, 0x46, 0x92, 0x95, 0x86, 0x5b, 0x6b, 0x94, 0x33, 0x21, - 0x49, 0xfe, 0x5b, 0x48, 0xce, 0x47, 0x84, 0x9b, 0x47, 0x34, 0xa5, 0x5c, 0x99, 0x77, 0xf0, 0xf5, - 0xb2, 0x4c, 0x30, 0x84, 0x94, 0xc9, 0xb8, 0x85, 0xda, 0xa8, 0x63, 0xf8, 0xab, 0xa5, 0x7a, 0x94, - 0x8b, 0x26, 0xc5, 0xdb, 0x9c, 0x89, 0x40, 0xc0, 0x89, 0x0e, 0x42, 0x16, 0x07, 0x4c, 0x44, 0x29, - 0x70, 0x10, 0x3a, 0x48, 0xa9, 0x86, 0xd6, 0xa5, 0x36, 0xea, 0xac, 0x78, 0xb7, 0xcf, 0xa6, 0x76, - 0xe3, 0xeb, 0xd4, 0xde, 0x2e, 0x88, 0x54, 0xdc, 0x77, 0x99, 0x24, 0x9c, 0xea, 0x9e, 0xdb, 0x85, - 0x84, 0x46, 0x93, 0xc7, 0x10, 0xf9, 0x1b, 0x9c, 0x89, 0xe7, 0x70, 0xa2, 0x3d, 0x16, 0x1f, 0x56, - 0x26, 0x3e, 0xd5, 0x70, 0xb0, 0xf1, 0xf3, 0xbd, 0x8d, 0x4e, 0x7f, 0x7c, 0xba, 0x57, 0x01, 0x91, - 0x02, 0xd1, 0x79, 0x83, 0xb0, 0xe1, 0xb1, 0xd8, 0xdc, 0xc7, 0xcd, 0x90, 0xc5, 0x31, 0xa4, 0x39, - 0xe2, 0x8a, 0xb7, 0xfd, 0x6b, 0x6a, 0x97, 0xca, 0xef, 0xa9, 0xbd, 0x3a, 0xa1, 0x7c, 0x70, 0xe0, - 0x14, 0xb1, 0xe3, 0x97, 0x07, 0xe6, 0x53, 0xdc, 0xa4, 0x5c, 0x66, 0x42, 0x97, 0x8c, 0xa4, 0x64, - 0xdc, 0x49, 0x98, 0xee, 0x65, 0xa1, 0x1b, 0x49, 0x4e, 0xca, 0x01, 0x16, 0x7f, 0xbb, 0x2a, 0xee, - 0x13, 0x3d, 0x19, 0x82, 0x72, 0x1f, 0x49, 0x26, 0xfc, 0xf2, 0xba, 0x73, 0x8a, 0xf0, 0x5a, 0x97, - 0x2a, 0xfd, 0xb0, 0x80, 0xf3, 0x41, 0x65, 0x03, 0x6d, 0xde, 0xc2, 0xcd, 0x31, 0x13, 0xa2, 0x62, - 0xf2, 0xcb, 0xe8, 0xc2, 0xca, 0x9a, 0xeb, 0xf8, 0x4a, 0x2a, 0x33, 0x11, 0xb7, 0x8c, 0x36, 0xea, - 0x5c, 0xf6, 0x8b, 0xc0, 0x79, 0x8d, 0xf0, 0xd5, 0x27, 0x23, 0x10, 0x8b, 0x29, 0x2e, 0x18, 0xea, - 0x73, 0xb9, 0xf0, 0xd6, 0xff, 0xc2, 0xf0, 0x16, 0x61, 0x33, 0x67, 0xf8, 0x2f, 0x26, 0xf2, 0x19, - 0xe1, 0xb5, 0x3a, 0xcd, 0x0b, 0x4d, 0xd3, 0x5a, 0x2e, 0xaa, 0xe5, 0x9a, 0x77, 0xf1, 0x4d, 0x10, - 0x31, 0x13, 0x49, 0xa0, 0x19, 0x07, 0xa5, 0x29, 0x1f, 0xe6, 0x50, 0x86, 0x7f, 0xa3, 0xd0, 0x5f, - 0x56, 0xb2, 0x79, 0x8c, 0xb1, 0x80, 0x71, 0x10, 0x52, 0xd5, 0x07, 0xdd, 0x32, 0xda, 0x46, 0xe7, - 0xda, 0x83, 0x4d, 0xb7, 0x00, 0x74, 0x17, 0x2f, 0xae, 0x7a, 0x9c, 0x39, 0xa3, 0x77, 0x7f, 0xd1, - 0xd4, 0x87, 0x6f, 0x76, 0xe7, 0x1f, 0x9b, 0x52, 0xfe, 0x8a, 0x80, 0xb1, 0x97, 0xbb, 0x7b, 0xc9, - 0xd9, 0xcc, 0x42, 0xe7, 0x33, 0x0b, 0x7d, 0x9f, 0x59, 0xe8, 0xdd, 0xdc, 0x6a, 0x9c, 0xcf, 0xad, - 0xc6, 0x97, 0xb9, 0xd5, 0x78, 0xf5, 0xac, 0x66, 0x77, 0x58, 0xad, 0x87, 0x2e, 0x0d, 0x15, 0x59, - 0x2e, 0x8b, 0xdd, 0x48, 0xa6, 0x50, 0x0f, 0x7b, 0x94, 0x09, 0xc2, 0x65, 0x9c, 0x0d, 0x40, 0x2d, - 0x57, 0x4e, 0x5e, 0x39, 0x6c, 0xe6, 0x5b, 0x60, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, - 0x8c, 0x47, 0xe7, 0x94, 0x04, 0x00, 0x00, + // 607 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xb1, 0x4f, 0x14, 0x4f, + 0x14, 0xbe, 0xf9, 0xdd, 0xcf, 0x8b, 0x8c, 0x41, 0x64, 0x82, 0x72, 0x40, 0xdc, 0x23, 0x67, 0x0c, + 0x68, 0xc2, 0x8e, 0x48, 0x47, 0xe7, 0xa2, 0x05, 0x06, 0x0c, 0x59, 0xad, 0x6c, 0x36, 0xb3, 0xbb, + 0x2f, 0xc7, 0x1c, 0xcc, 0xcc, 0x66, 0x67, 0x16, 0x8e, 0x7f, 0xc1, 0xca, 0x3f, 0xc0, 0x18, 0x1b, + 0x2d, 0xac, 0xfc, 0x13, 0x2c, 0x29, 0x29, 0x8d, 0xc5, 0x69, 0xa0, 0xd0, 0x58, 0xda, 0xd8, 0x9a, + 0x9b, 0x9d, 0xbd, 0x6c, 0x62, 0x34, 0x56, 0xc4, 0xe6, 0x6e, 0xdf, 0x37, 0xef, 0x7d, 0xf3, 0x7d, + 0xef, 0x65, 0x1e, 0x5e, 0xe2, 0xb2, 0x0f, 0x89, 0xe1, 0x07, 0x40, 0x59, 0x91, 0x18, 0xae, 0x24, + 0x3d, 0x58, 0x8d, 0xc1, 0xb0, 0xd5, 0x2a, 0xf6, 0xb3, 0x5c, 0x19, 0x45, 0xe6, 0xc6, 0x89, 0x7e, + 0x75, 0xe0, 0x12, 0xe7, 0x67, 0x7a, 0xaa, 0xa7, 0x6c, 0x16, 0x1d, 0x7d, 0x95, 0x05, 0xf3, 0x5e, + 0xa2, 0xb4, 0x50, 0x9a, 0xc6, 0x4c, 0xc3, 0x98, 0x33, 0x51, 0xdc, 0x11, 0xce, 0x4f, 0x33, 0xc1, + 0xa5, 0xa2, 0xf6, 0xb7, 0x84, 0xba, 0x3f, 0x10, 0x6e, 0xed, 0xb0, 0x9c, 0x09, 0x4d, 0x6e, 0xe2, + 0xcb, 0xee, 0x9a, 0x28, 0x83, 0x9c, 0xab, 0xb4, 0x8d, 0x16, 0xd1, 0x72, 0x33, 0x9c, 0x74, 0xe8, + 0x8e, 0x05, 0x09, 0xc3, 0x0b, 0x82, 0xcb, 0x48, 0xc2, 0xc0, 0x44, 0x31, 0x4f, 0x23, 0x2e, 0x93, + 0x1c, 0x04, 0x48, 0x13, 0xe5, 0xcc, 0x40, 0xfb, 0xbf, 0x45, 0xb4, 0x3c, 0x11, 0xdc, 0x38, 0x1e, + 0x76, 0x1a, 0x1f, 0x87, 0x9d, 0x85, 0x52, 0x91, 0x4e, 0xf7, 0x7c, 0xae, 0xa8, 0x60, 0x66, 0xd7, + 0xdf, 0x82, 0x1e, 0x4b, 0x8e, 0xee, 0x43, 0x12, 0xce, 0x0a, 0x2e, 0x1f, 0xc1, 0xc0, 0x04, 0x3c, + 0xdd, 0xac, 0x48, 0x42, 0x66, 0x80, 0x3c, 0xc4, 0x84, 0xcb, 0x7e, 0x14, 0x33, 0xbd, 0x07, 0x26, + 0x12, 0x6c, 0x10, 0x25, 0x2c, 0x6b, 0x37, 0x2d, 0xf3, 0x75, 0xc7, 0x7c, 0xf5, 0x57, 0xe6, 0x4d, + 0x69, 0xc2, 0x29, 0x2e, 0xfb, 0x81, 0xad, 0xdb, 0x66, 0x83, 0x0d, 0x96, 0xad, 0xcf, 0x7e, 0x7d, + 0xd5, 0x41, 0xcf, 0xbe, 0xbc, 0xbb, 0x5d, 0x99, 0xa3, 0xa5, 0xdd, 0xee, 0x4b, 0x84, 0x9b, 0x01, + 0x4f, 0xc9, 0x1a, 0x6e, 0xc5, 0x3c, 0x4d, 0x21, 0xb7, 0x76, 0x27, 0x82, 0x85, 0x6f, 0xc3, 0x8e, + 0x43, 0xbe, 0x0f, 0x3b, 0x93, 0x47, 0x4c, 0xec, 0xaf, 0x77, 0xcb, 0xb8, 0x1b, 0xba, 0x03, 0x12, + 0xe3, 0x16, 0x13, 0xaa, 0x90, 0xc6, 0xfa, 0xbd, 0x74, 0x77, 0xce, 0x2f, 0xe5, 0xf8, 0xa3, 0xd6, + 0x57, 0x53, 0xf2, 0x37, 0x14, 0x97, 0x01, 0x75, 0x82, 0x97, 0x7a, 0xdc, 0xec, 0x16, 0xb1, 0x9f, + 0x28, 0x41, 0xdd, 0x9c, 0xca, 0xbf, 0x15, 0x9d, 0xee, 0x51, 0x73, 0x94, 0x81, 0xb6, 0x05, 0xa1, + 0x63, 0xee, 0xbe, 0x46, 0x78, 0x7a, 0x8b, 0x69, 0x73, 0xaf, 0xd4, 0x1d, 0x82, 0x2e, 0xf6, 0x0d, + 0xb9, 0x86, 0x5b, 0x87, 0x5c, 0xca, 0x4a, 0x6e, 0xe8, 0xa2, 0xf3, 0x50, 0x44, 0x66, 0xf0, 0x85, + 0x5c, 0x15, 0x32, 0xb5, 0xa3, 0xf8, 0x3f, 0x2c, 0x83, 0xee, 0x0b, 0x84, 0x2f, 0x3e, 0x38, 0x00, + 0x39, 0x9a, 0xe3, 0x48, 0x5e, 0xbd, 0x9b, 0xe7, 0xd9, 0xb0, 0xdf, 0xc8, 0x7b, 0x83, 0x30, 0xb1, + 0xf2, 0xfe, 0xf5, 0x3e, 0xbe, 0x47, 0x78, 0xba, 0x2e, 0xf4, 0xb1, 0x61, 0x79, 0x2d, 0x17, 0xd5, + 0x72, 0xc9, 0x2d, 0x7c, 0x05, 0x64, 0xca, 0x65, 0x2f, 0x32, 0x5c, 0x80, 0x36, 0x4c, 0x64, 0x56, + 0x6f, 0x33, 0x9c, 0x2a, 0xf1, 0x27, 0x15, 0x4c, 0xfa, 0x18, 0x4b, 0x38, 0x74, 0x8f, 0xa9, 0xdd, + 0x5c, 0x6c, 0xfe, 0xd9, 0xd4, 0x9d, 0x91, 0xa9, 0xb7, 0x9f, 0x3a, 0xcb, 0x7f, 0x69, 0x4a, 0x87, + 0x13, 0x12, 0x0e, 0xcb, 0x27, 0x17, 0xf4, 0x8e, 0x4f, 0x3d, 0x74, 0x72, 0xea, 0xa1, 0xcf, 0xa7, + 0x1e, 0x7a, 0x7e, 0xe6, 0x35, 0x4e, 0xce, 0xbc, 0xc6, 0x87, 0x33, 0xaf, 0xf1, 0x74, 0xbb, 0x46, + 0xb7, 0x59, 0xad, 0xb5, 0x2d, 0x16, 0x6b, 0x3a, 0x5e, 0x72, 0x2b, 0x89, 0xca, 0xa1, 0x1e, 0xee, + 0x32, 0x2e, 0xa9, 0x50, 0x69, 0xb1, 0x0f, 0x7a, 0xbc, 0x2a, 0xed, 0xcd, 0x71, 0xcb, 0x6e, 0xaf, + 0xb5, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x60, 0x2e, 0x41, 0x2d, 0x4c, 0x05, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -429,6 +434,9 @@ func (this *Params) Equal(that interface{}) bool { if !this.MinNextBidIncrementRate.Equal(that1.MinNextBidIncrementRate) { return false } + if !this.InjBasketMaxCap.Equal(that1.InjBasketMaxCap) { + return false + } return true } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -451,6 +459,16 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.InjBasketMaxCap.Size() + i -= size + if _, err := m.InjBasketMaxCap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintAuction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a { size := m.MinNextBidIncrementRate.Size() i -= size @@ -713,6 +731,8 @@ func (m *Params) Size() (n int) { } l = m.MinNextBidIncrementRate.Size() n += 1 + l + sovAuction(uint64(l)) + l = m.InjBasketMaxCap.Size() + n += 1 + l + sovAuction(uint64(l)) return n } @@ -894,6 +914,40 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InjBasketMaxCap", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAuction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAuction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InjBasketMaxCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAuction(dAtA[iNdEx:]) @@ -980,7 +1034,7 @@ func (m *Bid) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -990,16 +1044,15 @@ func (m *Bid) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1096,7 +1149,7 @@ func (m *LastAuctionResult) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1106,16 +1159,15 @@ func (m *LastAuctionResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1231,7 +1283,7 @@ func (m *EventBid) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1241,16 +1293,15 @@ func (m *EventBid) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1366,7 +1417,7 @@ func (m *EventAuctionResult) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1376,16 +1427,15 @@ func (m *EventAuctionResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } diff --git a/chain/auction/types/errors.go b/chain/auction/types/errors.go deleted file mode 100644 index c8e7ba2e..00000000 --- a/chain/auction/types/errors.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -var ( - ErrBidInvalid = errors.Register(ModuleName, 1, "invalid bid denom") - ErrBidRound = errors.Register(ModuleName, 2, "invalid bid round") -) diff --git a/chain/auction/types/events.go b/chain/auction/types/events.go deleted file mode 100644 index 2789dc3c..00000000 --- a/chain/auction/types/events.go +++ /dev/null @@ -1,6 +0,0 @@ -package types - -// Auction module event types -const ( - EventTypeNewBid = "new_bid" -) diff --git a/chain/auction/types/expected_keepers.go b/chain/auction/types/expected_keepers.go deleted file mode 100644 index e9b959b5..00000000 --- a/chain/auction/types/expected_keepers.go +++ /dev/null @@ -1,16 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error -} diff --git a/chain/auction/types/genesis.go b/chain/auction/types/genesis.go deleted file mode 100644 index 4e5fbf60..00000000 --- a/chain/auction/types/genesis.go +++ /dev/null @@ -1,21 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - AuctionRound: 0, - HighestBid: nil, - AuctionEndingTimestamp: 0, - } -} diff --git a/chain/auction/types/key.go b/chain/auction/types/key.go deleted file mode 100644 index 0b151360..00000000 --- a/chain/auction/types/key.go +++ /dev/null @@ -1,16 +0,0 @@ -package types - -const ( - ModuleName = "auction" - StoreKey = ModuleName - TStoreKey = "transient_auction" -) - -var ( - // Keys for store prefixes - BidsKey = []byte{0x01} - AuctionRoundKey = []byte{0x03} - KeyEndingTimeStamp = []byte{0x04} - KeyLastAuctionResult = []byte{0x05} - ParamsKey = []byte{0x10} -) diff --git a/chain/auction/types/msgs.go b/chain/auction/types/msgs.go deleted file mode 100644 index 987533e0..00000000 --- a/chain/auction/types/msgs.go +++ /dev/null @@ -1,95 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" -) - -const ( - RouterKey = ModuleName - - TypeMsgBid = "bid" - TypeMsgUpdateParams = "updateParams" -) - -var ( - _ sdk.Msg = &MsgBid{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgBid) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgBid) Type() string { return TypeMsgBid } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgBid) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if !msg.BidAmount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.BidAmount.String()) - } - - if !msg.BidAmount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.BidAmount.String()) - } - - if msg.BidAmount.Denom != chaintypes.InjectiveCoin { - return errors.Wrap(ErrBidInvalid, msg.BidAmount.Denom) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgBid) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgBid) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} diff --git a/chain/auction/types/params.go b/chain/auction/types/params.go deleted file mode 100644 index fe3f865b..00000000 --- a/chain/auction/types/params.go +++ /dev/null @@ -1,103 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/math" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -var _ paramtypes.ParamSet = &Params{} - -// Auction params default values -var ( - // DefaultAuctionPeriod represents the number of seconds in 1 week - DefaultAuctionPeriod int64 = 60 * 60 * 24 * 7 - // DefaultMinNextBidIncrementRate represents default min increment rate 0.25% - DefaultMinNextBidIncrementRate = math.LegacyNewDecWithPrec(25, 4) -) - -// Parameter keys -var ( - KeyAuctionPeriod = []byte("AuctionPeriod") - KeyMinNextBidIncrementRate = []byte("MinNextBidIncrementRate") -) - -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// NewParams creates a new Params instance -func NewParams( - auctionPeriod int64, - minNextBidIncrementRate math.LegacyDec, -) Params { - return Params{ - AuctionPeriod: auctionPeriod, - MinNextBidIncrementRate: minNextBidIncrementRate, - } -} - -// ParamSetPairs returns the parameter set pairs. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyAuctionPeriod, &p.AuctionPeriod, validateAuctionPeriodDuration), - paramtypes.NewParamSetPair(KeyMinNextBidIncrementRate, &p.MinNextBidIncrementRate, validateMinNextBidIncrementRate), - } -} - -// DefaultParams returns a default set of parameters. -func DefaultParams() Params { - return Params{ - AuctionPeriod: DefaultAuctionPeriod, - MinNextBidIncrementRate: DefaultMinNextBidIncrementRate, - } -} - -// Validate performs basic validation on auction parameters. -func (p Params) Validate() error { - if err := validateAuctionPeriodDuration(p.AuctionPeriod); err != nil { - return err - } - - if err := validateMinNextBidIncrementRate(p.MinNextBidIncrementRate); err != nil { - return err - } - - return nil -} - -func validateAuctionPeriodDuration(i interface{}) error { - v, ok := i.(int64) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v == 0 { - return fmt.Errorf("AuctionPeriodDuration must be positive: %d", v) - } - - return nil -} - -func validateMinNextBidIncrementRate(i interface{}) error { - v, ok := i.(math.LegacyDec) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v.IsNil() { - return fmt.Errorf("MinNextBidIncrementRate cannot be nil") - } - - if v.Equal(math.LegacyZeroDec()) { - return fmt.Errorf("MinNextBidIncrementRate must be positive: %s", v.String()) - } - - if v.GT(math.LegacyNewDecWithPrec(2, 1)) { // > 20% - return fmt.Errorf("MinNextBidIncrementRate must be equal or less than 20 percent: %s", v.String()) - } - - return nil -} diff --git a/chain/auction/types/paramset.go b/chain/auction/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/auction/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/codec/codec.go b/chain/codec/codec.go index cd1e4e12..a557203b 100644 --- a/chain/codec/codec.go +++ b/chain/codec/codec.go @@ -14,6 +14,7 @@ import ( func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { sdk.RegisterLegacyAminoCodec(cdc) cryptocodec.RegisterCrypto(cdc) + codec.RegisterEvidences(cdc) } // RegisterInterfaces registers Interfaces from types, crypto, and SDK std. diff --git a/chain/crypto/codec/amino.go b/chain/crypto/codec/amino.go index f611be2c..7f5b9963 100644 --- a/chain/crypto/codec/amino.go +++ b/chain/crypto/codec/amino.go @@ -3,7 +3,6 @@ package codec import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" - cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" diff --git a/chain/crypto/keyring/options.go b/chain/crypto/keyring/options.go deleted file mode 100644 index 333bc4f9..00000000 --- a/chain/crypto/keyring/options.go +++ /dev/null @@ -1,44 +0,0 @@ -package keyring - -import ( - "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/crypto/types" - - cosmoshd "github.com/cosmos/cosmos-sdk/crypto/hd" - - "github.com/InjectiveLabs/sdk-go/chain/crypto/ethsecp256k1" - "github.com/InjectiveLabs/sdk-go/chain/crypto/hd" -) - -// AppName defines the Ledger app used for signing. Evmos uses the Ethereum app -const AppName = "Ethereum" - -var ( - // SupportedAlgorithms defines the list of signing algorithms used on Injective: - // - eth_secp256k1 (Ethereum) - // - secp256k1 (Tendermint) - SupportedAlgorithms = keyring.SigningAlgoList{hd.EthSecp256k1, cosmoshd.Secp256k1} - // SupportedAlgorithmsLedger defines the list of signing algorithms used on Evmos for the Ledger device: - // - secp256k1 (in order to comply with Cosmos SDK) - // The Ledger derivation function is responsible for all signing and address generation. - SupportedAlgorithmsLedger = keyring.SigningAlgoList{hd.EthSecp256k1} - // LedgerDerivation defines the Evmos Ledger Go derivation (Ethereum app with EIP-712 signing) - // LedgerDerivation = ledger.EvmosLedgerDerivation() - // CreatePubkey uses the ethsecp256k1 pubkey with Ethereum address generation and keccak hashing - CreatePubkey = func(key []byte) types.PubKey { return ðsecp256k1.PubKey{Key: key} } - // SkipDERConversion represents whether the signed Ledger output should skip conversion from DER to BER. - // This is set to true for signing performed by the Ledger Ethereum app. - SkipDERConversion = true -) - -// EthSecp256k1Option defines a function keys options for the ethereum Secp256k1 curve. -// It supports eth_secp256k1 keys for accounts. -func EthSecp256k1Option() keyring.Option { - return func(options *keyring.Options) { - options.SupportedAlgos = SupportedAlgorithms - options.SupportedAlgosLedger = SupportedAlgorithmsLedger - options.LedgerCreateKey = CreatePubkey - options.LedgerAppName = AppName - options.LedgerSigSkipDERConv = SkipDERConversion - } -} diff --git a/chain/exchange/types/common_utils.go b/chain/exchange/types/common_utils.go index c949b754..7b0c63c9 100644 --- a/chain/exchange/types/common_utils.go +++ b/chain/exchange/types/common_utils.go @@ -322,39 +322,6 @@ func IntBytesToInt(bz []byte) math.Int { return math.NewIntFromBigInt(new(big.Int).SetBytes(bz)) } -func HasDuplicates(slice []string) bool { - seen := make(map[string]struct{}) - for _, item := range slice { - if _, ok := seen[item]; ok { - return true - } - seen[item] = struct{}{} - } - return false -} - -func HasDuplicatesHexHash(slice []string) bool { - seen := make(map[common.Hash]struct{}) - for _, item := range slice { - if _, ok := seen[common.HexToHash(item)]; ok { - return true - } - seen[common.HexToHash(item)] = struct{}{} - } - return false -} - -func HasDuplicatesCoin(slice []sdk.Coin) bool { - seen := make(map[string]struct{}) - for _, item := range slice { - if _, ok := seen[item.Denom]; ok { - return true - } - seen[item.Denom] = struct{}{} - } - return false -} - func HasDuplicatesOrder(slice []*OrderData) bool { seenHashes := make(map[string]struct{}) seenCids := make(map[string]struct{}) diff --git a/chain/exchange/types/derivative_orders.go b/chain/exchange/types/derivative_orders.go index 630b470a..e5f9fa42 100644 --- a/chain/exchange/types/derivative_orders.go +++ b/chain/exchange/types/derivative_orders.go @@ -52,6 +52,14 @@ func (m *DerivativeLimitOrder) ToTrimmed() *TrimmedDerivativeLimitOrder { Cid: m.Cid(), } } +func (m *DerivativeLimitOrder) ToStandardized() *TrimmedLimitOrder { + return &TrimmedLimitOrder{ + Price: m.OrderInfo.Price, + Quantity: m.OrderInfo.Quantity, + OrderHash: common.BytesToHash(m.OrderHash).Hex(), + SubaccountId: m.OrderInfo.SubaccountId, + } +} func (o *DerivativeMarketOrderCancel) GetCancelDepositDelta() *DepositDelta { order := o.MarketOrder diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index b7b6035b..99bb5be8 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -81,7 +81,7 @@ var ( ErrSenderIsNotAnAdmin = errors.Register(ModuleName, 74, "sender should be a market admin") ErrMarketAlreadyScheduledToSettle = errors.Register(ModuleName, 75, "market is already scheduled to settle") ErrGenericMarketNotFound = errors.Register(ModuleName, 76, "market not found") - ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be below 1 or above max scale factor") + ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be higher than max scale factor") ErrInvalidState = errors.Register(ModuleName, 78, "state is invalid") ErrTransientOrdersUpToCancelNotSupported = errors.Register(ModuleName, 79, "transient orders up to cancellation not supported") ErrInvalidTrade = errors.Register(ModuleName, 80, "invalid trade") @@ -109,4 +109,5 @@ var ( ErrInvalidStakeGrant = errors.Register(ModuleName, 102, "invalid stake grant") ErrInsufficientStake = errors.Register(ModuleName, 103, "insufficient stake for grant") ErrInvalidPermissions = errors.Register(ModuleName, 104, "invalid permissions") + ErrDenomDecimalsDoNotMatch = errors.Register(ModuleName, 105, "the decimals specified for the denom is incorrect") ) diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index ff40e9d8..4417ebc5 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -512,6 +512,8 @@ type DerivativeMarket struct { Admin string `protobuf:"bytes,18,opt,name=admin,proto3" json:"admin,omitempty"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} } @@ -590,6 +592,8 @@ type BinaryOptionsMarket struct { MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} } @@ -981,6 +985,10 @@ type SpotMarket struct { Admin string `protobuf:"bytes,12,opt,name=admin,proto3" json:"admin,omitempty"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,13,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,14,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,15,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarket) Reset() { *m = SpotMarket{} } @@ -1065,6 +1073,20 @@ func (m *SpotMarket) GetAdminPermissions() uint32 { return 0 } +func (m *SpotMarket) GetBaseDecimals() uint32 { + if m != nil { + return m.BaseDecimals + } + return 0 +} + +func (m *SpotMarket) GetQuoteDecimals() uint32 { + if m != nil { + return m.QuoteDecimals + } + return 0 +} + // A subaccount's deposit for a given base currency type Deposit struct { AvailableBalance cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=available_balance,json=availableBalance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"available_balance"` @@ -3344,285 +3366,287 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4438 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x6f, 0x63, 0x59, - 0x56, 0x77, 0x1d, 0x3b, 0x17, 0x7b, 0xf9, 0x12, 0xe7, 0xe4, 0xe6, 0x24, 0x55, 0x89, 0xdb, 0xd5, - 0x35, 0x9d, 0xae, 0xee, 0x4e, 0xa6, 0xfa, 0xfb, 0x7a, 0xd4, 0xd3, 0xa3, 0xd1, 0xb4, 0x13, 0x27, - 0x55, 0xa6, 0x73, 0x9b, 0xe3, 0xa4, 0xa1, 0x66, 0x34, 0x73, 0xb4, 0x73, 0xce, 0x4e, 0xbc, 0x2b, - 0xe7, 0xe2, 0x3a, 0xfb, 0x38, 0x95, 0x34, 0x42, 0xe2, 0xa1, 0x85, 0x98, 0x00, 0x62, 0x78, 0x40, - 0x48, 0x48, 0x41, 0xc3, 0x03, 0x42, 0xf0, 0x02, 0xef, 0xf0, 0x80, 0x84, 0x80, 0x79, 0x18, 0xa4, - 0x79, 0x40, 0x02, 0x21, 0x31, 0xa0, 0x6e, 0x24, 0x10, 0x9a, 0x3f, 0x01, 0x21, 0xb4, 0x2f, 0xe7, - 0x62, 0x3b, 0x71, 0xec, 0x24, 0x03, 0x03, 0xbc, 0x54, 0x79, 0x5f, 0xd6, 0x6f, 0xed, 0xbd, 0xd6, - 0xda, 0x6b, 0xad, 0x7d, 0x39, 0x81, 0x37, 0x89, 0xf3, 0x02, 0x1b, 0x3e, 0x39, 0xc1, 0x2b, 0xf8, - 0xd4, 0x68, 0x20, 0xe7, 0x08, 0xaf, 0x9c, 0x3c, 0x39, 0xc0, 0x3e, 0x7a, 0x12, 0x56, 0x2c, 0x37, - 0x3d, 0xd7, 0x77, 0xd5, 0xb9, 0xb0, 0xeb, 0x72, 0xd8, 0x22, 0xbb, 0xce, 0x4d, 0x1e, 0xb9, 0x47, - 0x2e, 0xef, 0xb6, 0xc2, 0x7e, 0x09, 0x8a, 0xb9, 0x05, 0xc3, 0xa5, 0xb6, 0x4b, 0x57, 0x0e, 0x10, - 0x8d, 0x50, 0x0d, 0x97, 0x38, 0xb2, 0xfd, 0x51, 0xc4, 0xdc, 0xf5, 0x90, 0x61, 0x45, 0x9d, 0x44, - 0x51, 0x76, 0x1b, 0x47, 0x36, 0x71, 0xdc, 0x15, 0xfe, 0xaf, 0xa8, 0x2a, 0xff, 0xc3, 0x14, 0x8c, - 0xec, 0x22, 0x0f, 0xd9, 0x54, 0xc5, 0xb0, 0x48, 0x9b, 0xae, 0xaf, 0xdb, 0xc8, 0x3b, 0xc6, 0xbe, - 0x4e, 0x1c, 0xea, 0x23, 0xc7, 0xd7, 0x2d, 0x42, 0x7d, 0xe2, 0x1c, 0xe9, 0x87, 0x18, 0x17, 0x95, - 0x92, 0xb2, 0x94, 0x79, 0x77, 0x76, 0x59, 0x0c, 0x67, 0x99, 0x0d, 0x27, 0x18, 0xf9, 0xf2, 0x9a, - 0x4b, 0x9c, 0xd5, 0xa1, 0xef, 0xff, 0x68, 0xf1, 0x9e, 0x36, 0xcf, 0x70, 0xb6, 0x38, 0x4c, 0x4d, - 0xa0, 0x6c, 0x0a, 0x90, 0x0d, 0x8c, 0xd5, 0x97, 0xf0, 0xc8, 0xc4, 0x1e, 0x39, 0x41, 0x6c, 0xb8, - 0xbd, 0x98, 0x25, 0xfa, 0x63, 0xf6, 0x5a, 0x84, 0x76, 0x15, 0x4b, 0x04, 0xf3, 0x26, 0x3e, 0x44, - 0x2d, 0xcb, 0xd7, 0xe5, 0x0c, 0x8f, 0xb1, 0xc7, 0x78, 0xe8, 0x1e, 0xf2, 0x71, 0x31, 0x59, 0x52, - 0x96, 0xd2, 0xab, 0x0f, 0x19, 0xda, 0xdf, 0xff, 0x68, 0x71, 0x5e, 0xf0, 0xa3, 0xe6, 0xf1, 0x32, - 0x71, 0x57, 0x6c, 0xe4, 0x37, 0x96, 0x37, 0xf1, 0x11, 0x32, 0xce, 0xaa, 0xd8, 0xd0, 0x66, 0x24, - 0x4e, 0x9d, 0x4f, 0xf0, 0x18, 0x7b, 0x1b, 0x18, 0x6b, 0xc8, 0xef, 0x66, 0xe1, 0xb7, 0xb3, 0x18, - 0xba, 0x19, 0x8b, 0xbd, 0x38, 0x0b, 0x1b, 0x5e, 0x0b, 0x58, 0xb4, 0x09, 0xb0, 0x8d, 0xd1, 0x70, - 0xff, 0x8c, 0x1e, 0x48, 0xb4, 0x6a, 0x4c, 0x7e, 0xd7, 0xb2, 0xeb, 0x98, 0xd7, 0xc8, 0x6d, 0xd8, - 0xb5, 0xcd, 0xce, 0x84, 0xfb, 0x01, 0x3b, 0xe2, 0x10, 0x9f, 0x20, 0x8b, 0xd9, 0xc6, 0x11, 0x71, - 0x18, 0x23, 0xe2, 0x16, 0x47, 0xfb, 0xe7, 0x34, 0x2b, 0x81, 0x6a, 0x02, 0x67, 0x8b, 0xc3, 0x68, - 0x0c, 0x45, 0xb5, 0xa0, 0x14, 0x70, 0xb1, 0x11, 0x71, 0x7c, 0xec, 0x20, 0xc7, 0xc0, 0xed, 0x9c, - 0x52, 0x83, 0xcf, 0x69, 0x2b, 0xc2, 0x8a, 0x73, 0x7b, 0x1f, 0x8a, 0x01, 0xb7, 0xc3, 0x96, 0x63, - 0x32, 0xc3, 0x66, 0xfd, 0xbc, 0x13, 0x64, 0x15, 0xd3, 0x25, 0x65, 0x29, 0xa9, 0x4d, 0xcb, 0xf6, - 0x0d, 0xd1, 0x5c, 0x93, 0xad, 0xea, 0x9b, 0x50, 0x08, 0x28, 0xec, 0x96, 0xe5, 0x93, 0xa6, 0x85, - 0x8b, 0xc0, 0x29, 0xc6, 0x64, 0xfd, 0x96, 0xac, 0x56, 0x7f, 0x0e, 0xa6, 0x3d, 0x6c, 0xa1, 0x33, - 0xa9, 0x16, 0xda, 0x40, 0x9e, 0x54, 0x4e, 0xa6, 0xff, 0x89, 0x4c, 0x48, 0x88, 0x0d, 0x8c, 0xeb, - 0x0c, 0x80, 0xab, 0x84, 0xc0, 0x62, 0x30, 0xfc, 0x86, 0xdb, 0xf2, 0xac, 0xb3, 0x70, 0x16, 0x0c, - 0x5e, 0x37, 0x50, 0xb3, 0x98, 0xed, 0x9f, 0x45, 0xb0, 0x3e, 0x9e, 0x71, 0x28, 0x39, 0x61, 0xc6, - 0x67, 0x0d, 0x35, 0xe3, 0xda, 0x97, 0xac, 0xb8, 0xa0, 0x30, 0xf5, 0xc5, 0x54, 0x72, 0x83, 0x6b, - 0x5f, 0xf0, 0xa9, 0x49, 0x18, 0x3e, 0xa1, 0x2a, 0x2c, 0xda, 0xe8, 0x34, 0x6e, 0xce, 0xae, 0x67, - 0x62, 0x4f, 0xa7, 0xc4, 0xc4, 0xba, 0xe1, 0xb6, 0x1c, 0xbf, 0x98, 0x2f, 0x29, 0x4b, 0x39, 0x6d, - 0xde, 0x46, 0xa7, 0x91, 0x9d, 0xee, 0xb0, 0x4e, 0x75, 0x62, 0xe2, 0x35, 0xd6, 0x45, 0xa5, 0xf0, - 0x06, 0x71, 0x5e, 0xe8, 0x1e, 0x7e, 0x85, 0x3c, 0x53, 0xa7, 0x6c, 0x45, 0x98, 0xba, 0x87, 0x5f, - 0xb6, 0x88, 0x87, 0x6d, 0xec, 0xf8, 0xba, 0xdf, 0xf0, 0x30, 0x6d, 0xb8, 0x96, 0x59, 0x1c, 0xe3, - 0xc3, 0x7e, 0x20, 0x87, 0x3d, 0xd5, 0x3d, 0xec, 0x9a, 0xe3, 0x6b, 0x0f, 0x89, 0xf3, 0x42, 0xe3, - 0x60, 0x75, 0x8e, 0xa5, 0x45, 0x50, 0x7b, 0x01, 0x92, 0xfa, 0x14, 0x4a, 0xbe, 0x87, 0x84, 0xf0, - 0x79, 0x5f, 0xaa, 0x9f, 0x60, 0xe1, 0x2b, 0xcd, 0x16, 0xb7, 0x5b, 0xa7, 0x58, 0xe0, 0x06, 0xf2, - 0x40, 0xf6, 0x13, 0x90, 0xf4, 0x63, 0xd1, 0xab, 0x2a, 0x3b, 0x31, 0x49, 0x5b, 0xe4, 0x65, 0x8b, - 0x98, 0xc8, 0x77, 0xbd, 0x70, 0x12, 0x91, 0xd1, 0x8c, 0x0f, 0x20, 0xe9, 0x08, 0x48, 0x8e, 0x3f, - 0x34, 0x9d, 0x53, 0x78, 0xf3, 0x80, 0x38, 0xc8, 0x3b, 0xd3, 0xdd, 0x26, 0x63, 0x4b, 0x7b, 0x39, - 0x7a, 0xb5, 0x3f, 0x47, 0xff, 0xba, 0x40, 0xdc, 0x11, 0x80, 0x57, 0xf9, 0xfa, 0x5f, 0x54, 0xa0, - 0x84, 0x7c, 0xd7, 0x26, 0x46, 0xc0, 0x52, 0xe8, 0x18, 0x19, 0x06, 0xa6, 0x54, 0xb7, 0xf0, 0x09, - 0xb6, 0x8a, 0x13, 0x25, 0x65, 0x29, 0xff, 0xee, 0xfb, 0xcb, 0x57, 0x07, 0xe2, 0xe5, 0x0a, 0xc7, - 0x10, 0x5c, 0xb8, 0x01, 0x54, 0x38, 0xc0, 0x26, 0xa3, 0xd7, 0xee, 0xa3, 0x1e, 0xad, 0xea, 0x29, - 0xbc, 0xc1, 0x63, 0xc0, 0x65, 0xc3, 0x60, 0x4b, 0x54, 0xae, 0x68, 0x82, 0xbd, 0xe2, 0x64, 0xff, - 0xd2, 0x2e, 0x33, 0xcc, 0xae, 0x51, 0x6d, 0x60, 0xbc, 0x15, 0xc2, 0xa9, 0x9f, 0x2a, 0xf0, 0x4e, - 0xcc, 0xba, 0xfb, 0x18, 0xc0, 0x54, 0xff, 0x03, 0x58, 0x8a, 0x90, 0xaf, 0x19, 0xc6, 0xaf, 0x28, - 0xf0, 0xa4, 0x43, 0xfd, 0x7d, 0x0c, 0x65, 0xba, 0xff, 0xa1, 0xbc, 0xd5, 0x66, 0x0a, 0xd7, 0x8c, - 0xe6, 0xdb, 0x30, 0x6b, 0x13, 0x87, 0xd8, 0xc8, 0xd2, 0x79, 0xce, 0x63, 0xb8, 0x56, 0x14, 0xc0, - 0x66, 0xfa, 0x67, 0x3a, 0x2d, 0x51, 0x76, 0x25, 0x48, 0x10, 0xb9, 0xbe, 0x09, 0x6f, 0x11, 0x1a, - 0x1a, 0x76, 0x77, 0x6e, 0x63, 0xa1, 0x96, 0x63, 0x34, 0x74, 0xec, 0xa0, 0x03, 0x0b, 0x9b, 0xc5, - 0x62, 0x49, 0x59, 0x4a, 0x69, 0x5f, 0x20, 0x54, 0xda, 0x6e, 0xb5, 0x23, 0x7d, 0xd9, 0xe4, 0xdd, - 0xd7, 0x45, 0x6f, 0xe6, 0xb2, 0x9a, 0x2e, 0xf5, 0x75, 0xd7, 0xb1, 0xce, 0x74, 0xdb, 0x35, 0xb1, - 0xde, 0xc0, 0xe4, 0xa8, 0x11, 0x77, 0x32, 0xb3, 0x7c, 0xd9, 0xcf, 0xb3, 0x6e, 0x3b, 0x8e, 0x75, - 0xb6, 0xe5, 0x9a, 0xf8, 0x19, 0xef, 0x13, 0x79, 0x8f, 0x23, 0x78, 0x22, 0x43, 0x9c, 0x89, 0x0d, - 0x0f, 0x23, 0x8a, 0xf5, 0xa6, 0x47, 0x0c, 0xac, 0xfb, 0xc4, 0xc6, 0xd4, 0x47, 0x76, 0x33, 0xc2, - 0xd3, 0x29, 0x36, 0x5c, 0xc7, 0xa4, 0xc5, 0x39, 0x8e, 0xfb, 0xb6, 0x20, 0xac, 0x4a, 0xba, 0x5d, - 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, 0x03, 0xc6, 0x82, 0x95, 0xa4, 0x23, - 0xd3, 0x26, 0x0e, 0x2d, 0xce, 0x97, 0x92, 0x4b, 0x69, 0x2d, 0x1f, 0x54, 0x57, 0x78, 0xad, 0xba, - 0x09, 0x13, 0xcc, 0x89, 0xa2, 0x96, 0xc1, 0x54, 0xa8, 0x33, 0xb7, 0xcc, 0xe2, 0xc9, 0xfd, 0x7e, - 0x1c, 0x66, 0x81, 0x38, 0x2f, 0x2a, 0x82, 0x70, 0x0b, 0x9d, 0xae, 0xa1, 0xe6, 0x07, 0xc5, 0x7f, - 0xfd, 0xde, 0xa2, 0x72, 0xfe, 0x2f, 0x7f, 0xfc, 0x38, 0xe4, 0xbe, 0x22, 0x92, 0xda, 0xf2, 0xa7, - 0x0a, 0x4c, 0x08, 0xb9, 0xb6, 0x1b, 0xc5, 0x3c, 0xa4, 0x03, 0x8f, 0x64, 0xf2, 0xb4, 0x36, 0xad, - 0xa5, 0x44, 0x45, 0xcd, 0x54, 0x7f, 0x06, 0xf2, 0x1d, 0xb6, 0x99, 0xe8, 0xdf, 0x4c, 0x72, 0x87, - 0x71, 0x46, 0x1f, 0x0c, 0xfd, 0xf2, 0xf7, 0x16, 0xef, 0x95, 0x7f, 0x9c, 0x82, 0x42, 0xa7, 0xa2, - 0xd5, 0x69, 0x18, 0xf1, 0x89, 0x71, 0x8c, 0x3d, 0x39, 0x00, 0x59, 0x52, 0x17, 0x21, 0x23, 0xd2, - 0x76, 0x9d, 0xb9, 0x42, 0xc1, 0x5b, 0x03, 0x51, 0xb5, 0x8a, 0x28, 0x56, 0x5f, 0x83, 0xac, 0xec, - 0xf0, 0xb2, 0xe5, 0x06, 0x09, 0xac, 0x26, 0x89, 0xbe, 0xce, 0xaa, 0xd4, 0xf5, 0x10, 0xc3, 0x3f, - 0x6b, 0x8a, 0xfc, 0x33, 0xff, 0xee, 0xeb, 0x31, 0x87, 0x27, 0x37, 0x06, 0x81, 0xbb, 0xdb, 0xe1, - 0xc5, 0xbd, 0xb3, 0x26, 0x0e, 0x38, 0xb1, 0xdf, 0xea, 0x32, 0x4c, 0x48, 0x18, 0x6a, 0x20, 0x0b, - 0xeb, 0x87, 0xc8, 0xf0, 0x5d, 0x8f, 0x67, 0x99, 0x39, 0x6d, 0x5c, 0x34, 0xd5, 0x59, 0xcb, 0x06, - 0x6f, 0x60, 0x43, 0xe7, 0x43, 0xd2, 0x4d, 0xec, 0xb8, 0xb6, 0x48, 0x0f, 0x35, 0xe0, 0x55, 0x55, - 0x56, 0xd3, 0x2e, 0xf7, 0xd1, 0x0e, 0xb9, 0xef, 0xc3, 0xe4, 0xa5, 0xb9, 0xdf, 0x00, 0x19, 0x99, - 0x4a, 0xba, 0x93, 0xbe, 0x6f, 0x41, 0xf1, 0xca, 0x64, 0x2f, 0x3d, 0xc8, 0xfa, 0xbf, 0x3c, 0xcb, - 0xab, 0x41, 0xbe, 0x23, 0x09, 0x87, 0xfe, 0x41, 0xb3, 0x76, 0x3c, 0x09, 0xae, 0x41, 0xbe, 0x23, - 0xc1, 0x1e, 0x20, 0x87, 0xcb, 0xfa, 0x71, 0xa8, 0xab, 0xd3, 0xc2, 0xec, 0x2d, 0xd3, 0xc2, 0x12, - 0x64, 0x08, 0xdd, 0xc5, 0x5e, 0x13, 0xfb, 0x2d, 0x64, 0xf1, 0xd4, 0x2c, 0xa5, 0xc5, 0xab, 0xd4, - 0x0f, 0x61, 0x84, 0xfa, 0xc8, 0x6f, 0x51, 0x9e, 0x4e, 0xe5, 0xdf, 0x5d, 0xea, 0x15, 0x68, 0xc5, - 0x62, 0xa8, 0xf3, 0xfe, 0x9a, 0xa4, 0x53, 0x35, 0x98, 0xb0, 0x89, 0x13, 0x3a, 0x29, 0xe3, 0x58, - 0xa7, 0xe4, 0x13, 0x2c, 0xf3, 0xa9, 0xbe, 0x86, 0x5e, 0xb0, 0x89, 0x23, 0x9d, 0x95, 0x71, 0x5c, - 0x27, 0x9f, 0x70, 0x89, 0x30, 0xcc, 0x97, 0x2d, 0xe4, 0xf8, 0xc4, 0x3f, 0x8b, 0xc1, 0x16, 0x06, - 0x90, 0x88, 0x4d, 0x9c, 0xaf, 0x4b, 0x84, 0x10, 0x79, 0x03, 0xb2, 0x0c, 0xd9, 0x71, 0x99, 0x4b, - 0x42, 0xd6, 0x20, 0x39, 0x54, 0xc6, 0x26, 0xce, 0xb6, 0xa4, 0x53, 0x27, 0x61, 0x98, 0x3b, 0x4d, - 0x9e, 0x11, 0xa5, 0x35, 0x51, 0x50, 0xdf, 0x82, 0x71, 0xfe, 0x43, 0x6f, 0x62, 0xcf, 0x26, 0x94, - 0xb2, 0x90, 0xc7, 0x33, 0x98, 0x9c, 0x56, 0xe0, 0x0d, 0xbb, 0x51, 0xbd, 0x74, 0x37, 0x7f, 0x9b, - 0x82, 0x89, 0xd5, 0xee, 0x6c, 0xe9, 0x4a, 0x8f, 0xf3, 0x10, 0x72, 0xc1, 0x32, 0x3f, 0xb3, 0x0f, - 0x5c, 0x4b, 0xfa, 0x1c, 0xe9, 0x65, 0xea, 0xbc, 0x8e, 0xf9, 0x76, 0xd9, 0xa9, 0xe9, 0xb9, 0x27, - 0xc4, 0xc4, 0x9e, 0x74, 0x3c, 0x79, 0x51, 0xbd, 0x2b, 0x6b, 0xff, 0xbb, 0x7c, 0xcf, 0x13, 0x98, - 0xc4, 0xa7, 0x4d, 0x22, 0xf2, 0xdc, 0x28, 0xb2, 0x71, 0x27, 0x94, 0xd4, 0x26, 0xa2, 0xb6, 0x30, - 0x7c, 0x31, 0x12, 0x8a, 0x7d, 0xdf, 0x92, 0x79, 0x7b, 0x48, 0x32, 0x2a, 0x48, 0xa2, 0xb6, 0x88, - 0x24, 0xd4, 0x51, 0x2a, 0xae, 0xa3, 0x0e, 0xbf, 0x97, 0xee, 0xed, 0xf7, 0xa0, 0xc3, 0xef, 0x75, - 0x7b, 0x90, 0xcc, 0xdd, 0x79, 0x90, 0xec, 0xdd, 0x7b, 0x90, 0xdc, 0x2d, 0x3d, 0xc8, 0xff, 0x35, - 0xff, 0xb0, 0x0d, 0x85, 0x98, 0x99, 0xf1, 0x41, 0xc7, 0x7c, 0x84, 0x72, 0x1d, 0xe6, 0x58, 0x44, - 0xcc, 0x47, 0xdc, 0xe5, 0x6f, 0xd4, 0x1b, 0xfa, 0x9b, 0x1b, 0x78, 0x96, 0x7f, 0x4e, 0xc0, 0xcc, - 0x3a, 0x5b, 0x49, 0x67, 0x1b, 0x2d, 0xbf, 0xe5, 0xe1, 0x70, 0x1f, 0x76, 0xe8, 0xf6, 0xce, 0xa9, - 0xae, 0x5a, 0x9d, 0x89, 0xab, 0x57, 0xe7, 0x17, 0x61, 0xd2, 0x7f, 0x85, 0x9a, 0x6c, 0x8b, 0xed, - 0xc5, 0x57, 0x67, 0x92, 0x93, 0xa8, 0xac, 0xad, 0xce, 0x9a, 0x22, 0x8a, 0x57, 0xf0, 0x85, 0x38, - 0x93, 0x88, 0x58, 0x18, 0x8a, 0xd1, 0xb2, 0x5b, 0x16, 0xcf, 0xc0, 0x06, 0x39, 0x90, 0x2b, 0xc7, - 0xc6, 0x16, 0xb0, 0xe4, 0x7a, 0x58, 0x0b, 0xe1, 0x2e, 0xd5, 0xf0, 0x00, 0x47, 0x71, 0x9d, 0x1a, - 0x2e, 0xff, 0x65, 0x02, 0x26, 0xc2, 0x78, 0xda, 0xaf, 0x88, 0xbf, 0x01, 0x33, 0x57, 0x9d, 0xd3, - 0x0c, 0x90, 0xbf, 0x4e, 0x36, 0x2e, 0x3b, 0xa0, 0xd9, 0x87, 0xc9, 0x4b, 0x0f, 0x66, 0x06, 0x38, - 0x3b, 0x55, 0x1b, 0xdd, 0x27, 0x32, 0xff, 0x1f, 0xa6, 0x1d, 0x7c, 0x1a, 0x1d, 0x8f, 0x45, 0x4a, - 0x1e, 0xe2, 0x4a, 0x9e, 0x64, 0xad, 0x72, 0x28, 0x91, 0x9a, 0x63, 0xa7, 0x63, 0xe1, 0x79, 0xda, - 0x70, 0xdb, 0xe9, 0x58, 0x70, 0x90, 0x56, 0xfe, 0x5c, 0x81, 0xe9, 0x0e, 0x41, 0x4a, 0x38, 0x55, - 0x03, 0x35, 0x32, 0x88, 0x60, 0x04, 0x42, 0xa8, 0xfd, 0x4d, 0x68, 0x3c, 0x22, 0x0f, 0x30, 0xb7, - 0xa1, 0x10, 0xc3, 0x14, 0x76, 0x30, 0x80, 0xec, 0xc7, 0x22, 0x62, 0xb1, 0xd2, 0x1f, 0x41, 0xde, - 0x42, 0xb4, 0xdb, 0xf8, 0x73, 0xac, 0x36, 0x14, 0x48, 0xf9, 0xd7, 0x14, 0x58, 0xe8, 0xdc, 0x5e, - 0xd4, 0x43, 0x93, 0xba, 0xde, 0x72, 0x2e, 0x33, 0xdf, 0xc4, 0x2d, 0xcc, 0xf7, 0xab, 0x30, 0xb9, - 0x7d, 0x99, 0xe2, 0x1e, 0x41, 0x9e, 0xab, 0x3b, 0x9a, 0x8e, 0x22, 0xa6, 0xc3, 0x6a, 0xa3, 0xe9, - 0xfc, 0x9b, 0x02, 0xf9, 0x2d, 0x62, 0x72, 0xac, 0x8a, 0x63, 0xee, 0xed, 0xac, 0xaa, 0x1f, 0x42, - 0xda, 0x26, 0xa6, 0x1c, 0x9a, 0xd2, 0xbf, 0xef, 0x4c, 0xd9, 0x12, 0x87, 0x45, 0xc6, 0x03, 0x66, - 0xb6, 0x07, 0xad, 0xb3, 0xae, 0x19, 0x5e, 0x0b, 0x93, 0x65, 0xa4, 0xab, 0xad, 0x33, 0x01, 0xf5, - 0x11, 0x8c, 0x71, 0x28, 0x8a, 0x2d, 0x4b, 0x62, 0x25, 0xfb, 0xc7, 0xca, 0x31, 0xda, 0x3a, 0xb6, - 0x2c, 0x21, 0xab, 0x1f, 0x0f, 0x03, 0xd4, 0xc3, 0xfb, 0x92, 0x2b, 0x53, 0xb4, 0x07, 0x00, 0x6c, - 0x37, 0x28, 0x13, 0x0c, 0x91, 0x9f, 0xa5, 0x59, 0x8d, 0xc8, 0x2f, 0x3a, 0x12, 0x90, 0x64, 0x57, - 0x02, 0xd2, 0x9d, 0x63, 0x0c, 0xdd, 0x5d, 0x8e, 0x31, 0x7c, 0xf7, 0x39, 0xc6, 0xc8, 0x2d, 0x73, - 0x8c, 0x9e, 0x1b, 0xcd, 0x28, 0x01, 0x49, 0xdd, 0x6d, 0x02, 0x92, 0xfe, 0xc9, 0x24, 0x20, 0x70, - 0xc7, 0x1b, 0x94, 0xcc, 0x6d, 0x37, 0x28, 0xd9, 0x6b, 0x37, 0x28, 0xb9, 0xcb, 0xd3, 0x88, 0xf2, - 0xef, 0x29, 0x30, 0x5a, 0xc5, 0x4d, 0x97, 0x12, 0x5f, 0xdd, 0x85, 0x71, 0x74, 0x82, 0x88, 0x85, - 0x0e, 0xf8, 0x59, 0x87, 0xc5, 0x76, 0xd6, 0x83, 0x38, 0xe0, 0x42, 0x48, 0xbd, 0x2a, 0x88, 0xd5, - 0x67, 0x90, 0xf3, 0x5d, 0x1f, 0x59, 0x21, 0x5a, 0x62, 0x10, 0xcb, 0x64, 0x94, 0x12, 0xa9, 0xfc, - 0x36, 0x4c, 0xd6, 0x5b, 0x07, 0xc8, 0xe0, 0xd7, 0x02, 0x7b, 0x1e, 0x32, 0xf1, 0xb6, 0xcb, 0x38, - 0x4c, 0xc2, 0xb0, 0xe3, 0x06, 0xe3, 0xcc, 0x69, 0xa2, 0xc0, 0xc2, 0x4c, 0x9a, 0x1f, 0x3d, 0x72, - 0x5f, 0xfb, 0x10, 0x72, 0x34, 0xa4, 0x8d, 0xfc, 0x6d, 0x36, 0xaa, 0xac, 0x99, 0xac, 0x13, 0x5f, - 0x3f, 0xd8, 0x20, 0x4d, 0x82, 0x1d, 0x3f, 0xd8, 0x73, 0x1d, 0x62, 0xac, 0x05, 0x75, 0xea, 0x97, - 0x61, 0xb8, 0xd3, 0xbf, 0x5c, 0x3b, 0x0f, 0x41, 0xa1, 0x7e, 0x0d, 0x52, 0x81, 0x25, 0x0d, 0xb2, - 0xd4, 0x43, 0x22, 0xb5, 0x00, 0x49, 0x83, 0x98, 0x62, 0x6d, 0x6b, 0xec, 0x67, 0xf9, 0xd3, 0x04, - 0xa4, 0x99, 0xab, 0xe2, 0x33, 0xbd, 0xee, 0x08, 0x0d, 0xc4, 0x21, 0x2f, 0x71, 0x0e, 0x5d, 0x79, - 0x95, 0xfb, 0xa8, 0xd7, 0x2a, 0x0b, 0xa5, 0x27, 0x4f, 0xfb, 0xd3, 0x6e, 0x28, 0xce, 0x6a, 0x80, - 0xc5, 0xb7, 0x93, 0x49, 0xbe, 0x62, 0xaf, 0xc7, 0xe2, 0xfb, 0x49, 0x81, 0xc2, 0xb7, 0x93, 0xcc, - 0x34, 0x3c, 0x72, 0x74, 0x84, 0x3d, 0xe9, 0xb2, 0x87, 0x06, 0x70, 0xff, 0x92, 0x52, 0x78, 0xec, - 0x1f, 0x24, 0x20, 0xcf, 0xc4, 0xb0, 0x49, 0x6c, 0x22, 0x65, 0xd1, 0x3e, 0x5d, 0xe5, 0x0e, 0xa7, - 0x9b, 0xb8, 0xe1, 0x74, 0xbf, 0x06, 0xa9, 0x43, 0x62, 0xf1, 0xc5, 0x31, 0x88, 0xf1, 0x84, 0x44, - 0x77, 0x27, 0x2f, 0x16, 0xba, 0xc4, 0x84, 0x1a, 0x88, 0x36, 0xb8, 0x3d, 0x65, 0xe5, 0x48, 0x9f, - 0x21, 0xda, 0x28, 0xff, 0x4d, 0x02, 0xc6, 0xa2, 0x00, 0x78, 0xf7, 0xf2, 0xdc, 0x80, 0xac, 0xf4, - 0x06, 0x3a, 0x3f, 0x2f, 0x1f, 0xc0, 0x25, 0x64, 0x24, 0xe1, 0x33, 0xd7, 0x32, 0x3b, 0xa6, 0x91, - 0xec, 0x98, 0x46, 0x87, 0xda, 0x86, 0xee, 0xca, 0x4a, 0x87, 0x6f, 0x6a, 0xa5, 0x7f, 0x95, 0x80, - 0xb1, 0x8e, 0x3b, 0xcc, 0xff, 0x69, 0x4b, 0xf6, 0x2b, 0x30, 0x22, 0x0e, 0x6b, 0x07, 0x71, 0x60, - 0x92, 0xe4, 0x0e, 0x25, 0xf9, 0xef, 0x49, 0x98, 0x8f, 0x62, 0x01, 0x1f, 0xe9, 0x81, 0xeb, 0x1e, - 0x6f, 0x61, 0x1f, 0x99, 0xc8, 0x47, 0xea, 0x97, 0x61, 0xf6, 0x04, 0x39, 0x6c, 0xdd, 0xe8, 0x16, - 0x73, 0x09, 0xf2, 0x7a, 0x4b, 0x5c, 0x28, 0x8b, 0x30, 0x31, 0x2d, 0x3b, 0x44, 0x2e, 0x43, 0xdc, - 0x25, 0x7f, 0x08, 0x0f, 0x3c, 0x6c, 0xb6, 0x0c, 0x2c, 0x2e, 0x78, 0xba, 0xc9, 0x13, 0x9c, 0x7c, - 0x56, 0x74, 0xda, 0x71, 0xac, 0xb3, 0x4e, 0x84, 0x06, 0x2c, 0xa0, 0xa3, 0x23, 0x0f, 0x1f, 0xb1, - 0xad, 0x5e, 0x1c, 0x2b, 0x74, 0xfe, 0x03, 0xac, 0xfe, 0xf9, 0x10, 0x4a, 0x0b, 0x19, 0x06, 0xc9, - 0x84, 0x8a, 0x60, 0x2e, 0xe2, 0x14, 0x4c, 0xf8, 0x26, 0x21, 0xa6, 0x18, 0xc2, 0x7c, 0x2c, 0x50, - 0x42, 0x16, 0xeb, 0xb0, 0x18, 0x00, 0x1b, 0xae, 0x63, 0x12, 0x91, 0x76, 0xb4, 0x09, 0x44, 0x1c, - 0xff, 0xdd, 0x97, 0xdd, 0xd6, 0xa2, 0x5e, 0x31, 0x99, 0x6c, 0xc2, 0xc3, 0xb8, 0x24, 0xae, 0x82, - 0x1a, 0xe1, 0x50, 0x8b, 0x91, 0x6c, 0x2f, 0x45, 0x2b, 0xff, 0xb9, 0x02, 0x63, 0x1d, 0xea, 0x8f, - 0xe2, 0xb2, 0x72, 0xab, 0xb8, 0x9c, 0xb8, 0x49, 0x5c, 0x2e, 0x43, 0x96, 0xd0, 0x48, 0x3f, 0x5c, - 0xbf, 0x29, 0xad, 0xad, 0x2e, 0x88, 0xdd, 0x43, 0x51, 0xec, 0x7e, 0x05, 0x13, 0x1d, 0x93, 0xa8, - 0x32, 0xdb, 0xad, 0xc0, 0x30, 0x17, 0x89, 0xf4, 0xb1, 0x6f, 0xf5, 0x5a, 0xa3, 0x1d, 0xf4, 0x9a, - 0xa0, 0xec, 0xf0, 0x8b, 0x89, 0x4e, 0xf7, 0xfe, 0xeb, 0x49, 0x98, 0x8c, 0xfc, 0xd0, 0x4f, 0x75, - 0xcc, 0x8c, 0xfc, 0x4d, 0x72, 0x70, 0x7f, 0x13, 0x0f, 0xb8, 0x43, 0x77, 0x12, 0x70, 0x87, 0xef, - 0x26, 0xe0, 0x8e, 0x74, 0x6a, 0xe4, 0x37, 0x93, 0x30, 0xd5, 0x79, 0x5a, 0xf0, 0xbf, 0x52, 0x25, - 0x55, 0xc8, 0xc8, 0xcb, 0x3e, 0x1e, 0xf8, 0x07, 0xd0, 0x0a, 0x08, 0x3a, 0x1e, 0xf7, 0xff, 0xcb, - 0xf4, 0xf2, 0x17, 0x09, 0x48, 0xed, 0xb2, 0x8d, 0x11, 0x71, 0x1d, 0x75, 0x1a, 0x46, 0x08, 0xdd, - 0x74, 0xe5, 0x89, 0x54, 0x4a, 0x93, 0xa5, 0xdb, 0xbb, 0x8f, 0x2a, 0x64, 0xb0, 0xe3, 0x7b, 0x67, - 0xfa, 0xc0, 0x1b, 0x0b, 0xe0, 0x74, 0x62, 0x2a, 0xb7, 0x0a, 0xcd, 0xdf, 0x82, 0x62, 0xf7, 0xc9, - 0x9b, 0xce, 0xd1, 0x07, 0x39, 0x4a, 0x98, 0xee, 0x3a, 0x7f, 0x5b, 0x67, 0x10, 0xe5, 0x1a, 0x4c, - 0xc6, 0x8c, 0xba, 0xe6, 0x98, 0xc4, 0x40, 0xbe, 0x7b, 0x4d, 0xf6, 0x33, 0x09, 0xc3, 0x84, 0xae, - 0xb6, 0x84, 0x50, 0x53, 0x9a, 0x28, 0x94, 0xff, 0x3a, 0x01, 0x29, 0xbe, 0xf9, 0xdb, 0x74, 0xdb, - 0x45, 0xaf, 0xdc, 0x44, 0xf4, 0x61, 0xd4, 0x48, 0x0c, 0x1c, 0x35, 0xba, 0xb6, 0x94, 0x22, 0xff, - 0x6c, 0xdf, 0x52, 0xbe, 0x07, 0xc9, 0x43, 0x3c, 0x90, 0xf7, 0x61, 0xfd, 0xaf, 0xc9, 0xcf, 0xd5, - 0xf7, 0x61, 0xaa, 0x6d, 0xa3, 0xaa, 0x23, 0xd3, 0xf4, 0x30, 0xa5, 0xc2, 0x80, 0xf9, 0xc2, 0x57, - 0xb4, 0x89, 0xf8, 0xb6, 0xb5, 0x22, 0x3a, 0x04, 0x51, 0x68, 0x34, 0x8a, 0x42, 0xbf, 0x9d, 0x80, - 0x5c, 0x60, 0xe2, 0x55, 0x6c, 0xf9, 0x48, 0x9d, 0x81, 0x51, 0x42, 0x75, 0xab, 0xdb, 0xd0, 0x35, - 0x50, 0xf1, 0x29, 0x36, 0x5a, 0xfc, 0x28, 0xff, 0x26, 0x26, 0x3f, 0x1e, 0x92, 0x87, 0xf9, 0xc5, - 0x36, 0x14, 0x22, 0xcc, 0xc1, 0xfd, 0xca, 0x58, 0x48, 0x2c, 0xee, 0xff, 0xd5, 0x4d, 0x88, 0xaa, - 0xba, 0x76, 0x49, 0xd7, 0xc2, 0xe5, 0x43, 0x5a, 0x91, 0x67, 0xfe, 0x6e, 0x12, 0xd4, 0xd8, 0xeb, - 0xd8, 0xc0, 0xec, 0x2e, 0x3d, 0x4d, 0xe8, 0x54, 0xfd, 0x2e, 0xe4, 0x9b, 0x52, 0xae, 0xba, 0xc9, - 0x04, 0x2b, 0x13, 0xf8, 0x37, 0x7b, 0x79, 0xdc, 0x36, 0x4d, 0x68, 0xb9, 0x66, 0x9b, 0x62, 0xbe, - 0x02, 0x23, 0x4d, 0x74, 0xe6, 0xb6, 0xfc, 0x81, 0x3c, 0xaf, 0x20, 0xf9, 0xe9, 0xb7, 0x44, 0x36, - 0xc2, 0xa6, 0x63, 0x0d, 0xf2, 0xb4, 0x84, 0xf5, 0x2f, 0xff, 0x3c, 0xa8, 0x51, 0x1a, 0x14, 0x3a, - 0xeb, 0x0f, 0x21, 0x15, 0x08, 0x4f, 0x46, 0xcd, 0xd7, 0xfb, 0x91, 0xbb, 0x16, 0x52, 0x75, 0x2b, - 0x39, 0xd1, 0xad, 0xe4, 0xf2, 0x2b, 0x18, 0x8f, 0x98, 0x07, 0x87, 0x68, 0x7d, 0x99, 0xc7, 0x57, - 0x61, 0xd4, 0x14, 0xfd, 0xa5, 0x5d, 0x3c, 0xec, 0x35, 0x3e, 0x09, 0xad, 0x05, 0x34, 0xe5, 0x26, - 0xe4, 0x64, 0xdd, 0x7e, 0xd3, 0x44, 0x3e, 0x3f, 0x05, 0x13, 0x07, 0xcd, 0xc2, 0x8d, 0x8a, 0x82, - 0x5a, 0x83, 0x94, 0xa4, 0xa0, 0xc5, 0x44, 0x29, 0xb9, 0x94, 0x79, 0xf7, 0x9d, 0xfe, 0xf2, 0xc9, - 0x80, 0x61, 0x48, 0x5e, 0xfe, 0x81, 0x02, 0x85, 0x5d, 0x97, 0x38, 0x3e, 0x8d, 0x3d, 0xda, 0xfa, - 0x26, 0xcc, 0x88, 0x33, 0xec, 0x26, 0x6f, 0x89, 0x3f, 0xd0, 0x1a, 0xc0, 0x1f, 0x4f, 0x71, 0x8c, - 0xcb, 0xc0, 0xfd, 0x2b, 0xc0, 0x07, 0x70, 0x3a, 0x53, 0xfe, 0x65, 0xe0, 0xe5, 0xff, 0x48, 0xc0, - 0xc2, 0x5e, 0xfc, 0x5d, 0xee, 0x1a, 0xb2, 0x9b, 0x88, 0x1c, 0x39, 0xab, 0xae, 0x4b, 0xc5, 0x05, - 0xcd, 0x7b, 0x30, 0x73, 0xc0, 0x0a, 0xd8, 0xd4, 0xdb, 0x3e, 0xc3, 0x30, 0x69, 0x51, 0xe1, 0x4f, - 0xe8, 0x26, 0x65, 0x73, 0x74, 0x56, 0x52, 0x33, 0xa9, 0xfa, 0x02, 0x66, 0xe2, 0xdd, 0xa3, 0x51, - 0x07, 0x2a, 0x78, 0xbb, 0xb7, 0x25, 0xb6, 0x0f, 0x54, 0xa6, 0x71, 0x53, 0xd1, 0x07, 0x1c, 0x51, - 0x1b, 0x55, 0x2b, 0xf0, 0x20, 0x18, 0xe2, 0x25, 0x9f, 0x70, 0x98, 0xb4, 0x98, 0xe4, 0x03, 0x9d, - 0x93, 0x9d, 0x3a, 0x73, 0x4c, 0x36, 0xdc, 0x13, 0x78, 0xd0, 0x4d, 0x1a, 0x1f, 0xf4, 0xd0, 0x8d, - 0x07, 0x3d, 0xdf, 0xf9, 0x21, 0x48, 0x6c, 0xe8, 0xe5, 0x3f, 0x55, 0x40, 0x0d, 0x64, 0x2e, 0x34, - 0xb0, 0xeb, 0x8a, 0x37, 0x2d, 0x9d, 0xb7, 0xcb, 0xe2, 0x46, 0x2a, 0x4f, 0xdb, 0x6f, 0x96, 0x7f, - 0x01, 0x26, 0xc5, 0x1b, 0x45, 0x01, 0x11, 0x3c, 0xc2, 0x96, 0x32, 0xee, 0xf1, 0x76, 0xf9, 0x8b, - 0x6c, 0x6c, 0x7f, 0xf8, 0x8f, 0x8b, 0x4b, 0x47, 0xc4, 0x6f, 0xb4, 0x0e, 0x96, 0x0d, 0xd7, 0x5e, - 0x91, 0x5f, 0xf3, 0x88, 0xff, 0xde, 0xa1, 0xe6, 0xf1, 0x0a, 0xcb, 0x91, 0x29, 0x27, 0xa0, 0x9a, - 0x6a, 0xa3, 0xd3, 0xf6, 0xa1, 0xd2, 0xf2, 0x1f, 0x24, 0x60, 0xf6, 0x52, 0xfb, 0xe1, 0xa6, 0xf3, - 0x01, 0xcc, 0x86, 0x03, 0x0b, 0x5e, 0x83, 0x87, 0xcf, 0x38, 0xc5, 0x7c, 0x66, 0x82, 0x0e, 0xc1, - 0x43, 0xf0, 0xe0, 0xc5, 0xe6, 0x6b, 0x90, 0x8d, 0x5d, 0x1c, 0x89, 0x09, 0xa5, 0xb5, 0x4c, 0x74, - 0x73, 0x44, 0xd5, 0x16, 0xcc, 0xb6, 0xbf, 0x3d, 0xd7, 0xb9, 0x82, 0xc5, 0x26, 0x21, 0xc9, 0xdd, - 0xc9, 0x07, 0xbd, 0xf4, 0xd5, 0xdb, 0xf0, 0xb5, 0xe9, 0xb6, 0x07, 0xeb, 0xd1, 0x82, 0xf8, 0x12, - 0xcc, 0x98, 0x84, 0xbe, 0x6c, 0x21, 0x8b, 0x1c, 0x12, 0x6c, 0xc6, 0xed, 0x6c, 0x88, 0x0f, 0x72, - 0x2a, 0xde, 0x1c, 0x9a, 0x58, 0xf9, 0xcf, 0x12, 0x30, 0xb1, 0x81, 0x71, 0x95, 0x50, 0x71, 0x76, - 0x4f, 0xe4, 0x86, 0xa4, 0x0e, 0x13, 0xc2, 0x7b, 0x98, 0xb2, 0x45, 0x5c, 0x34, 0x0d, 0x72, 0xe1, - 0xcb, 0xe9, 0x03, 0x60, 0x7e, 0xcd, 0x54, 0x87, 0x09, 0xff, 0x12, 0xd0, 0x41, 0xd2, 0x14, 0xbf, - 0x0b, 0x74, 0x15, 0x72, 0xf2, 0xb3, 0x02, 0x64, 0xf3, 0x93, 0x8a, 0x64, 0x3f, 0xcf, 0x62, 0xb3, - 0x82, 0xa6, 0xc2, 0x49, 0x58, 0xf8, 0x3e, 0x71, 0xad, 0x96, 0x3d, 0x50, 0x10, 0x96, 0x24, 0xe5, - 0x5f, 0x6d, 0x17, 0x61, 0xdd, 0x68, 0x60, 0xb3, 0x65, 0xf1, 0x87, 0xa7, 0x07, 0x2d, 0x83, 0x69, - 0x21, 0x3a, 0xdc, 0x1a, 0xd2, 0x32, 0xa2, 0x4e, 0x9c, 0xbd, 0xbc, 0x01, 0x63, 0xb2, 0x4b, 0xf8, - 0x5d, 0x82, 0x78, 0xe2, 0x91, 0x17, 0xd5, 0xe1, 0x87, 0x08, 0x9d, 0x86, 0x97, 0xec, 0x36, 0xbc, - 0x6d, 0x00, 0x9f, 0xc8, 0xdd, 0x68, 0xe0, 0x19, 0x56, 0x7a, 0x59, 0xda, 0x25, 0x6a, 0xd7, 0xd2, - 0xbe, 0xfc, 0x45, 0x7b, 0x59, 0xd4, 0x70, 0x2f, 0x8b, 0xda, 0x02, 0xb5, 0x03, 0x79, 0x6f, 0x6f, - 0x53, 0x55, 0x61, 0xc8, 0x0f, 0x42, 0xcf, 0x90, 0xc6, 0x7f, 0xb3, 0x60, 0xec, 0xfb, 0x56, 0xd7, - 0xf3, 0x96, 0xac, 0xef, 0x5b, 0xd1, 0xf5, 0xf6, 0xef, 0x28, 0x90, 0xfd, 0x98, 0x0b, 0x5a, 0xc3, - 0x86, 0xeb, 0x99, 0xfc, 0x7a, 0x8e, 0x1b, 0x91, 0xd4, 0x98, 0x32, 0xc8, 0xf5, 0x1c, 0x23, 0x14, - 0x68, 0x0c, 0xc7, 0x8f, 0xe3, 0x0c, 0x72, 0xd2, 0xed, 0x47, 0x38, 0xe5, 0xdf, 0x50, 0x20, 0x5f, - 0x11, 0x91, 0x59, 0x3a, 0x20, 0xb5, 0x08, 0xa3, 0x32, 0x56, 0xcb, 0x90, 0x1f, 0x14, 0x55, 0x0c, - 0xa3, 0x3f, 0x41, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x49, 0x81, 0x2c, 0x4f, 0x89, 0x85, 0xcc, 0x68, - 0xef, 0xdd, 0xdc, 0x73, 0x98, 0xb4, 0x90, 0x8f, 0xa9, 0xaf, 0x33, 0xe7, 0xc2, 0x53, 0x46, 0x37, - 0x1a, 0xe1, 0x1b, 0xd7, 0x79, 0x2b, 0xc9, 0x44, 0x53, 0x05, 0x48, 0x9c, 0x6f, 0xf9, 0x4b, 0x90, - 0x8b, 0x12, 0x97, 0x5a, 0x95, 0xaa, 0x8f, 0x20, 0xdf, 0x96, 0x80, 0x89, 0x78, 0x9d, 0xd5, 0x72, - 0xf1, 0x0c, 0x8c, 0x96, 0x7f, 0x5f, 0x81, 0x4c, 0x0c, 0x48, 0xbd, 0x0f, 0xe9, 0xce, 0xa0, 0x13, - 0x55, 0xdc, 0x66, 0xab, 0x18, 0xdf, 0xa6, 0x26, 0x6f, 0xb0, 0x4d, 0x2d, 0xdb, 0x30, 0x2c, 0x3e, - 0x64, 0x79, 0x02, 0x4a, 0x73, 0x10, 0x63, 0x54, 0x9a, 0x8c, 0xe4, 0xe5, 0x20, 0x63, 0x56, 0x5e, - 0x96, 0x7f, 0x4b, 0x81, 0xc5, 0x4a, 0x70, 0x22, 0x1c, 0x89, 0xb6, 0x6d, 0x85, 0xf4, 0x75, 0xa3, - 0xba, 0x03, 0x79, 0x69, 0x11, 0xc2, 0xfe, 0x03, 0x75, 0xf7, 0x71, 0xbb, 0x2f, 0x99, 0xe5, 0xec, - 0x58, 0x89, 0x96, 0xbf, 0xa3, 0xc0, 0xfd, 0x70, 0x64, 0x95, 0x4b, 0x86, 0x75, 0xf5, 0xaa, 0xb8, - 0xf3, 0xb1, 0x50, 0xc8, 0xc6, 0x9b, 0x7b, 0x9b, 0xff, 0x46, 0xe8, 0xfc, 0x45, 0xb6, 0xdf, 0x93, - 0x6b, 0x7c, 0x46, 0x32, 0x95, 0x0a, 0xe2, 0x40, 0x85, 0xe5, 0xfd, 0x8e, 0x6b, 0x57, 0xb1, 0x41, - 0x6c, 0x64, 0xd1, 0x2b, 0xf2, 0xfe, 0x39, 0x96, 0xf7, 0x8b, 0x1e, 0x9c, 0xe1, 0x90, 0x16, 0x96, - 0xcb, 0x18, 0xd4, 0xa7, 0x1e, 0x72, 0xfc, 0x4a, 0xcb, 0x6f, 0xb8, 0x1e, 0xf9, 0x44, 0x38, 0xff, - 0x22, 0x8c, 0x1e, 0xb1, 0x5a, 0xf9, 0x4d, 0x71, 0x5a, 0x0b, 0x8a, 0xea, 0x7b, 0x30, 0x22, 0x83, - 0x5e, 0xa2, 0x9f, 0xa0, 0x27, 0x3b, 0x97, 0xbf, 0x0d, 0x99, 0x0a, 0x9f, 0x1f, 0x67, 0x16, 0xe1, - 0x7b, 0xed, 0xf8, 0xde, 0x4d, 0xf1, 0xbf, 0xab, 0x40, 0x7e, 0xfd, 0xf0, 0x10, 0xf7, 0xc5, 0xa3, - 0x06, 0xe3, 0x0e, 0xf6, 0x75, 0x51, 0x94, 0x9f, 0x08, 0xf6, 0xc7, 0x6e, 0xcc, 0xc1, 0xfe, 0x53, - 0x41, 0xc6, 0x3f, 0x06, 0x54, 0x67, 0x21, 0x45, 0xa8, 0x7e, 0x82, 0x2c, 0x79, 0xe4, 0x93, 0xd2, - 0x46, 0x09, 0xfd, 0x98, 0x15, 0x1f, 0xfb, 0x70, 0xbf, 0xd7, 0x47, 0x6a, 0x2a, 0xc0, 0xc8, 0xb6, - 0x7b, 0xe0, 0x9a, 0x67, 0x85, 0x7b, 0x6a, 0x19, 0x16, 0x56, 0xf1, 0x11, 0x71, 0x56, 0x2d, 0xd7, - 0x38, 0xc6, 0x5e, 0xdd, 0x46, 0x9e, 0xbf, 0xe6, 0x3a, 0xbe, 0x87, 0x0c, 0x9f, 0xee, 0x38, 0xd6, - 0x59, 0x41, 0x51, 0xa7, 0x41, 0xbd, 0xa4, 0x3e, 0xa1, 0x66, 0x21, 0xb5, 0x7e, 0x82, 0xbd, 0x33, - 0xd7, 0xc1, 0x85, 0xe4, 0xe3, 0xbd, 0xc0, 0x0e, 0xc5, 0x83, 0x18, 0x75, 0x0c, 0x32, 0xfb, 0x0e, - 0x6d, 0x62, 0x83, 0xc7, 0xcc, 0xc2, 0x3d, 0xc6, 0x56, 0x68, 0xa2, 0xa0, 0xb0, 0xdf, 0xbb, 0xa8, - 0x45, 0xb1, 0x59, 0x48, 0xa8, 0x79, 0x80, 0x2a, 0xb6, 0x5d, 0x8b, 0xd0, 0x06, 0x36, 0x0b, 0x49, - 0x35, 0x03, 0xa3, 0xfc, 0x21, 0x29, 0x36, 0x0b, 0x43, 0x8f, 0xff, 0x24, 0x21, 0xdf, 0x4f, 0xf0, - 0x43, 0xdf, 0x12, 0x64, 0xf6, 0xb7, 0xeb, 0xbb, 0xeb, 0x6b, 0xb5, 0x8d, 0xda, 0x7a, 0xb5, 0x70, - 0x6f, 0x6e, 0xec, 0xfc, 0xa2, 0x14, 0xaf, 0x62, 0xfb, 0xf9, 0xd5, 0xfd, 0xe7, 0x05, 0x65, 0x6e, - 0xf4, 0xfc, 0xa2, 0xc4, 0x7e, 0xb2, 0x68, 0x5c, 0x5f, 0xdf, 0xdc, 0x2c, 0x24, 0xe6, 0x52, 0xe7, - 0x17, 0x25, 0xfe, 0x9b, 0xd9, 0x65, 0x7d, 0x6f, 0x67, 0x57, 0x67, 0x5d, 0x93, 0x73, 0xd9, 0xf3, - 0x8b, 0x52, 0x58, 0x66, 0xee, 0x97, 0xff, 0xe6, 0x44, 0x43, 0x73, 0xb9, 0xf3, 0x8b, 0x52, 0x54, - 0xc1, 0x28, 0xf7, 0x2a, 0x1f, 0xad, 0x73, 0xca, 0x61, 0x41, 0x19, 0x94, 0x19, 0x25, 0xff, 0xcd, - 0x29, 0x47, 0x04, 0x65, 0x58, 0xa1, 0x4e, 0xc3, 0xc8, 0xea, 0xfe, 0x73, 0x7d, 0x77, 0xa7, 0x30, - 0x3a, 0x07, 0xe7, 0x17, 0x25, 0x59, 0x62, 0xd6, 0xc2, 0xda, 0x59, 0x43, 0x6a, 0x2e, 0x73, 0x7e, - 0x51, 0x0a, 0x8a, 0xea, 0x02, 0x00, 0xeb, 0x53, 0xd9, 0xdb, 0xd9, 0xaa, 0xad, 0x15, 0xd2, 0x73, - 0xf9, 0xf3, 0x8b, 0x52, 0xac, 0x86, 0x49, 0x83, 0x77, 0x95, 0x1d, 0x40, 0x48, 0x23, 0x56, 0xf5, - 0xf8, 0x8f, 0x14, 0xc8, 0xad, 0x07, 0x67, 0x49, 0x5c, 0x82, 0xf7, 0xa1, 0x18, 0xd3, 0x4a, 0x5b, - 0x9b, 0x50, 0x91, 0xd0, 0x61, 0x41, 0x51, 0x73, 0x90, 0xe6, 0x77, 0x32, 0x1b, 0xc4, 0xb2, 0x0a, - 0x09, 0x75, 0x0e, 0xa6, 0x79, 0x71, 0x0b, 0xf9, 0x46, 0x43, 0x13, 0xdf, 0x8e, 0x72, 0xc5, 0x14, - 0x92, 0xcc, 0x40, 0xa2, 0xb6, 0x6d, 0xfc, 0x4a, 0xd4, 0x0f, 0xa9, 0x53, 0x30, 0x2e, 0x3f, 0x5d, - 0x93, 0xdf, 0x83, 0x12, 0xd7, 0x29, 0x0c, 0x33, 0x28, 0xf1, 0x52, 0xb8, 0xf3, 0x3d, 0x62, 0x61, - 0xe4, 0xf1, 0x77, 0x02, 0x7d, 0x6f, 0x21, 0x7a, 0xcc, 0x64, 0xb6, 0xbf, 0xbd, 0x5f, 0xe7, 0xaa, - 0xe6, 0x32, 0x13, 0x25, 0xa6, 0xe5, 0xca, 0x76, 0xa8, 0xe5, 0xca, 0xf6, 0x73, 0x26, 0x45, 0x6d, - 0xfd, 0xe9, 0xfe, 0x66, 0x45, 0x2b, 0x24, 0x84, 0x14, 0x65, 0x91, 0x49, 0x69, 0x6d, 0x67, 0xbb, - 0x5a, 0xdb, 0xab, 0xed, 0x6c, 0x57, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, 0xcc, 0x54, - 0x6b, 0xda, 0xfa, 0x1a, 0x2b, 0x32, 0x45, 0xea, 0x3b, 0x9a, 0xfe, 0xac, 0xf6, 0xf4, 0xd9, 0xba, - 0x56, 0x48, 0xcd, 0x8d, 0x9f, 0x5f, 0x94, 0x72, 0x6d, 0x95, 0xed, 0xfd, 0xb9, 0xb8, 0x77, 0x34, - 0x7d, 0x73, 0xe7, 0x67, 0xd7, 0xb5, 0x42, 0x41, 0xf4, 0x6f, 0xab, 0x54, 0xe7, 0x21, 0xb3, 0xf7, - 0x7c, 0x77, 0x5d, 0xdf, 0xaa, 0x68, 0x1f, 0xad, 0xef, 0x15, 0x4a, 0x62, 0x2a, 0xa2, 0xa4, 0xce, - 0x02, 0xf0, 0xc6, 0xcd, 0xda, 0x56, 0x6d, 0xaf, 0xf0, 0xe1, 0x5c, 0xfa, 0xfc, 0xa2, 0x34, 0xcc, - 0x0b, 0xab, 0x8d, 0xef, 0x7f, 0xb6, 0xa0, 0xfc, 0xf0, 0xb3, 0x05, 0xe5, 0x9f, 0x3e, 0x5b, 0x50, - 0xbe, 0xfb, 0xf9, 0xc2, 0xbd, 0x1f, 0x7e, 0xbe, 0x70, 0xef, 0xef, 0x3e, 0x5f, 0xb8, 0xf7, 0x8d, - 0xed, 0x58, 0x9a, 0x54, 0x0b, 0x1c, 0xf8, 0x26, 0x3a, 0xa0, 0x2b, 0xa1, 0x3b, 0x7f, 0xc7, 0x70, - 0x3d, 0x1c, 0x2f, 0x36, 0x10, 0x71, 0x56, 0x6c, 0x97, 0xa5, 0xeb, 0x34, 0xfa, 0x4b, 0x14, 0x3c, - 0xa5, 0x3a, 0x18, 0xe1, 0xdf, 0x3f, 0xfe, 0xbf, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x35, 0xcc, - 0x95, 0x72, 0xac, 0x42, 0x00, 0x00, + // 4472 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xd9, 0x6f, 0x64, 0xd9, + 0x59, 0xef, 0x5b, 0xe5, 0xa5, 0xea, 0xab, 0xc5, 0xe5, 0xeb, 0xad, 0x6c, 0x77, 0xdb, 0x35, 0xd5, + 0xd3, 0x19, 0x4f, 0xcf, 0x8c, 0x9d, 0x1e, 0x98, 0x68, 0x32, 0x51, 0x94, 0x29, 0x6f, 0xd3, 0xc5, + 0x78, 0xcb, 0x2d, 0x7b, 0xa0, 0x13, 0x25, 0x57, 0xc7, 0xf7, 0x1e, 0xbb, 0x4e, 0xfb, 0x2e, 0xd5, + 0xf7, 0xdc, 0x72, 0xdb, 0x83, 0x90, 0x78, 0x18, 0x21, 0x62, 0x40, 0x04, 0x21, 0x84, 0x84, 0x64, + 0x14, 0x1e, 0x10, 0x82, 0x17, 0x78, 0x44, 0x82, 0x07, 0x24, 0x04, 0xe4, 0x21, 0x48, 0x79, 0xe0, + 0x01, 0x21, 0x11, 0xd0, 0x0c, 0x12, 0x88, 0xbf, 0x01, 0x45, 0xe8, 0x2c, 0x77, 0xa9, 0xc5, 0xe5, + 0x2a, 0xdb, 0x03, 0x81, 0xbc, 0x74, 0xd7, 0x59, 0xbe, 0xdf, 0x77, 0xce, 0xf7, 0x7d, 0xe7, 0xfb, + 0xbe, 0xb3, 0x5c, 0xc3, 0xeb, 0xc4, 0x79, 0x8e, 0x0d, 0x9f, 0x9c, 0xe2, 0x15, 0x7c, 0x66, 0xd4, + 0x91, 0x73, 0x8c, 0x57, 0x4e, 0x9f, 0x1c, 0x62, 0x1f, 0x3d, 0x09, 0x2b, 0x96, 0x1b, 0x9e, 0xeb, + 0xbb, 0xea, 0x5c, 0xd8, 0x75, 0x39, 0x6c, 0x91, 0x5d, 0xe7, 0x26, 0x8f, 0xdd, 0x63, 0x97, 0x77, + 0x5b, 0x61, 0xbf, 0x04, 0xc5, 0xdc, 0x82, 0xe1, 0x52, 0xdb, 0xa5, 0x2b, 0x87, 0x88, 0x46, 0xa8, + 0x86, 0x4b, 0x1c, 0xd9, 0xfe, 0x28, 0x62, 0xee, 0x7a, 0xc8, 0xb0, 0xa2, 0x4e, 0xa2, 0x28, 0xbb, + 0x8d, 0x23, 0x9b, 0x38, 0xee, 0x0a, 0xff, 0x57, 0x54, 0x95, 0xff, 0x79, 0x0a, 0x46, 0xf6, 0x90, + 0x87, 0x6c, 0xaa, 0x62, 0x58, 0xa4, 0x0d, 0xd7, 0xd7, 0x6d, 0xe4, 0x9d, 0x60, 0x5f, 0x27, 0x0e, + 0xf5, 0x91, 0xe3, 0xeb, 0x16, 0xa1, 0x3e, 0x71, 0x8e, 0xf5, 0x23, 0x8c, 0x8b, 0x4a, 0x49, 0x59, + 0xca, 0xbc, 0x3d, 0xbb, 0x2c, 0x86, 0xb3, 0xcc, 0x86, 0x13, 0x8c, 0x7c, 0x79, 0xcd, 0x25, 0xce, + 0xea, 0xd0, 0xf7, 0x7f, 0xb4, 0x78, 0x4f, 0x9b, 0x67, 0x38, 0xdb, 0x1c, 0xa6, 0x2a, 0x50, 0xb6, + 0x04, 0xc8, 0x26, 0xc6, 0xea, 0x0b, 0x78, 0x64, 0x62, 0x8f, 0x9c, 0x22, 0x36, 0xdc, 0x5e, 0xcc, + 0x12, 0xfd, 0x31, 0x7b, 0x25, 0x42, 0xbb, 0x8a, 0x25, 0x82, 0x79, 0x13, 0x1f, 0xa1, 0xa6, 0xe5, + 0xeb, 0x72, 0x86, 0x27, 0xd8, 0x63, 0x3c, 0x74, 0x0f, 0xf9, 0xb8, 0x98, 0x2c, 0x29, 0x4b, 0xe9, + 0xd5, 0x87, 0x0c, 0xed, 0x9f, 0x7e, 0xb4, 0x38, 0x2f, 0xf8, 0x51, 0xf3, 0x64, 0x99, 0xb8, 0x2b, + 0x36, 0xf2, 0xeb, 0xcb, 0x5b, 0xf8, 0x18, 0x19, 0xe7, 0xeb, 0xd8, 0xd0, 0x66, 0x24, 0x4e, 0x8d, + 0x4f, 0xf0, 0x04, 0x7b, 0x9b, 0x18, 0x6b, 0xc8, 0xef, 0x64, 0xe1, 0xb7, 0xb2, 0x18, 0xba, 0x19, + 0x8b, 0xfd, 0x38, 0x0b, 0x1b, 0x5e, 0x09, 0x58, 0xb4, 0x08, 0xb0, 0x85, 0xd1, 0x70, 0xff, 0x8c, + 0x1e, 0x48, 0xb4, 0xf5, 0x98, 0xfc, 0xae, 0x65, 0xd7, 0x36, 0xaf, 0x91, 0xdb, 0xb0, 0x6b, 0x99, + 0x9d, 0x09, 0xf7, 0x03, 0x76, 0xc4, 0x21, 0x3e, 0x41, 0x16, 0xb3, 0x8d, 0x63, 0xe2, 0x30, 0x46, + 0xc4, 0x2d, 0x8e, 0xf6, 0xcf, 0x69, 0x56, 0x02, 0x55, 0x05, 0xce, 0x36, 0x87, 0xd1, 0x18, 0x8a, + 0x6a, 0x41, 0x29, 0xe0, 0x62, 0x23, 0xe2, 0xf8, 0xd8, 0x41, 0x8e, 0x81, 0x5b, 0x39, 0xa5, 0x06, + 0x9f, 0xd3, 0x76, 0x84, 0x15, 0xe7, 0xf6, 0x2e, 0x14, 0x03, 0x6e, 0x47, 0x4d, 0xc7, 0x64, 0x86, + 0xcd, 0xfa, 0x79, 0xa7, 0xc8, 0x2a, 0xa6, 0x4b, 0xca, 0x52, 0x52, 0x9b, 0x96, 0xed, 0x9b, 0xa2, + 0xb9, 0x2a, 0x5b, 0xd5, 0xd7, 0xa1, 0x10, 0x50, 0xd8, 0x4d, 0xcb, 0x27, 0x0d, 0x0b, 0x17, 0x81, + 0x53, 0x8c, 0xc9, 0xfa, 0x6d, 0x59, 0xad, 0xfe, 0x02, 0x4c, 0x7b, 0xd8, 0x42, 0xe7, 0x52, 0x2d, + 0xb4, 0x8e, 0x3c, 0xa9, 0x9c, 0x4c, 0xff, 0x13, 0x99, 0x90, 0x10, 0x9b, 0x18, 0xd7, 0x18, 0x00, + 0x57, 0x09, 0x81, 0xc5, 0x60, 0xf8, 0x75, 0xb7, 0xe9, 0x59, 0xe7, 0xe1, 0x2c, 0x18, 0xbc, 0x6e, + 0xa0, 0x46, 0x31, 0xdb, 0x3f, 0x8b, 0x60, 0x7d, 0x3c, 0xe5, 0x50, 0x72, 0xc2, 0x8c, 0xcf, 0x1a, + 0x6a, 0xc4, 0xb5, 0x2f, 0x59, 0x71, 0x41, 0x61, 0xea, 0x8b, 0xa9, 0xe4, 0x06, 0xd7, 0xbe, 0xe0, + 0x53, 0x95, 0x30, 0x7c, 0x42, 0xeb, 0xb0, 0x68, 0xa3, 0xb3, 0xb8, 0x39, 0xbb, 0x9e, 0x89, 0x3d, + 0x9d, 0x12, 0x13, 0xeb, 0x86, 0xdb, 0x74, 0xfc, 0x62, 0xbe, 0xa4, 0x2c, 0xe5, 0xb4, 0x79, 0x1b, + 0x9d, 0x45, 0x76, 0xba, 0xcb, 0x3a, 0xd5, 0x88, 0x89, 0xd7, 0x58, 0x17, 0x95, 0xc2, 0x6b, 0xc4, + 0x79, 0xae, 0x7b, 0xf8, 0x25, 0xf2, 0x4c, 0x9d, 0xb2, 0x15, 0x61, 0xea, 0x1e, 0x7e, 0xd1, 0x24, + 0x1e, 0xb6, 0xb1, 0xe3, 0xeb, 0x7e, 0xdd, 0xc3, 0xb4, 0xee, 0x5a, 0x66, 0x71, 0x8c, 0x0f, 0xfb, + 0x81, 0x1c, 0xf6, 0x54, 0xe7, 0xb0, 0xab, 0x8e, 0xaf, 0x3d, 0x24, 0xce, 0x73, 0x8d, 0x83, 0xd5, + 0x38, 0x96, 0x16, 0x41, 0xed, 0x07, 0x48, 0xea, 0x07, 0x50, 0xf2, 0x3d, 0x24, 0x84, 0xcf, 0xfb, + 0x52, 0xfd, 0x14, 0x0b, 0x5f, 0x69, 0x36, 0xb9, 0xdd, 0x3a, 0xc5, 0x02, 0x37, 0x90, 0x07, 0xb2, + 0x9f, 0x80, 0xa4, 0x1f, 0x89, 0x5e, 0xeb, 0xb2, 0x13, 0x93, 0xb4, 0x45, 0x5e, 0x34, 0x89, 0x89, + 0x7c, 0xd7, 0x0b, 0x27, 0x11, 0x19, 0xcd, 0xf8, 0x00, 0x92, 0x8e, 0x80, 0xe4, 0xf8, 0x43, 0xd3, + 0x39, 0x83, 0xd7, 0x0f, 0x89, 0x83, 0xbc, 0x73, 0xdd, 0x6d, 0x30, 0xb6, 0xb4, 0x97, 0xa3, 0x57, + 0xfb, 0x73, 0xf4, 0xaf, 0x0a, 0xc4, 0x5d, 0x01, 0x78, 0x95, 0xaf, 0xff, 0x65, 0x05, 0x4a, 0xc8, + 0x77, 0x6d, 0x62, 0x04, 0x2c, 0x85, 0x8e, 0x91, 0x61, 0x60, 0x4a, 0x75, 0x0b, 0x9f, 0x62, 0xab, + 0x38, 0x51, 0x52, 0x96, 0xf2, 0x6f, 0xbf, 0xbb, 0x7c, 0x75, 0x20, 0x5e, 0xae, 0x70, 0x0c, 0xc1, + 0x85, 0x1b, 0x40, 0x85, 0x03, 0x6c, 0x31, 0x7a, 0xed, 0x3e, 0xea, 0xd1, 0xaa, 0x9e, 0xc1, 0x6b, + 0x3c, 0x06, 0x74, 0x1b, 0x06, 0x5b, 0xa2, 0x72, 0x45, 0x13, 0xec, 0x15, 0x27, 0xfb, 0x97, 0x76, + 0x99, 0x61, 0x76, 0x8c, 0x6a, 0x13, 0xe3, 0xed, 0x10, 0x4e, 0xfd, 0x44, 0x81, 0xb7, 0x62, 0xd6, + 0xdd, 0xc7, 0x00, 0xa6, 0xfa, 0x1f, 0xc0, 0x52, 0x84, 0x7c, 0xcd, 0x30, 0x7e, 0x4d, 0x81, 0x27, + 0x6d, 0xea, 0xef, 0x63, 0x28, 0xd3, 0xfd, 0x0f, 0xe5, 0x8d, 0x16, 0x53, 0xb8, 0x66, 0x34, 0xdf, + 0x86, 0x59, 0x9b, 0x38, 0xc4, 0x46, 0x96, 0xce, 0x73, 0x1e, 0xc3, 0xb5, 0xa2, 0x00, 0x36, 0xd3, + 0x3f, 0xd3, 0x69, 0x89, 0xb2, 0x27, 0x41, 0x82, 0xc8, 0xf5, 0x4d, 0x78, 0x83, 0xd0, 0xd0, 0xb0, + 0x3b, 0x73, 0x1b, 0x0b, 0x35, 0x1d, 0xa3, 0xae, 0x63, 0x07, 0x1d, 0x5a, 0xd8, 0x2c, 0x16, 0x4b, + 0xca, 0x52, 0x4a, 0xfb, 0x02, 0xa1, 0xd2, 0x76, 0xd7, 0xdb, 0xd2, 0x97, 0x2d, 0xde, 0x7d, 0x43, + 0xf4, 0x66, 0x2e, 0xab, 0xe1, 0x52, 0x5f, 0x77, 0x1d, 0xeb, 0x5c, 0xb7, 0x5d, 0x13, 0xeb, 0x75, + 0x4c, 0x8e, 0xeb, 0x71, 0x27, 0x33, 0xcb, 0x97, 0xfd, 0x3c, 0xeb, 0xb6, 0xeb, 0x58, 0xe7, 0xdb, + 0xae, 0x89, 0x9f, 0xf2, 0x3e, 0x91, 0xf7, 0x38, 0x86, 0x27, 0x32, 0xc4, 0x99, 0xd8, 0xf0, 0x30, + 0xa2, 0x58, 0x6f, 0x78, 0xc4, 0xc0, 0xba, 0x4f, 0x6c, 0x4c, 0x7d, 0x64, 0x37, 0x22, 0x3c, 0x9d, + 0x62, 0xc3, 0x75, 0x4c, 0x5a, 0x9c, 0xe3, 0xb8, 0x6f, 0x0a, 0xc2, 0x75, 0x49, 0xb7, 0xc7, 0xc8, + 0xf6, 0x03, 0xaa, 0x90, 0x43, 0x4d, 0xd0, 0xa8, 0xaf, 0xc1, 0x58, 0xb0, 0x92, 0x74, 0x64, 0xda, + 0xc4, 0xa1, 0xc5, 0xf9, 0x52, 0x72, 0x29, 0xad, 0xe5, 0x83, 0xea, 0x0a, 0xaf, 0x55, 0xb7, 0x60, + 0x82, 0x39, 0x51, 0xd4, 0x34, 0x98, 0x0a, 0x75, 0xe6, 0x96, 0x59, 0x3c, 0xb9, 0xdf, 0x8f, 0xc3, + 0x2c, 0x10, 0xe7, 0x79, 0x45, 0x10, 0x6e, 0xa3, 0xb3, 0x35, 0xd4, 0x78, 0xaf, 0xf8, 0x1f, 0xdf, + 0x5b, 0x54, 0x2e, 0xfe, 0xfd, 0xcf, 0x1e, 0x87, 0xdc, 0x57, 0x44, 0x52, 0x5b, 0xfe, 0x44, 0x81, + 0x09, 0x21, 0xd7, 0x56, 0xa3, 0x98, 0x87, 0x74, 0xe0, 0x91, 0x4c, 0x9e, 0xd6, 0xa6, 0xb5, 0x94, + 0xa8, 0xa8, 0x9a, 0xea, 0xcf, 0x41, 0xbe, 0xcd, 0x36, 0x13, 0xfd, 0x9b, 0x49, 0xee, 0x28, 0xce, + 0xe8, 0xbd, 0xa1, 0x5f, 0xfd, 0xde, 0xe2, 0xbd, 0xf2, 0x6f, 0xa7, 0xa1, 0xd0, 0xae, 0x68, 0x75, + 0x1a, 0x46, 0x7c, 0x62, 0x9c, 0x60, 0x4f, 0x0e, 0x40, 0x96, 0xd4, 0x45, 0xc8, 0x88, 0xb4, 0x5d, + 0x67, 0xae, 0x50, 0xf0, 0xd6, 0x40, 0x54, 0xad, 0x22, 0x8a, 0xd5, 0x57, 0x20, 0x2b, 0x3b, 0xbc, + 0x68, 0xba, 0x41, 0x02, 0xab, 0x49, 0xa2, 0xaf, 0xb3, 0x2a, 0x75, 0x23, 0xc4, 0xf0, 0xcf, 0x1b, + 0x22, 0xff, 0xcc, 0xbf, 0xfd, 0x6a, 0xcc, 0xe1, 0xc9, 0x8d, 0x41, 0xe0, 0xee, 0x76, 0x79, 0x71, + 0xff, 0xbc, 0x81, 0x03, 0x4e, 0xec, 0xb7, 0xba, 0x0c, 0x13, 0x12, 0x86, 0x1a, 0xc8, 0xc2, 0xfa, + 0x11, 0x32, 0x7c, 0xd7, 0xe3, 0x59, 0x66, 0x4e, 0x1b, 0x17, 0x4d, 0x35, 0xd6, 0xb2, 0xc9, 0x1b, + 0xd8, 0xd0, 0xf9, 0x90, 0x74, 0x13, 0x3b, 0xae, 0x2d, 0xd2, 0x43, 0x0d, 0x78, 0xd5, 0x3a, 0xab, + 0x69, 0x95, 0xfb, 0x68, 0x9b, 0xdc, 0x0f, 0x60, 0xb2, 0x6b, 0xee, 0x37, 0x40, 0x46, 0xa6, 0x92, + 0xce, 0xa4, 0xef, 0x5b, 0x50, 0xbc, 0x32, 0xd9, 0x4b, 0x0f, 0xb2, 0xfe, 0xbb, 0x67, 0x79, 0x55, + 0xc8, 0xb7, 0x25, 0xe1, 0xd0, 0x3f, 0x68, 0xd6, 0x8e, 0x27, 0xc1, 0x55, 0xc8, 0xb7, 0x25, 0xd8, + 0x03, 0xe4, 0x70, 0x59, 0x3f, 0x0e, 0x75, 0x75, 0x5a, 0x98, 0xbd, 0x65, 0x5a, 0x58, 0x82, 0x0c, + 0xa1, 0x7b, 0xd8, 0x6b, 0x60, 0xbf, 0x89, 0x2c, 0x9e, 0x9a, 0xa5, 0xb4, 0x78, 0x95, 0xfa, 0x3e, + 0x8c, 0x50, 0x1f, 0xf9, 0x4d, 0xca, 0xd3, 0xa9, 0xfc, 0xdb, 0x4b, 0xbd, 0x02, 0xad, 0x58, 0x0c, + 0x35, 0xde, 0x5f, 0x93, 0x74, 0xaa, 0x06, 0x13, 0x36, 0x71, 0x42, 0x27, 0x65, 0x9c, 0xe8, 0x94, + 0x7c, 0x8c, 0x65, 0x3e, 0xd5, 0xd7, 0xd0, 0x0b, 0x36, 0x71, 0xa4, 0xb3, 0x32, 0x4e, 0x6a, 0xe4, + 0x63, 0x2e, 0x11, 0x86, 0xf9, 0xa2, 0x89, 0x1c, 0x9f, 0xf8, 0xe7, 0x31, 0xd8, 0xc2, 0x00, 0x12, + 0xb1, 0x89, 0xf3, 0x75, 0x89, 0x10, 0x22, 0x6f, 0x42, 0x96, 0x21, 0x3b, 0x2e, 0x73, 0x49, 0xc8, + 0x1a, 0x24, 0x87, 0xca, 0xd8, 0xc4, 0xd9, 0x91, 0x74, 0xea, 0x24, 0x0c, 0x73, 0xa7, 0xc9, 0x33, + 0xa2, 0xb4, 0x26, 0x0a, 0xea, 0x1b, 0x30, 0xce, 0x7f, 0xe8, 0x0d, 0xec, 0xd9, 0x84, 0x52, 0x16, + 0xf2, 0x78, 0x06, 0x93, 0xd3, 0x0a, 0xbc, 0x61, 0x2f, 0xaa, 0x57, 0x1f, 0x41, 0x3e, 0x58, 0x80, + 0x06, 0x0b, 0x56, 0x94, 0xa7, 0x18, 0x39, 0x2d, 0x27, 0xd7, 0xa0, 0xa8, 0x94, 0x5e, 0xe9, 0xc7, + 0x29, 0x98, 0x58, 0xed, 0x4c, 0xaa, 0xae, 0x74, 0x4c, 0x0f, 0x21, 0x17, 0x78, 0x83, 0x73, 0xfb, + 0xd0, 0xb5, 0xa4, 0x6b, 0x92, 0xce, 0xa8, 0xc6, 0xeb, 0x58, 0x08, 0x90, 0x9d, 0x1a, 0x9e, 0x7b, + 0x4a, 0x4c, 0xec, 0x49, 0xff, 0x94, 0x17, 0xd5, 0x7b, 0xb2, 0xf6, 0x7f, 0xcb, 0x45, 0x3d, 0x81, + 0x49, 0x7c, 0xd6, 0x20, 0x22, 0x1d, 0x8e, 0x02, 0x20, 0xf7, 0x55, 0x49, 0x6d, 0x22, 0x6a, 0x0b, + 0xa3, 0x1c, 0x23, 0xa1, 0xd8, 0xf7, 0x2d, 0x99, 0xde, 0x87, 0x24, 0xa3, 0x82, 0x24, 0x6a, 0x8b, + 0x48, 0x42, 0x55, 0xa6, 0xe2, 0xaa, 0x6c, 0x73, 0x8f, 0xe9, 0xde, 0xee, 0x11, 0xda, 0xdc, 0x63, + 0xa7, 0xa3, 0xc9, 0xdc, 0x9d, 0xa3, 0xc9, 0xde, 0xbd, 0xa3, 0xc9, 0xdd, 0xd2, 0xd1, 0xfc, 0xb4, + 0xb9, 0x91, 0x1d, 0x28, 0xc4, 0xcc, 0x8c, 0x0f, 0x3a, 0xe6, 0x4a, 0x94, 0xeb, 0x30, 0xc7, 0x22, + 0x62, 0x3e, 0xe2, 0x0e, 0xb7, 0xa4, 0xde, 0xd0, 0x2d, 0x7d, 0x7e, 0x0e, 0xe8, 0xdf, 0x12, 0x30, + 0xb3, 0xc1, 0x16, 0xdc, 0xf9, 0x66, 0xd3, 0x6f, 0x7a, 0x38, 0xdc, 0xd5, 0x1d, 0xb9, 0xbd, 0x33, + 0xb4, 0xab, 0x16, 0x71, 0xe2, 0xea, 0x45, 0xfc, 0x45, 0x98, 0xf4, 0x5f, 0xa2, 0x06, 0xdb, 0xb0, + 0x7b, 0xf1, 0x45, 0x9c, 0xe4, 0x24, 0x2a, 0x6b, 0xab, 0xb1, 0xa6, 0x88, 0xe2, 0x25, 0x7c, 0x21, + 0xce, 0x24, 0x22, 0x16, 0xf6, 0x64, 0x34, 0xed, 0xa6, 0xc5, 0xf3, 0xb9, 0x41, 0x8e, 0xf7, 0xca, + 0xb1, 0xb1, 0x05, 0x2c, 0xb9, 0xba, 0xd6, 0x42, 0xb8, 0xae, 0x86, 0x30, 0xc0, 0xc1, 0x5e, 0xbb, + 0x21, 0x94, 0xff, 0x36, 0x01, 0x13, 0x61, 0x74, 0xee, 0x57, 0xc4, 0xdf, 0x80, 0x99, 0xab, 0x4e, + 0x7d, 0x06, 0xc8, 0x86, 0x27, 0xeb, 0xdd, 0x8e, 0x7b, 0x0e, 0x60, 0xb2, 0xeb, 0x31, 0xcf, 0x00, + 0x27, 0xb1, 0x6a, 0xbd, 0xf3, 0x7c, 0xe7, 0x67, 0x61, 0xda, 0xc1, 0x67, 0xd1, 0x61, 0x5b, 0xa4, + 0xe4, 0x21, 0xae, 0xe4, 0x49, 0xd6, 0x2a, 0x87, 0x12, 0xa9, 0x39, 0x76, 0xd6, 0x16, 0x9e, 0xce, + 0x0d, 0xb7, 0x9c, 0xb5, 0x05, 0xc7, 0x72, 0xe5, 0xcf, 0x14, 0x98, 0x6e, 0x13, 0xa4, 0x84, 0x53, + 0x35, 0x50, 0x23, 0x83, 0x08, 0x46, 0x20, 0x84, 0xda, 0xdf, 0x84, 0xc6, 0x23, 0xf2, 0x00, 0x73, + 0x07, 0x0a, 0x31, 0x4c, 0x61, 0x07, 0x03, 0xc8, 0x7e, 0x2c, 0x22, 0x16, 0x0e, 0xe1, 0x11, 0xe4, + 0x2d, 0x44, 0x3b, 0x8d, 0x3f, 0xc7, 0x6a, 0x43, 0x81, 0x94, 0x7f, 0x43, 0x81, 0x85, 0xf6, 0xcd, + 0x4a, 0x2d, 0x34, 0xa9, 0xeb, 0x2d, 0xa7, 0x9b, 0xf9, 0x26, 0x6e, 0x61, 0xbe, 0x5f, 0x85, 0xc9, + 0x9d, 0x6e, 0x8a, 0x7b, 0x04, 0x79, 0xae, 0xee, 0x68, 0x3a, 0x8a, 0x98, 0x0e, 0xab, 0x8d, 0xa6, + 0xf3, 0x9f, 0x0a, 0xe4, 0xb7, 0x89, 0xc9, 0xb1, 0x2a, 0x8e, 0xb9, 0xbf, 0xbb, 0xaa, 0xbe, 0x0f, + 0x69, 0x9b, 0x98, 0x72, 0x68, 0x4a, 0xff, 0x2e, 0x36, 0x65, 0x4b, 0x1c, 0x16, 0x40, 0x0f, 0x99, + 0xd9, 0x1e, 0x36, 0xcf, 0x3b, 0x66, 0x78, 0x2d, 0x4c, 0x96, 0x91, 0xae, 0x36, 0xcf, 0x05, 0xd4, + 0x87, 0x30, 0xc6, 0xa1, 0x28, 0xb6, 0x2c, 0x89, 0x95, 0xec, 0x1f, 0x2b, 0xc7, 0x68, 0x6b, 0xd8, + 0xb2, 0x84, 0xac, 0xfe, 0x7c, 0x04, 0xa0, 0x16, 0xde, 0xbe, 0x5c, 0x99, 0xc9, 0x3d, 0x00, 0x60, + 0x7b, 0x4b, 0x99, 0x87, 0x88, 0x34, 0x2e, 0xcd, 0x6a, 0x44, 0x1a, 0xd2, 0x96, 0xa7, 0x24, 0x3b, + 0xf2, 0x94, 0xce, 0x54, 0x64, 0xe8, 0xee, 0x52, 0x91, 0xe1, 0xbb, 0x4f, 0x45, 0x46, 0x6e, 0x99, + 0x8a, 0xf4, 0xdc, 0xb6, 0x46, 0x79, 0x4a, 0xea, 0x6e, 0xf3, 0x94, 0xf4, 0xe7, 0x93, 0xa7, 0xc0, + 0x1d, 0x6f, 0x77, 0x32, 0xb7, 0xdd, 0xee, 0x64, 0xaf, 0xdd, 0xee, 0xe4, 0xae, 0xc8, 0x36, 0x1e, + 0x42, 0x4e, 0xda, 0xb1, 0x4c, 0x36, 0xc4, 0xf9, 0x7d, 0x56, 0x98, 0xb2, 0xa8, 0xeb, 0x92, 0x92, + 0x8c, 0x75, 0x49, 0x49, 0xca, 0x7f, 0xa8, 0xc0, 0xe8, 0x3a, 0x6e, 0xb8, 0x94, 0xf8, 0xea, 0x1e, + 0x8c, 0xa3, 0x53, 0x44, 0x2c, 0x74, 0xc8, 0x4f, 0x61, 0x2c, 0xb6, 0xe7, 0x1f, 0xc4, 0x99, 0x17, + 0x42, 0xea, 0x55, 0x41, 0xac, 0x3e, 0x85, 0x9c, 0xef, 0xfa, 0xc8, 0x0a, 0xd1, 0x12, 0x83, 0x58, + 0x39, 0xa3, 0x94, 0x48, 0xe5, 0x37, 0x61, 0xb2, 0xd6, 0x3c, 0x44, 0x06, 0xbf, 0xb0, 0xd8, 0xf7, + 0x90, 0x89, 0x77, 0x5c, 0xc6, 0x61, 0x12, 0x86, 0x1d, 0x37, 0x18, 0x67, 0x4e, 0x13, 0x05, 0x16, + 0xb2, 0xd2, 0xfc, 0x50, 0x94, 0xfb, 0xed, 0x87, 0x90, 0xa3, 0x21, 0x6d, 0xe4, 0xbb, 0xb3, 0x51, + 0x65, 0xd5, 0x64, 0x9d, 0xf8, 0x5a, 0xc4, 0x06, 0x69, 0x10, 0xec, 0xf8, 0xc1, 0x36, 0xef, 0x08, + 0x63, 0x2d, 0xa8, 0x53, 0xbf, 0x0c, 0xc3, 0xed, 0xbe, 0xea, 0xda, 0x79, 0x08, 0x0a, 0xf5, 0x6b, + 0x90, 0x0a, 0xac, 0x72, 0x10, 0xb7, 0x11, 0x12, 0xa9, 0x05, 0x48, 0x1a, 0xc4, 0x14, 0x7e, 0x42, + 0x63, 0x3f, 0xcb, 0x9f, 0x24, 0x20, 0xcd, 0xdc, 0x1e, 0x9f, 0xe9, 0x75, 0x87, 0x7b, 0x20, 0x8e, + 0x9f, 0x89, 0x73, 0xe4, 0xca, 0x4b, 0xe6, 0x47, 0xbd, 0x56, 0x6c, 0x28, 0x3d, 0x79, 0x0f, 0x91, + 0x76, 0x43, 0x71, 0xae, 0x07, 0x58, 0x7c, 0x07, 0x9b, 0xe4, 0xab, 0xff, 0x7a, 0x2c, 0xbe, 0x85, + 0x15, 0x28, 0x7c, 0x07, 0xcb, 0x4c, 0xc3, 0x23, 0xc7, 0xc7, 0xd8, 0x93, 0xee, 0x7f, 0x68, 0x80, + 0x50, 0x22, 0x29, 0x85, 0xf7, 0xff, 0x41, 0x02, 0xf2, 0x4c, 0x0c, 0x5b, 0xc4, 0x26, 0x52, 0x16, + 0xad, 0xd3, 0x55, 0xee, 0x70, 0xba, 0x89, 0x1b, 0x4e, 0xf7, 0x6b, 0x90, 0x3a, 0x22, 0x16, 0x5f, + 0x1c, 0x83, 0x18, 0x4f, 0x48, 0x74, 0x77, 0xf2, 0x62, 0x61, 0x50, 0x4c, 0xa8, 0x8e, 0x68, 0x9d, + 0xdb, 0x53, 0x56, 0x8e, 0xf4, 0x29, 0xa2, 0xf5, 0xf2, 0x3f, 0x24, 0x60, 0x2c, 0x0a, 0xa6, 0x77, + 0x2f, 0xcf, 0x4d, 0xc8, 0x4a, 0x6f, 0xa0, 0xf3, 0x93, 0xfc, 0x01, 0x5c, 0x42, 0x46, 0x12, 0x3e, + 0x75, 0x2d, 0xb3, 0x6d, 0x1a, 0xc9, 0xb6, 0x69, 0xb4, 0xa9, 0x6d, 0xe8, 0xae, 0xac, 0x74, 0xf8, + 0xa6, 0x56, 0xfa, 0x77, 0x09, 0x18, 0x6b, 0xbb, 0x5d, 0xfd, 0xbf, 0xb6, 0x64, 0xbf, 0x02, 0x23, + 0xe2, 0x18, 0x79, 0x10, 0x07, 0x26, 0x49, 0xee, 0x50, 0x92, 0xff, 0x95, 0x84, 0xf9, 0x28, 0x16, + 0xf0, 0x91, 0x1e, 0xba, 0xee, 0xc9, 0x36, 0xf6, 0x91, 0x89, 0x7c, 0xa4, 0x7e, 0x19, 0x66, 0x4f, + 0x91, 0xc3, 0xd6, 0x8d, 0x6e, 0x31, 0x97, 0x20, 0x2f, 0xde, 0xc4, 0x55, 0xb7, 0x08, 0x13, 0xd3, + 0xb2, 0x43, 0xe4, 0x32, 0xc4, 0x2d, 0xf7, 0xfb, 0xf0, 0xc0, 0xc3, 0x66, 0xd3, 0xc0, 0xe2, 0xea, + 0xa9, 0x93, 0x3c, 0xc1, 0xc9, 0x67, 0x45, 0xa7, 0x5d, 0xc7, 0x3a, 0x6f, 0x47, 0xa8, 0xc3, 0x02, + 0x3a, 0x3e, 0xf6, 0xf0, 0x31, 0xdb, 0x36, 0xc6, 0xb1, 0x42, 0xe7, 0x3f, 0xc0, 0xea, 0x9f, 0x0f, + 0xa1, 0xb4, 0x90, 0x61, 0x90, 0x98, 0xa8, 0x08, 0xe6, 0x22, 0x4e, 0xc1, 0x84, 0x6f, 0x12, 0x62, + 0x8a, 0x21, 0xcc, 0x47, 0x02, 0x25, 0x64, 0xb1, 0x01, 0x8b, 0x01, 0xb0, 0xe1, 0x3a, 0x26, 0x11, + 0x29, 0x4c, 0x8b, 0x40, 0xc4, 0x89, 0xe3, 0x7d, 0xd9, 0x6d, 0x2d, 0xea, 0x15, 0x93, 0xc9, 0x16, + 0x3c, 0x8c, 0x4b, 0xe2, 0x2a, 0xa8, 0x11, 0x0e, 0xb5, 0x18, 0xc9, 0xb6, 0x2b, 0x5a, 0xf9, 0xaf, + 0x15, 0x18, 0x6b, 0x53, 0x7f, 0x14, 0x97, 0x95, 0x5b, 0xc5, 0xe5, 0xc4, 0x4d, 0xe2, 0x72, 0x19, + 0xb2, 0x84, 0x46, 0xfa, 0xe1, 0xfa, 0x4d, 0x69, 0x2d, 0x75, 0x41, 0xec, 0x1e, 0x8a, 0x62, 0xf7, + 0x4b, 0x98, 0x68, 0x9b, 0xc4, 0x3a, 0xb3, 0xdd, 0x0a, 0x0c, 0x73, 0x91, 0x48, 0x1f, 0xfb, 0x46, + 0xaf, 0x35, 0xda, 0x46, 0xaf, 0x09, 0xca, 0x36, 0xbf, 0x98, 0x68, 0x77, 0xef, 0xbf, 0x99, 0x84, + 0xc9, 0xc8, 0x0f, 0xfd, 0x44, 0xc7, 0xcc, 0xc8, 0xdf, 0x24, 0x07, 0xf7, 0x37, 0xf1, 0x80, 0x3b, + 0x74, 0x27, 0x01, 0x77, 0xf8, 0x6e, 0x02, 0xee, 0x48, 0xbb, 0x46, 0x7e, 0x27, 0x09, 0x53, 0xed, + 0x27, 0x0f, 0xff, 0x2f, 0x55, 0xb2, 0x0e, 0x19, 0x79, 0x0d, 0xc9, 0x03, 0xff, 0x00, 0x5a, 0x01, + 0x41, 0xc7, 0xe3, 0xfe, 0xff, 0x98, 0x5e, 0xfe, 0x26, 0x01, 0xa9, 0x3d, 0xb6, 0x31, 0x22, 0xae, + 0xa3, 0x4e, 0xc3, 0x08, 0xa1, 0x5b, 0xae, 0x3c, 0xdd, 0x4a, 0x69, 0xb2, 0x74, 0x7b, 0xf7, 0xb1, + 0x0e, 0x19, 0xec, 0xf8, 0xde, 0xb9, 0x3e, 0xf0, 0xc6, 0x02, 0x38, 0x9d, 0x98, 0xca, 0xad, 0x42, + 0xf3, 0xb7, 0xa0, 0xd8, 0x79, 0x8a, 0xa7, 0x73, 0xf4, 0x41, 0x8e, 0x25, 0xa6, 0x3b, 0xce, 0xf2, + 0x36, 0x18, 0x44, 0xb9, 0x0a, 0x93, 0x31, 0xa3, 0xae, 0x3a, 0x26, 0x31, 0x90, 0xef, 0x5e, 0x93, + 0xfd, 0x4c, 0xc2, 0x30, 0xa1, 0xab, 0x4d, 0x21, 0xd4, 0x94, 0x26, 0x0a, 0xe5, 0xbf, 0x4f, 0x40, + 0x8a, 0x6f, 0xfe, 0xb6, 0xdc, 0x56, 0xd1, 0x2b, 0x37, 0x11, 0x7d, 0x18, 0x35, 0x12, 0x03, 0x47, + 0x8d, 0x8e, 0x2d, 0xa5, 0xc8, 0x3f, 0x5b, 0xb7, 0x94, 0xef, 0x40, 0xf2, 0x08, 0x0f, 0xe4, 0x7d, + 0x58, 0xff, 0x6b, 0xf2, 0x73, 0xf5, 0x5d, 0x98, 0x6a, 0xd9, 0xa8, 0xea, 0xc8, 0x34, 0x3d, 0x4c, + 0xa9, 0x30, 0x60, 0xbe, 0xf0, 0x15, 0x6d, 0x22, 0xbe, 0x6d, 0xad, 0x88, 0x0e, 0x41, 0x14, 0x1a, + 0x8d, 0xa2, 0xd0, 0xef, 0x25, 0x20, 0x17, 0x98, 0xf8, 0x3a, 0xb6, 0x7c, 0xa4, 0xce, 0xc0, 0x28, + 0xa1, 0xba, 0xd5, 0x69, 0xe8, 0x1a, 0xa8, 0xf8, 0x0c, 0x1b, 0x4d, 0x7e, 0x2d, 0x70, 0x13, 0x93, + 0x1f, 0x0f, 0xc9, 0xc3, 0xfc, 0x62, 0x07, 0x0a, 0x11, 0xe6, 0xe0, 0x7e, 0x65, 0x2c, 0x24, 0x16, + 0x2f, 0x13, 0xd4, 0x2d, 0x88, 0xaa, 0x3a, 0x76, 0x49, 0xd7, 0xc2, 0xe5, 0x43, 0x5a, 0x91, 0x67, + 0xfe, 0x41, 0x12, 0xd4, 0xd8, 0xbb, 0xdd, 0xc0, 0xec, 0xba, 0x9e, 0x26, 0xb4, 0xab, 0x7e, 0x0f, + 0xf2, 0x0d, 0x29, 0x57, 0xdd, 0x64, 0x82, 0x95, 0x09, 0xfc, 0xeb, 0xbd, 0x3c, 0x6e, 0x8b, 0x26, + 0xb4, 0x5c, 0xa3, 0x45, 0x31, 0x5f, 0x81, 0x91, 0x06, 0x3a, 0x77, 0x9b, 0xfe, 0x40, 0x9e, 0x57, + 0x90, 0xfc, 0xe4, 0x5b, 0x22, 0x1b, 0x61, 0xc3, 0xb1, 0x06, 0x79, 0xf4, 0xc2, 0xfa, 0x97, 0x7f, + 0x11, 0xd4, 0x28, 0x0d, 0x0a, 0x9d, 0xf5, 0xfb, 0x90, 0x0a, 0x84, 0x27, 0xa3, 0xe6, 0xab, 0xfd, + 0xc8, 0x5d, 0x0b, 0xa9, 0x3a, 0x95, 0x9c, 0xe8, 0x54, 0x72, 0xf9, 0x25, 0x8c, 0x47, 0xcc, 0x83, + 0x43, 0xb4, 0xbe, 0xcc, 0xe3, 0xab, 0x30, 0x6a, 0x8a, 0xfe, 0xd2, 0x2e, 0x1e, 0xf6, 0x1a, 0x9f, + 0x84, 0xd6, 0x02, 0x9a, 0x72, 0x03, 0x72, 0xb2, 0xee, 0xa0, 0x61, 0x22, 0x9f, 0x9f, 0x82, 0x89, + 0x43, 0x6b, 0xe1, 0x46, 0x45, 0x41, 0xad, 0x42, 0x4a, 0x52, 0xd0, 0x62, 0xa2, 0x94, 0x5c, 0xca, + 0xbc, 0xfd, 0x56, 0x7f, 0xf9, 0x64, 0xc0, 0x30, 0x24, 0x2f, 0xff, 0x40, 0x81, 0xc2, 0x9e, 0x4b, + 0x1c, 0x9f, 0xc6, 0x9e, 0x93, 0x7d, 0x13, 0x66, 0xc4, 0x79, 0x78, 0x83, 0xb7, 0xc4, 0x9f, 0x8e, + 0x0d, 0xe0, 0x8f, 0xa7, 0x38, 0x46, 0x37, 0x70, 0xff, 0x0a, 0xf0, 0x01, 0x9c, 0xce, 0x94, 0xdf, + 0x0d, 0xbc, 0xfc, 0xe3, 0x04, 0x2c, 0xec, 0xc7, 0x5f, 0x0c, 0xaf, 0x21, 0xbb, 0x81, 0xc8, 0xb1, + 0xb3, 0xea, 0xba, 0x54, 0x5c, 0xf6, 0xbc, 0x03, 0x33, 0x87, 0xac, 0x80, 0x4d, 0xbd, 0xe5, 0x03, + 0x11, 0x93, 0x16, 0x15, 0xfe, 0xb8, 0x6f, 0x52, 0x36, 0x47, 0x67, 0x25, 0x55, 0x93, 0xaa, 0xcf, + 0x61, 0x26, 0xde, 0x3d, 0x1a, 0x75, 0xa0, 0x82, 0x37, 0x7b, 0x5b, 0x62, 0xeb, 0x40, 0x65, 0x1a, + 0x37, 0x15, 0x7d, 0x5a, 0x12, 0xb5, 0x51, 0xb5, 0x02, 0x0f, 0x82, 0x21, 0x76, 0xf9, 0xb8, 0xc4, + 0xa4, 0xc5, 0x24, 0x1f, 0xe8, 0x9c, 0xec, 0xd4, 0x9e, 0x63, 0xb2, 0xe1, 0x9e, 0xc2, 0x83, 0x4e, + 0xd2, 0xf8, 0xa0, 0x87, 0x6e, 0x3c, 0xe8, 0xf9, 0xf6, 0x4f, 0x54, 0x62, 0x43, 0x2f, 0xff, 0xa5, + 0x02, 0x6a, 0x20, 0x73, 0xa1, 0x81, 0x3d, 0x57, 0x3c, 0xa3, 0x69, 0xbf, 0xa9, 0x16, 0xb7, 0x5b, + 0x79, 0xda, 0x7a, 0x4b, 0xfd, 0x4b, 0x30, 0x29, 0x5e, 0x4f, 0x0a, 0x88, 0xe0, 0x79, 0xb8, 0x94, + 0x71, 0x8f, 0x57, 0xd5, 0x5f, 0x64, 0x63, 0xfb, 0x93, 0x7f, 0x59, 0x5c, 0x3a, 0x26, 0x7e, 0xbd, + 0x79, 0xb8, 0x6c, 0xb8, 0xf6, 0x8a, 0xfc, 0xce, 0x48, 0xfc, 0xf7, 0x16, 0x35, 0x4f, 0x56, 0x58, + 0x8e, 0x4c, 0x39, 0x01, 0xd5, 0x54, 0x1b, 0x9d, 0xb5, 0x0e, 0x95, 0x96, 0xff, 0x38, 0x01, 0xb3, + 0x5d, 0xed, 0x87, 0x9b, 0xce, 0x7b, 0x30, 0x1b, 0x0e, 0x2c, 0x78, 0xa7, 0x1e, 0x3e, 0x30, 0x15, + 0xf3, 0x99, 0x09, 0x3a, 0x04, 0x4f, 0xd4, 0x83, 0xb7, 0xa4, 0xaf, 0x40, 0x36, 0x76, 0x09, 0x25, + 0x26, 0x94, 0xd6, 0x32, 0xd1, 0x2d, 0x14, 0x55, 0x9b, 0x30, 0xdb, 0xfa, 0x2a, 0x5e, 0xe7, 0x0a, + 0x16, 0x9b, 0x84, 0x24, 0x77, 0x27, 0xef, 0xf5, 0xd2, 0x57, 0x6f, 0xc3, 0xd7, 0xa6, 0x5b, 0x9e, + 0xd2, 0x47, 0x0b, 0xe2, 0x4b, 0x30, 0x63, 0x12, 0xfa, 0xa2, 0x89, 0x2c, 0x72, 0x44, 0xb0, 0x19, + 0xb7, 0xb3, 0x21, 0x3e, 0xc8, 0xa9, 0x78, 0x73, 0x68, 0x62, 0xe5, 0xbf, 0x4a, 0xc0, 0xc4, 0x26, + 0xc6, 0xeb, 0x84, 0x8a, 0xb3, 0x7b, 0x22, 0x37, 0x24, 0x35, 0x98, 0x10, 0xde, 0xc3, 0x94, 0x2d, + 0xe2, 0xd2, 0x6a, 0x90, 0xcb, 0x63, 0x4e, 0x1f, 0x00, 0xf3, 0x2b, 0xab, 0x1a, 0x4c, 0xf8, 0x5d, + 0x40, 0x07, 0x49, 0x53, 0xfc, 0x0e, 0xd0, 0x55, 0xc8, 0xc9, 0x0f, 0x1e, 0x90, 0xcd, 0x4f, 0x2a, + 0x92, 0xfd, 0x3c, 0xd8, 0xcd, 0x0a, 0x9a, 0x0a, 0x27, 0x61, 0xe1, 0xfb, 0xd4, 0xb5, 0x9a, 0xf6, + 0x40, 0x41, 0x58, 0x92, 0x94, 0x7f, 0xbd, 0x55, 0x84, 0x35, 0xa3, 0x8e, 0xcd, 0xa6, 0xc5, 0x9f, + 0xc4, 0x1e, 0x36, 0x0d, 0xa6, 0x85, 0xe8, 0x70, 0x6b, 0x48, 0xcb, 0x88, 0x3a, 0x71, 0xf6, 0xf2, + 0x1a, 0x8c, 0xc9, 0x2e, 0xe1, 0x17, 0x13, 0xe2, 0xb9, 0x48, 0x5e, 0x54, 0x87, 0x9f, 0x48, 0xb4, + 0x1b, 0x5e, 0xb2, 0xd3, 0xf0, 0x76, 0x00, 0x7c, 0x22, 0x77, 0xa3, 0x81, 0x67, 0x58, 0xe9, 0x65, + 0x69, 0x5d, 0xd4, 0xae, 0xa5, 0x7d, 0xf9, 0x8b, 0xf6, 0xb2, 0xa8, 0xe1, 0x5e, 0x16, 0xb5, 0x0d, + 0x6a, 0x1b, 0xf2, 0xfe, 0xfe, 0x96, 0xaa, 0xc2, 0x90, 0x1f, 0x84, 0x9e, 0x21, 0x8d, 0xff, 0x66, + 0xc1, 0xd8, 0xf7, 0xad, 0x8e, 0xa7, 0x32, 0x59, 0xdf, 0xb7, 0xa2, 0xab, 0xf2, 0xdf, 0x57, 0x20, + 0xfb, 0x11, 0x17, 0xb4, 0x86, 0x0d, 0xd7, 0x33, 0xf9, 0x55, 0x1f, 0x37, 0x22, 0xa9, 0x31, 0x65, + 0x90, 0xab, 0x3e, 0x46, 0x28, 0xd0, 0x18, 0x8e, 0x1f, 0xc7, 0x19, 0xe4, 0xa4, 0xdb, 0x8f, 0x70, + 0xca, 0xbf, 0xa5, 0x40, 0xbe, 0x22, 0x22, 0xb3, 0x74, 0x40, 0x6a, 0x11, 0x46, 0x65, 0xac, 0x96, + 0x21, 0x3f, 0x28, 0xaa, 0x18, 0x46, 0x3f, 0x47, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x45, 0x81, 0x2c, + 0x4f, 0x89, 0x85, 0xcc, 0x68, 0xef, 0xdd, 0xdc, 0x33, 0x98, 0xb4, 0x90, 0x8f, 0xa9, 0xaf, 0x33, + 0xe7, 0xc2, 0x53, 0x46, 0x37, 0x1a, 0xe1, 0x6b, 0xd7, 0x79, 0x2b, 0xc9, 0x44, 0x53, 0x05, 0x48, + 0x9c, 0x6f, 0xf9, 0x4b, 0x90, 0x8b, 0x12, 0x97, 0xea, 0x3a, 0xbf, 0xf8, 0x6c, 0x49, 0xc0, 0x44, + 0xbc, 0xce, 0x6a, 0xb9, 0x78, 0x06, 0x46, 0xcb, 0x7f, 0xa4, 0x40, 0x26, 0x06, 0xa4, 0xde, 0x87, + 0x74, 0x7b, 0xd0, 0x89, 0x2a, 0x6e, 0xb3, 0x55, 0x8c, 0x6f, 0x53, 0x93, 0x37, 0xd8, 0xa6, 0x96, + 0x6d, 0x18, 0x16, 0x9f, 0xd8, 0x3c, 0x01, 0xa5, 0x31, 0x88, 0x31, 0x2a, 0x0d, 0x46, 0xf2, 0x62, + 0x90, 0x31, 0x2b, 0x2f, 0xca, 0xbf, 0xab, 0xc0, 0x62, 0x25, 0x38, 0x11, 0x8e, 0x44, 0xdb, 0xb2, + 0x42, 0xfa, 0xba, 0x51, 0xdd, 0x85, 0xbc, 0xb4, 0x08, 0x61, 0xff, 0x81, 0xba, 0xfb, 0x78, 0x29, + 0x20, 0x99, 0xe5, 0xec, 0x58, 0x89, 0x96, 0xbf, 0xa3, 0xc0, 0xfd, 0x70, 0x64, 0x95, 0x2e, 0xc3, + 0xba, 0x7a, 0x55, 0xdc, 0xf9, 0x58, 0x28, 0x64, 0xe3, 0xcd, 0xbd, 0xcd, 0x7f, 0x33, 0x74, 0xfe, + 0x22, 0xdb, 0xef, 0xc9, 0x35, 0x3e, 0x23, 0x99, 0x4a, 0x05, 0x71, 0xa0, 0xc2, 0xf2, 0x7e, 0xc7, + 0xb5, 0xc3, 0x4b, 0xfe, 0xee, 0x79, 0xff, 0x1c, 0xcb, 0xfb, 0xe5, 0xa5, 0x7f, 0x82, 0x7b, 0xc3, + 0xb0, 0x5c, 0xc6, 0xa0, 0x7e, 0xe0, 0x21, 0xc7, 0xaf, 0x34, 0xfd, 0xba, 0xeb, 0x91, 0x8f, 0x85, + 0xf3, 0x2f, 0xc2, 0xe8, 0x31, 0xab, 0x95, 0x5f, 0x3b, 0xa7, 0xb5, 0xa0, 0xa8, 0xbe, 0x03, 0x23, + 0x32, 0xe8, 0x25, 0xfa, 0x09, 0x7a, 0xb2, 0x73, 0xf9, 0xdb, 0x90, 0xa9, 0xf0, 0xf9, 0x71, 0x66, + 0x11, 0xbe, 0xd7, 0x8a, 0xef, 0xdd, 0x14, 0xff, 0xbb, 0x0a, 0xe4, 0x37, 0x8e, 0x8e, 0x70, 0x5f, + 0x3c, 0xaa, 0x30, 0xee, 0x60, 0x5f, 0x17, 0x45, 0xf9, 0xf1, 0x62, 0x7f, 0xec, 0xc6, 0x1c, 0xec, + 0x7f, 0x20, 0xc8, 0xf8, 0x67, 0x8a, 0xea, 0x2c, 0xa4, 0x08, 0xd5, 0x4f, 0x91, 0x25, 0x8f, 0x7c, + 0x52, 0xda, 0x28, 0xa1, 0x1f, 0xb1, 0xe2, 0x63, 0x1f, 0xee, 0xf7, 0xfa, 0x7c, 0x4e, 0x05, 0x18, + 0xd9, 0x71, 0x0f, 0x5d, 0xf3, 0xbc, 0x70, 0x4f, 0x2d, 0xc3, 0xc2, 0x2a, 0x3e, 0x26, 0xce, 0xaa, + 0xe5, 0x1a, 0x27, 0xd8, 0xab, 0xd9, 0xc8, 0xf3, 0xd7, 0x5c, 0xc7, 0xf7, 0x90, 0xe1, 0xd3, 0x5d, + 0xc7, 0x3a, 0x2f, 0x28, 0xea, 0x34, 0xa8, 0x5d, 0xea, 0x13, 0x6a, 0x16, 0x52, 0x1b, 0xa7, 0xd8, + 0x3b, 0x77, 0x1d, 0x5c, 0x48, 0x3e, 0xde, 0x0f, 0xec, 0x50, 0x3c, 0xae, 0x51, 0xc7, 0x20, 0x73, + 0xe0, 0xd0, 0x06, 0x36, 0x78, 0xcc, 0x2c, 0xdc, 0x63, 0x6c, 0x85, 0x26, 0x0a, 0x0a, 0xfb, 0xbd, + 0x87, 0x9a, 0x14, 0x9b, 0x85, 0x84, 0x9a, 0x07, 0x58, 0xc7, 0xb6, 0x6b, 0x11, 0x5a, 0xc7, 0x66, + 0x21, 0xa9, 0x66, 0x60, 0x94, 0x3f, 0x4a, 0xc5, 0x66, 0x61, 0xe8, 0xf1, 0x5f, 0x24, 0xe4, 0xfb, + 0x09, 0x7e, 0xe8, 0x5b, 0x82, 0xcc, 0xc1, 0x4e, 0x6d, 0x6f, 0x63, 0xad, 0xba, 0x59, 0xdd, 0x58, + 0x2f, 0xdc, 0x9b, 0x1b, 0xbb, 0xb8, 0x2c, 0xc5, 0xab, 0xd8, 0x7e, 0x7e, 0xf5, 0xe0, 0x59, 0x41, + 0x99, 0x1b, 0xbd, 0xb8, 0x2c, 0xb1, 0x9f, 0x2c, 0x1a, 0xd7, 0x36, 0xb6, 0xb6, 0x0a, 0x89, 0xb9, + 0xd4, 0xc5, 0x65, 0x89, 0xff, 0x66, 0x76, 0x59, 0xdb, 0xdf, 0xdd, 0xd3, 0x59, 0xd7, 0xe4, 0x5c, + 0xf6, 0xe2, 0xb2, 0x14, 0x96, 0x99, 0xfb, 0xe5, 0xbf, 0x39, 0xd1, 0xd0, 0x5c, 0xee, 0xe2, 0xb2, + 0x14, 0x55, 0x30, 0xca, 0xfd, 0xca, 0x87, 0x1b, 0x9c, 0x72, 0x58, 0x50, 0x06, 0x65, 0x46, 0xc9, + 0x7f, 0x73, 0xca, 0x11, 0x41, 0x19, 0x56, 0xa8, 0xd3, 0x30, 0xb2, 0x7a, 0xf0, 0x4c, 0xdf, 0xdb, + 0x2d, 0x8c, 0xce, 0xc1, 0xc5, 0x65, 0x49, 0x96, 0x98, 0xb5, 0xb0, 0x76, 0xd6, 0x90, 0x9a, 0xcb, + 0x5c, 0x5c, 0x96, 0x82, 0xa2, 0xba, 0x00, 0xc0, 0xfa, 0x54, 0xf6, 0x77, 0xb7, 0xab, 0x6b, 0x85, + 0xf4, 0x5c, 0xfe, 0xe2, 0xb2, 0x14, 0xab, 0x61, 0xd2, 0xe0, 0x5d, 0x65, 0x07, 0x10, 0xd2, 0x88, + 0x55, 0x3d, 0xfe, 0x53, 0x05, 0x72, 0x1b, 0xc1, 0x59, 0x12, 0x97, 0xe0, 0x7d, 0x28, 0xc6, 0xb4, + 0xd2, 0xd2, 0x26, 0x54, 0x24, 0x74, 0x58, 0x50, 0xd4, 0x1c, 0xa4, 0xf9, 0x9d, 0xcc, 0x26, 0xb1, + 0xac, 0x42, 0x42, 0x9d, 0x83, 0x69, 0x5e, 0xdc, 0x46, 0xbe, 0x51, 0xd7, 0xc4, 0x57, 0xad, 0x5c, + 0x31, 0x85, 0x24, 0x33, 0x90, 0xa8, 0x6d, 0x07, 0xbf, 0x14, 0xf5, 0x43, 0xea, 0x14, 0x8c, 0xcb, + 0x8f, 0xea, 0xe4, 0x97, 0xaa, 0xc4, 0x75, 0x0a, 0xc3, 0x0c, 0x4a, 0xbc, 0x3a, 0x6e, 0x7f, 0xdb, + 0x58, 0x18, 0x79, 0xfc, 0x9d, 0x40, 0xdf, 0xdb, 0x88, 0x9e, 0x30, 0x99, 0x1d, 0xec, 0x1c, 0xd4, + 0xb8, 0xaa, 0xb9, 0xcc, 0x44, 0x89, 0x69, 0xb9, 0xb2, 0x13, 0x6a, 0xb9, 0xb2, 0xf3, 0x8c, 0x49, + 0x51, 0xdb, 0xf8, 0xe0, 0x60, 0xab, 0xa2, 0x15, 0x12, 0x42, 0x8a, 0xb2, 0xc8, 0xa4, 0xb4, 0xb6, + 0xbb, 0xb3, 0x5e, 0xdd, 0xaf, 0xee, 0xee, 0x54, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, + 0xcc, 0xac, 0x57, 0xb5, 0x8d, 0x35, 0x56, 0x64, 0x8a, 0xd4, 0x77, 0x35, 0xfd, 0x69, 0xf5, 0x83, + 0xa7, 0x1b, 0x5a, 0x21, 0x35, 0x37, 0x7e, 0x71, 0x59, 0xca, 0xb5, 0x54, 0xb6, 0xf6, 0xe7, 0xe2, + 0xde, 0xd5, 0xf4, 0xad, 0xdd, 0x9f, 0xdf, 0xd0, 0x0a, 0x05, 0xd1, 0xbf, 0xa5, 0x52, 0x9d, 0x87, + 0xcc, 0xfe, 0xb3, 0xbd, 0x0d, 0x7d, 0xbb, 0xa2, 0x7d, 0xb8, 0xb1, 0x5f, 0x28, 0x89, 0xa9, 0x88, + 0x92, 0x3a, 0x0b, 0xc0, 0x1b, 0xb7, 0xaa, 0xdb, 0xd5, 0xfd, 0xc2, 0xfb, 0x73, 0xe9, 0x8b, 0xcb, + 0xd2, 0x30, 0x2f, 0xac, 0xd6, 0xbf, 0xff, 0xe9, 0x82, 0xf2, 0xc3, 0x4f, 0x17, 0x94, 0x7f, 0xfd, + 0x74, 0x41, 0xf9, 0xee, 0x67, 0x0b, 0xf7, 0x7e, 0xf8, 0xd9, 0xc2, 0xbd, 0x7f, 0xfc, 0x6c, 0xe1, + 0xde, 0x37, 0x76, 0x62, 0x69, 0x52, 0x35, 0x70, 0xe0, 0x5b, 0xe8, 0x90, 0xae, 0x84, 0xee, 0xfc, + 0x2d, 0xc3, 0xf5, 0x70, 0xbc, 0x58, 0x47, 0xc4, 0x59, 0xb1, 0x5d, 0x96, 0xae, 0xd3, 0xe8, 0x6f, + 0x64, 0xf0, 0x94, 0xea, 0x70, 0x84, 0x7f, 0x99, 0xf9, 0x33, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, + 0x6a, 0xde, 0xbc, 0xbe, 0x46, 0x43, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -4088,6 +4112,13 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -4271,6 +4302,13 @@ func (m *BinaryOptionsMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -4741,6 +4779,16 @@ func (m *SpotMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x78 + } + if m.BaseDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x70 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -7123,6 +7171,9 @@ func (m *DerivativeMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 2 + sovExchange(uint64(m.AdminPermissions)) } + if m.QuoteDecimals != 0 { + n += 2 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -7190,6 +7241,9 @@ func (m *BinaryOptionsMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 2 + sovExchange(uint64(m.AdminPermissions)) } + if m.QuoteDecimals != 0 { + n += 2 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -7347,6 +7401,12 @@ func (m *SpotMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 1 + sovExchange(uint64(m.AdminPermissions)) } + if m.BaseDecimals != 0 { + n += 1 + sovExchange(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -9739,6 +9799,25 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error { break } } + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -10335,6 +10414,25 @@ func (m *BinaryOptionsMarket) Unmarshal(dAtA []byte) error { break } } + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -11643,6 +11741,44 @@ func (m *SpotMarket) Unmarshal(dAtA []byte) error { break } } + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index c1fdf2c0..e2236d37 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -10,6 +10,7 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" + "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" ) @@ -562,6 +563,13 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { return errors.Wrap(ErrInvalidNotional, err.Error()) } + if msg.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if msg.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return nil } @@ -1827,16 +1835,16 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { return err } - hasDuplicateSpotMarketIDs := HasDuplicatesHexHash(msg.SpotMarketIdsToCancelAll) + hasDuplicateSpotMarketIDs := helpers.HasDuplicate(msg.SpotMarketIdsToCancelAll) if hasDuplicateSpotMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all spot market ids") } - hasDuplicateDerivativesMarketIDs := HasDuplicatesHexHash(msg.DerivativeMarketIdsToCancelAll) + hasDuplicateDerivativesMarketIDs := helpers.HasDuplicate(msg.DerivativeMarketIdsToCancelAll) if hasDuplicateDerivativesMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all derivative market ids") } - hasDuplicateBinaryOptionsMarketIDs := HasDuplicatesHexHash(msg.BinaryOptionsMarketIdsToCancelAll) + hasDuplicateBinaryOptionsMarketIDs := helpers.HasDuplicate(msg.BinaryOptionsMarketIdsToCancelAll) if hasDuplicateBinaryOptionsMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all binary options market ids") } diff --git a/chain/exchange/types/params.go b/chain/exchange/types/params.go index fbec3e19..e44b5cbb 100644 --- a/chain/exchange/types/params.go +++ b/chain/exchange/types/params.go @@ -35,6 +35,8 @@ const ( MaxOracleScaleFactor uint32 = 18 + MaxDecimals uint32 = 18 + MaxTickerLength int = 40 // MaxHistoricalTradeRecordAge is the maximum age of trade records to track. @@ -47,6 +49,8 @@ const ( MaxGranterDelegations = 25 ) +var DefaultInjAuctionMaxCap = math.NewIntWithDecimal(10_000, 18) + var MaxBinaryOptionsOrderPrice = math.LegacyOneDec() // would be $0.000001 for USDT @@ -190,31 +194,34 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { // DefaultParams returns a default set of parameters. func DefaultParams() Params { return Params{ - SpotMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), - DerivativeMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), - DefaultSpotMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultSpotTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultDerivativeMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultDerivativeTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultInitialMarginRatio: math.LegacyNewDecWithPrec(5, 2), // default 5% initial margin ratio - DefaultMaintenanceMarginRatio: math.LegacyNewDecWithPrec(2, 2), // default 2% maintenance margin ratio - DefaultFundingInterval: DefaultFundingIntervalSeconds, - FundingMultiple: DefaultFundingMultipleSeconds, - RelayerFeeShareRate: math.LegacyNewDecWithPrec(40, 2), // default 40% relayer fee share - DefaultHourlyFundingRateCap: math.LegacyNewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate - DefaultHourlyInterestRate: math.LegacyNewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 - MaxDerivativeOrderSideCount: MaxDerivativeOrderSideCount, - InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ - TradingRewardsVestingDuration: 604800, // 7 days - LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward - BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), - AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, - SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - DerivativeAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - BinaryOptionsAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - MinimalProtocolFeeRate: math.LegacyMustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate - IsInstantDerivativeMarketLaunchEnabled: false, - PostOnlyModeHeightThreshold: 0, + SpotMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), + DerivativeMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), + DefaultSpotMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultSpotTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultDerivativeMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultDerivativeTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultInitialMarginRatio: math.LegacyNewDecWithPrec(5, 2), // default 5% initial margin ratio + DefaultMaintenanceMarginRatio: math.LegacyNewDecWithPrec(2, 2), // default 2% maintenance margin ratio + DefaultFundingInterval: DefaultFundingIntervalSeconds, + FundingMultiple: DefaultFundingMultipleSeconds, + RelayerFeeShareRate: math.LegacyNewDecWithPrec(40, 2), // default 40% relayer fee share + DefaultHourlyFundingRateCap: math.LegacyNewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate + DefaultHourlyInterestRate: math.LegacyNewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 + MaxDerivativeOrderSideCount: MaxDerivativeOrderSideCount, + InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ + TradingRewardsVestingDuration: 604800, // 7 days + LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward + BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), + AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, + SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + DerivativeAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + BinaryOptionsAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + MinimalProtocolFeeRate: math.LegacyMustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate + IsInstantDerivativeMarketLaunchEnabled: false, + PostOnlyModeHeightThreshold: 0, + MarginDecreasePriceTimestampThresholdSeconds: 60, + ExchangeAdmins: []string{}, + InjAuctionMaxCap: DefaultInjAuctionMaxCap, } } diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index 333507e2..9cdde119 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -12,6 +12,7 @@ import ( gov "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/ethereum/go-ethereum/common" + "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" ) @@ -213,7 +214,7 @@ func (p *BatchExchangeModificationProposal) ValidateBasic() error { } // NewSpotMarketParamUpdateProposal returns new instance of SpotMarketParamUpdateProposal -func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, status MarketStatus, ticker string) *SpotMarketParamUpdateProposal { +func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, status MarketStatus, ticker string, baseDecimals, quoteDecimals uint32) *SpotMarketParamUpdateProposal { return &SpotMarketParamUpdateProposal{ title, description, @@ -227,6 +228,8 @@ func NewSpotMarketParamUpdateProposal(title, description string, marketID common ticker, minNotional, nil, + baseDecimals, + quoteDecimals, } } @@ -326,6 +329,13 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidMarketStatus, p.Status.String()) } + if p.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if p.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return govtypes.ValidateAbstract(p) } @@ -341,6 +351,8 @@ func NewSpotMarketLaunchProposal( minNotional math.LegacyDec, makerFeeRate *math.LegacyDec, takerFeeRate *math.LegacyDec, + baseDecimals uint32, + quoteDecimals uint32, ) *SpotMarketLaunchProposal { return &SpotMarketLaunchProposal{ Title: title, @@ -353,6 +365,8 @@ func NewSpotMarketLaunchProposal( MinNotional: minNotional, MakerFeeRate: makerFeeRate, TakerFeeRate: takerFeeRate, + BaseDecimals: baseDecimals, + QuoteDecimals: quoteDecimals, } } @@ -424,6 +438,13 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { } } + if p.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if p.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return govtypes.ValidateAbstract(p) } @@ -697,7 +718,7 @@ func (d *DenomDecimals) Validate() error { return errors.Wrap(sdkerrors.ErrInvalidCoins, d.Denom) } - if d.Decimals <= 0 || d.Decimals > uint64(MaxOracleScaleFactor) { + if d.Decimals > uint64(MaxDecimals) { return errors.Wrapf(ErrInvalidDenomDecimal, "invalid decimals passed: %d", d.Decimals) } return nil @@ -1089,7 +1110,7 @@ func (p *TradingRewardPendingPointsUpdateProposal) ValidateBasic() error { } } - hasDuplicateAccountAddresses := HasDuplicates(accountAddresses) + hasDuplicateAccountAddresses := helpers.HasDuplicate(accountAddresses) if hasDuplicateAccountAddresses { return errors.Wrap(ErrInvalidTradingRewardsPendingPointsUpdate, "account address cannot have duplicates") } @@ -1185,7 +1206,7 @@ func (t *TradingRewardCampaignBoostInfo) ValidateBasic() error { return errors.Wrap(ErrInvalidTradingRewardCampaign, "boosted derivative market ids is not matching derivative market multipliers") } - hasDuplicatesInMarkets := HasDuplicates(t.BoostedSpotMarketIds) || HasDuplicates(t.BoostedDerivativeMarketIds) + hasDuplicatesInMarkets := helpers.HasDuplicate(t.BoostedSpotMarketIds) || helpers.HasDuplicate(t.BoostedDerivativeMarketIds) if hasDuplicatesInMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate boosted market ids") } @@ -1241,7 +1262,7 @@ func (c *TradingRewardCampaignInfo) ValidateBasic() error { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign quote denoms cannot be nil") } - hasTradingRewardBoostInfoDefined := c != nil && c.TradingRewardBoostInfo != nil + hasTradingRewardBoostInfoDefined := c.TradingRewardBoostInfo != nil if hasTradingRewardBoostInfoDefined { if err := c.TradingRewardBoostInfo.ValidateBasic(); err != nil { return err @@ -1254,7 +1275,7 @@ func (c *TradingRewardCampaignInfo) ValidateBasic() error { } } - hasDuplicatesInDisqualifiedMarkets := c != nil && HasDuplicates(c.DisqualifiedMarketIds) + hasDuplicatesInDisqualifiedMarkets := helpers.HasDuplicate(c.DisqualifiedMarketIds) if hasDuplicatesInDisqualifiedMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate disqualified market ids") } @@ -1278,7 +1299,7 @@ func validateCampaignRewardPool(pool *CampaignRewardPool, campaignDurationSecond prevStartTimestamp = pool.StartTimestamp - hasDuplicatesInEpochRewards := HasDuplicatesCoin(pool.MaxCampaignRewards) + hasDuplicatesInEpochRewards := helpers.HasDuplicateCoins(pool.MaxCampaignRewards) if hasDuplicatesInEpochRewards { return 0, errors.Wrap(ErrInvalidTradingRewardCampaign, "reward pool campaign contains duplicate market coins") } @@ -1340,7 +1361,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule must have have bucket durations of at least 10 seconds") } - if HasDuplicates(p.Schedule.QuoteDenoms) { + if helpers.HasDuplicate(p.Schedule.QuoteDenoms) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate quote denoms") } @@ -1350,7 +1371,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { } } - if HasDuplicates(p.Schedule.DisqualifiedMarketIds) { + if helpers.HasDuplicate(p.Schedule.DisqualifiedMarketIds) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate disqualified market ids") } diff --git a/chain/exchange/types/proposal.pb.go b/chain/exchange/types/proposal.pb.go index 1a20dfa1..ad50518d 100644 --- a/chain/exchange/types/proposal.pb.go +++ b/chain/exchange/types/proposal.pb.go @@ -81,6 +81,10 @@ type SpotMarketParamUpdateProposal struct { // orders in the market MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` AdminInfo *AdminInfo `protobuf:"bytes,12,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,13,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,14,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarketParamUpdateProposal) Reset() { *m = SpotMarketParamUpdateProposal{} } @@ -227,6 +231,10 @@ type SpotMarketLaunchProposal struct { // min_notional defines the minimum notional for orders in the market MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` AdminInfo *AdminInfo `protobuf:"bytes,11,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,14,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,15,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarketLaunchProposal) Reset() { *m = SpotMarketLaunchProposal{} } @@ -1221,160 +1229,163 @@ func init() { } var fileDescriptor_32e9ec9b6b22477c = []byte{ - // 2444 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x8f, 0x1b, 0x49, - 0xfd, 0x9f, 0x9e, 0x99, 0x4c, 0xec, 0xb2, 0xe7, 0xd5, 0xe3, 0x9d, 0x9f, 0x77, 0x92, 0x78, 0x66, - 0x3a, 0xaf, 0xd9, 0xfc, 0x36, 0x36, 0x09, 0x8b, 0x22, 0x2c, 0x21, 0x98, 0xe7, 0xee, 0x88, 0x64, - 0xe2, 0xb4, 0x67, 0x76, 0x57, 0x11, 0xa8, 0x55, 0xee, 0xae, 0x99, 0x29, 0xe2, 0x7e, 0xa4, 0xab, - 0x3c, 0xc9, 0xac, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x0f, 0x71, 0x88, 0xb4, 0x27, 0xce, - 0x48, 0xf0, 0x0f, 0xc0, 0x01, 0x2d, 0x2b, 0x0e, 0x2b, 0x71, 0x00, 0x71, 0x58, 0xa1, 0x44, 0x08, - 0xfe, 0x02, 0xc4, 0x81, 0x03, 0xea, 0xaa, 0xea, 0x76, 0xdb, 0x6e, 0xb7, 0xdb, 0x1e, 0x9b, 0x3d, - 0x90, 0x4b, 0xe2, 0xfe, 0xd6, 0xb7, 0x3e, 0xf5, 0xad, 0xef, 0xab, 0xbe, 0xf5, 0x18, 0xf0, 0x06, - 0xb6, 0xbe, 0x85, 0x74, 0x8a, 0x4f, 0x50, 0x09, 0x3d, 0xd5, 0x8f, 0xa1, 0x75, 0x84, 0x4a, 0x27, - 0xb7, 0x6a, 0x88, 0xc2, 0x5b, 0x25, 0xc7, 0xb5, 0x1d, 0x9b, 0xc0, 0x7a, 0xd1, 0x71, 0x6d, 0x6a, - 0xcb, 0x4b, 0x01, 0x6b, 0xd1, 0x67, 0x2d, 0x0a, 0xd6, 0xa5, 0x82, 0x6e, 0x13, 0xd3, 0x26, 0xa5, - 0x1a, 0x24, 0xcd, 0xfe, 0xba, 0x8d, 0x2d, 0xde, 0x77, 0xa9, 0x28, 0xda, 0x0d, 0x4c, 0xa8, 0x8b, - 0x6b, 0x0d, 0x8a, 0x6d, 0x2b, 0xe0, 0x0b, 0x13, 0x05, 0xff, 0xff, 0x09, 0x7e, 0x93, 0x1c, 0x95, - 0x4e, 0x6e, 0x79, 0xff, 0x89, 0x86, 0xd7, 0x79, 0x83, 0xc6, 0xbe, 0x4a, 0xfc, 0x43, 0x34, 0xe5, - 0x8e, 0xec, 0x23, 0x9b, 0xd3, 0xbd, 0x5f, 0x82, 0x1a, 0x37, 0xc1, 0x60, 0x1a, 0x9c, 0xf5, 0x6a, - 0x93, 0xd5, 0x76, 0xa1, 0x5e, 0x6f, 0x32, 0xf2, 0x4f, 0xc1, 0x36, 0x0f, 0x4d, 0x6c, 0xd9, 0x25, - 0xf6, 0x2f, 0x27, 0x29, 0x7f, 0x9c, 0x02, 0x97, 0xaa, 0x8e, 0x4d, 0xef, 0x41, 0xf7, 0x11, 0xa2, - 0x15, 0xe8, 0x42, 0xf3, 0xc0, 0x31, 0x20, 0x45, 0x15, 0xa1, 0x42, 0x39, 0x07, 0xce, 0x51, 0x4c, - 0xeb, 0x28, 0x2f, 0xad, 0x48, 0x6b, 0x69, 0x95, 0x7f, 0xc8, 0x2b, 0x20, 0x63, 0x20, 0xa2, 0xbb, - 0xd8, 0xf1, 0xe6, 0x9e, 0x1f, 0x67, 0x6d, 0x61, 0x92, 0x7c, 0x01, 0xa4, 0x4d, 0x06, 0xaa, 0x61, - 0x23, 0x3f, 0xc1, 0xda, 0x53, 0x9c, 0xb0, 0x6b, 0xc8, 0xbb, 0x60, 0xc6, 0x84, 0x8f, 0x90, 0xab, - 0x1d, 0x22, 0xa4, 0xb9, 0x90, 0xa2, 0xfc, 0xa4, 0xc7, 0xb1, 0x71, 0xf9, 0xe3, 0xcf, 0x96, 0xa5, - 0xbf, 0x7c, 0xb6, 0x7c, 0x81, 0xeb, 0x87, 0x18, 0x8f, 0x8a, 0xd8, 0x2e, 0x99, 0x90, 0x1e, 0x17, - 0xef, 0xa2, 0x23, 0xa8, 0x9f, 0x6e, 0x21, 0x5d, 0xcd, 0xb2, 0xae, 0x3b, 0x08, 0xa9, 0x90, 0x22, - 0x0f, 0x8a, 0xb6, 0x42, 0x9d, 0xeb, 0x03, 0x8a, 0x86, 0xa1, 0xde, 0x07, 0x8b, 0x2e, 0xaa, 0xc3, - 0x53, 0x01, 0x46, 0x8e, 0xa1, 0x2b, 0x20, 0xa7, 0x92, 0x43, 0x2e, 0x08, 0x88, 0x1d, 0x84, 0xaa, - 0x1e, 0x00, 0x43, 0x56, 0xc1, 0x82, 0x89, 0x2d, 0xcd, 0x71, 0xb1, 0x8e, 0x34, 0x8a, 0xf5, 0x47, - 0x1a, 0xc1, 0x1f, 0xa0, 0xfc, 0xf9, 0xe4, 0xb0, 0x73, 0x26, 0xb6, 0x2a, 0x5e, 0xf7, 0x7d, 0xac, - 0x3f, 0xaa, 0xe2, 0x0f, 0x98, 0xb4, 0x1e, 0xe6, 0xe3, 0x06, 0xb4, 0x28, 0xa6, 0xa7, 0x21, 0xd8, - 0x54, 0x1f, 0xd2, 0x9a, 0xd8, 0x7a, 0x20, 0x10, 0x02, 0xe4, 0xaf, 0x81, 0x29, 0x42, 0x21, 0x6d, - 0x90, 0x7c, 0x7a, 0x45, 0x5a, 0x9b, 0xb9, 0xbd, 0x56, 0xec, 0x1e, 0x40, 0x45, 0xee, 0x39, 0x55, - 0xc6, 0xaf, 0x8a, 0x7e, 0xf2, 0x45, 0x30, 0xe5, 0x89, 0x83, 0xdc, 0x3c, 0x60, 0xb2, 0x4c, 0x7a, - 0xb2, 0xa8, 0x82, 0x26, 0xef, 0x80, 0xac, 0x27, 0xb9, 0x65, 0x7b, 0x8e, 0x02, 0xeb, 0xf9, 0x4c, - 0x72, 0x79, 0x33, 0x26, 0xb6, 0xf6, 0x44, 0x3f, 0x79, 0x0b, 0x00, 0x68, 0x78, 0x48, 0xd8, 0x3a, - 0xb4, 0xf3, 0xd9, 0x15, 0x69, 0x2d, 0x73, 0xfb, 0x6a, 0x9c, 0xac, 0xeb, 0x1e, 0xf7, 0xae, 0x75, - 0x68, 0xab, 0x69, 0xe8, 0xff, 0x2c, 0x3f, 0xf8, 0xfe, 0x47, 0xcb, 0x63, 0xff, 0xf8, 0x68, 0x79, - 0xec, 0x93, 0x5f, 0xdf, 0x5c, 0x12, 0x71, 0x79, 0x64, 0x9f, 0x04, 0x9d, 0x36, 0x6d, 0x8b, 0x22, - 0x8b, 0x3e, 0xfb, 0xfb, 0x2f, 0x6f, 0x5c, 0x0b, 0x02, 0x31, 0x36, 0x66, 0x94, 0x3f, 0x48, 0x60, - 0x71, 0x5b, 0xb0, 0x6e, 0x5b, 0xb0, 0x56, 0x3f, 0x7b, 0x38, 0xdd, 0x05, 0x59, 0x7f, 0xf0, 0xfd, - 0x53, 0x07, 0xb1, 0x88, 0xea, 0x61, 0x99, 0xed, 0x10, 0xbf, 0xda, 0xd2, 0xbb, 0xfc, 0xa6, 0x3f, - 0x67, 0x6f, 0x56, 0xcb, 0xc1, 0xac, 0xa2, 0x65, 0x56, 0x7e, 0x3a, 0x0d, 0x56, 0x37, 0x20, 0xd5, - 0x8f, 0xfd, 0xf6, 0x7b, 0xb6, 0x81, 0x0f, 0xb1, 0x0e, 0x3d, 0xc9, 0xce, 0x3c, 0xb3, 0x0f, 0x25, - 0xa0, 0x10, 0xc7, 0xa6, 0x9a, 0x48, 0x17, 0x8e, 0xa7, 0x50, 0xad, 0xc1, 0x34, 0xaa, 0xf9, 0x99, - 0x9c, 0xe4, 0x27, 0x56, 0x26, 0xd6, 0x32, 0xb7, 0xbf, 0x1c, 0x37, 0xe1, 0x58, 0xa3, 0xa8, 0x05, - 0x12, 0xd7, 0x4c, 0xe4, 0x9f, 0x49, 0x60, 0xcd, 0x40, 0x2e, 0x3e, 0x81, 0x1e, 0x7a, 0x0f, 0x69, - 0x26, 0x99, 0x34, 0x5f, 0x8d, 0x93, 0x66, 0x2b, 0xc0, 0xea, 0x2e, 0xd3, 0x15, 0xa3, 0x37, 0x13, - 0x91, 0x1b, 0xe0, 0x62, 0x58, 0x41, 0x75, 0xd8, 0xb0, 0xf4, 0xe3, 0x90, 0x30, 0xe7, 0x98, 0x30, - 0x6f, 0x25, 0x53, 0xcd, 0x5d, 0xd6, 0x3b, 0x90, 0xe0, 0x75, 0xd2, 0xa5, 0x85, 0xc8, 0xdf, 0x95, - 0xc0, 0xaa, 0x83, 0x5c, 0x07, 0xd1, 0x06, 0xac, 0x77, 0x1d, 0x7c, 0xaa, 0xb7, 0x5d, 0x2a, 0x3e, - 0x48, 0xa4, 0x04, 0x05, 0x27, 0xae, 0x99, 0xc8, 0x3f, 0x94, 0xc0, 0x35, 0xf4, 0xd4, 0xc1, 0xee, - 0xa9, 0x76, 0xd8, 0xa0, 0x0d, 0x17, 0x91, 0xae, 0xb2, 0x9c, 0x67, 0xb2, 0x7c, 0x25, 0x3e, 0x28, - 0x3c, 0xa4, 0x1d, 0x0e, 0x14, 0x29, 0x8f, 0x82, 0x7a, 0xb1, 0x10, 0xf9, 0x27, 0x12, 0xb8, 0x4e, - 0x5d, 0x68, 0x60, 0xeb, 0x48, 0x73, 0xd1, 0x13, 0xe8, 0x1a, 0x9a, 0x0e, 0x4d, 0x07, 0xe2, 0x23, - 0xab, 0xdd, 0x57, 0x58, 0x36, 0xee, 0xe1, 0x2a, 0xfb, 0x1c, 0x4a, 0x65, 0x48, 0x9b, 0x02, 0xa8, - 0xcd, 0x55, 0x2e, 0xd3, 0xde, 0x4c, 0x4c, 0x57, 0x35, 0x6c, 0x41, 0xf7, 0x54, 0xb3, 0x59, 0x74, - 0x75, 0xd7, 0x55, 0xba, 0xb7, 0xae, 0x36, 0x18, 0xd2, 0x7d, 0x0e, 0x14, 0xad, 0xab, 0x5a, 0x2f, - 0x16, 0x22, 0xff, 0x58, 0x02, 0x57, 0xdb, 0x64, 0xea, 0x12, 0x54, 0x80, 0x89, 0xb4, 0xd1, 0xa7, - 0x48, 0x51, 0x71, 0xb5, 0xda, 0x22, 0x57, 0x64, 0x50, 0x7d, 0x1b, 0x14, 0x0c, 0x64, 0xd9, 0xa6, - 0x66, 0x20, 0x1d, 0x9b, 0xb0, 0x4e, 0x3a, 0x0c, 0x97, 0x61, 0x86, 0xbb, 0x13, 0x27, 0x0e, 0x07, - 0xdd, 0xf2, 0x70, 0xb6, 0x04, 0x4c, 0x20, 0xc3, 0x05, 0x23, 0x4c, 0x6e, 0x33, 0x94, 0x0e, 0x5e, - 0xf3, 0x4a, 0x0c, 0x03, 0x13, 0xdd, 0x6e, 0x58, 0xb4, 0x39, 0x28, 0x5f, 0xc5, 0x4a, 0x71, 0x83, - 0xee, 0x20, 0xb4, 0x25, 0xfa, 0x05, 0x83, 0x2d, 0x1c, 0x76, 0x12, 0xe5, 0xef, 0x49, 0x40, 0x11, - 0xe6, 0x3f, 0xb4, 0x5d, 0x1d, 0x19, 0x1a, 0x41, 0x94, 0xd6, 0x91, 0x89, 0x42, 0x23, 0x92, 0xfc, - 0x34, 0x53, 0x7b, 0xb9, 0xf7, 0x22, 0xbf, 0xc3, 0x40, 0xaa, 0x01, 0x46, 0x30, 0xfa, 0xb2, 0x19, - 0xdb, 0x4e, 0xca, 0x07, 0xc9, 0xd7, 0xd8, 0x1b, 0xc1, 0x6a, 0xd4, 0x73, 0xc9, 0x51, 0x3e, 0x39, - 0x07, 0xf2, 0xdd, 0x32, 0xdb, 0xc0, 0xeb, 0xd1, 0x62, 0x50, 0xbb, 0xf0, 0xaa, 0xd5, 0xaf, 0x5a, - 0x2e, 0x01, 0xe0, 0x6d, 0x12, 0x34, 0x66, 0x56, 0x5e, 0xaf, 0xaa, 0x69, 0x8f, 0xc2, 0xcc, 0x2f, - 0x2f, 0x83, 0xcc, 0xe3, 0x86, 0x4d, 0xfd, 0x76, 0x56, 0x84, 0xaa, 0x80, 0x91, 0x38, 0x43, 0x97, - 0x1a, 0xb0, 0x59, 0x5a, 0x8e, 0x0d, 0xb3, 0x06, 0x3c, 0x9f, 0x1c, 0x36, 0xb2, 0x06, 0xec, 0xac, - 0xd0, 0x53, 0xc3, 0xab, 0xd0, 0xd3, 0x83, 0x56, 0xe8, 0xed, 0x95, 0x23, 0x48, 0x3e, 0xcb, 0x98, - 0xca, 0x31, 0x33, 0x60, 0xe5, 0x78, 0x37, 0xb9, 0x57, 0xaf, 0x46, 0x54, 0x8e, 0xad, 0xfe, 0xaa, - 0xfc, 0x22, 0x05, 0x2e, 0xc5, 0xae, 0x94, 0x43, 0xf7, 0xe8, 0x36, 0x97, 0x9d, 0xec, 0x70, 0xd9, - 0x65, 0x90, 0xe1, 0x1b, 0x48, 0xcd, 0xf3, 0x73, 0xdf, 0xa7, 0x39, 0x69, 0x03, 0x12, 0x24, 0xaf, - 0x82, 0xac, 0x60, 0x60, 0xbd, 0xb8, 0x33, 0xab, 0xa2, 0xd3, 0x03, 0x8f, 0x24, 0x17, 0xc1, 0x82, - 0x60, 0x21, 0x3a, 0xac, 0x23, 0xed, 0x10, 0xea, 0xd4, 0x76, 0x99, 0x7f, 0x4e, 0xab, 0xf3, 0xbc, - 0xa9, 0xea, 0xb5, 0xec, 0xb0, 0x06, 0x79, 0x3b, 0x18, 0x93, 0x7a, 0x75, 0x6e, 0x8a, 0xd5, 0xb9, - 0x57, 0x42, 0xb6, 0x11, 0x5b, 0x5a, 0x5f, 0xc9, 0xf7, 0xd9, 0x27, 0xab, 0x71, 0x85, 0x64, 0xde, - 0x6f, 0xf9, 0x00, 0xe4, 0xb0, 0x85, 0x29, 0xe6, 0x95, 0xcb, 0x11, 0xb6, 0x3c, 0xcf, 0xc3, 0x76, - 0xc8, 0xf5, 0x7a, 0x7a, 0x8c, 0x2c, 0x00, 0xee, 0xb1, 0xfe, 0xaa, 0xd7, 0x5d, 0xfe, 0x26, 0xc8, - 0x9b, 0x10, 0x7b, 0x66, 0x85, 0x96, 0x8e, 0x5a, 0xa1, 0xfb, 0x70, 0xc6, 0xc5, 0x10, 0x48, 0x18, - 0xbe, 0x33, 0xea, 0x32, 0xc9, 0x41, 0x7b, 0x45, 0x5d, 0xb6, 0x0f, 0xa8, 0x96, 0xa8, 0xeb, 0x92, - 0xb9, 0xa6, 0x47, 0x93, 0xb9, 0x66, 0xce, 0x98, 0xb9, 0xda, 0x73, 0xc4, 0xec, 0x50, 0x72, 0xc4, - 0xdc, 0x7f, 0x73, 0x77, 0x19, 0x9b, 0x06, 0x94, 0xbf, 0x9d, 0x07, 0xab, 0x3d, 0x4b, 0xb3, 0xa1, - 0x27, 0x8b, 0xcb, 0x60, 0xda, 0x8f, 0xe3, 0x53, 0xb3, 0x66, 0xd7, 0x45, 0xba, 0x10, 0xf1, 0x5f, - 0x65, 0x34, 0xf9, 0x3a, 0x98, 0x15, 0x4c, 0x8e, 0x6b, 0x9f, 0x60, 0x03, 0xb9, 0x22, 0x69, 0xcc, - 0x70, 0x72, 0x45, 0x50, 0xdb, 0xa3, 0x7c, 0x6a, 0xc0, 0x28, 0xef, 0x37, 0xb9, 0xdc, 0x02, 0x39, - 0x56, 0xdd, 0xb3, 0x32, 0x42, 0xa3, 0xd8, 0x44, 0x84, 0x42, 0xd3, 0x61, 0x59, 0x66, 0x42, 0x5d, - 0x68, 0xb6, 0xed, 0xfb, 0x4d, 0x5e, 0x97, 0x50, 0xd5, 0xd4, 0xec, 0x92, 0xe6, 0x5d, 0x9a, 0x6d, - 0xcd, 0x2e, 0x39, 0x70, 0x8e, 0x39, 0x00, 0xcf, 0x08, 0x2a, 0xff, 0x68, 0xcf, 0xb6, 0x99, 0x8e, - 0x6c, 0xdb, 0x19, 0xfc, 0xd9, 0xe1, 0x05, 0xff, 0xf4, 0x90, 0x83, 0x7f, 0x66, 0x34, 0xc1, 0x3f, - 0x3b, 0xe4, 0xe0, 0x9f, 0x1b, 0x30, 0xf8, 0xff, 0x1f, 0xcc, 0xf3, 0xe0, 0x77, 0x90, 0x6b, 0x62, - 0x42, 0xbc, 0x30, 0xcb, 0xcf, 0x33, 0xb7, 0x9a, 0x63, 0x0d, 0x95, 0x26, 0x7d, 0xc0, 0xea, 0xb6, - 0x57, 0x04, 0x2b, 0xbf, 0x4b, 0x81, 0xd5, 0x9e, 0xdb, 0xd5, 0x57, 0x45, 0x41, 0x1f, 0xe9, 0x62, - 0x11, 0x4c, 0xf1, 0xcd, 0xbd, 0x88, 0x5e, 0xf1, 0xd5, 0xb5, 0x58, 0x00, 0xa3, 0x2b, 0x16, 0x32, - 0xa3, 0x28, 0x16, 0x5e, 0xe5, 0x8b, 0xcf, 0x2b, 0x5f, 0xb4, 0x16, 0x0b, 0xf3, 0x03, 0x16, 0x0b, - 0x03, 0x25, 0x92, 0x9e, 0x29, 0x42, 0xf9, 0x11, 0x00, 0x97, 0x13, 0x9c, 0x46, 0x8e, 0xe6, 0xaa, - 0xa7, 0x5b, 0x6c, 0xf5, 0x71, 0xe1, 0xd3, 0x6f, 0x6c, 0xf5, 0x71, 0x01, 0x94, 0x3c, 0xb6, 0xa6, - 0x86, 0xb7, 0xfd, 0x3d, 0x3f, 0xfc, 0x0b, 0xaa, 0xd4, 0x68, 0x2e, 0xa8, 0xd2, 0xa3, 0xb9, 0xa0, - 0x02, 0x67, 0xbc, 0xa0, 0xaa, 0x02, 0xf9, 0x1d, 0xbb, 0xe1, 0xd6, 0x4f, 0x77, 0x2d, 0x8a, 0x5c, - 0x44, 0xa8, 0xda, 0xba, 0x55, 0xea, 0xed, 0x51, 0x9d, 0xdd, 0xe5, 0xf7, 0x40, 0x8e, 0x53, 0x77, - 0x1a, 0x16, 0x3b, 0x68, 0x85, 0x14, 0x6d, 0x42, 0x27, 0x94, 0x54, 0x7b, 0xc2, 0x46, 0x02, 0x84, - 0xae, 0xd3, 0xa6, 0x07, 0xbc, 0x4e, 0xbb, 0x17, 0xd4, 0xde, 0xec, 0xe4, 0x94, 0xb0, 0x6c, 0x9a, - 0x89, 0x07, 0xe2, 0x4b, 0x20, 0x0b, 0x73, 0xe2, 0x57, 0xe9, 0xfc, 0x2b, 0x74, 0x3b, 0x37, 0x9b, - 0xe0, 0x76, 0x6e, 0x6e, 0x28, 0xb7, 0x73, 0x83, 0xa6, 0xc4, 0xf7, 0x92, 0xa7, 0xc4, 0x37, 0x83, - 0x94, 0x98, 0x20, 0xd9, 0x29, 0x7b, 0x20, 0x1d, 0x0c, 0xd8, 0xac, 0xd8, 0xa5, 0x70, 0xc5, 0x1e, - 0x59, 0x04, 0x8e, 0x47, 0x17, 0x81, 0xca, 0xcf, 0xc7, 0x41, 0x21, 0xfe, 0x98, 0x74, 0x34, 0xf9, - 0x75, 0x0f, 0xcc, 0xb5, 0x9c, 0xea, 0x62, 0xbd, 0xaf, 0xcb, 0xf4, 0x59, 0x12, 0x92, 0x13, 0xeb, - 0xa8, 0xac, 0x26, 0x57, 0xf8, 0xf5, 0x40, 0xe1, 0xf1, 0x13, 0x57, 0xfe, 0x25, 0x81, 0x0b, 0x31, - 0x47, 0xe5, 0x03, 0x2b, 0xa6, 0x02, 0x66, 0x5a, 0xcf, 0xf0, 0xc5, 0x2d, 0xe1, 0x1b, 0xf1, 0xf7, - 0x72, 0x21, 0x11, 0xd4, 0xe9, 0x96, 0x53, 0xfa, 0xf2, 0xfd, 0xe4, 0xb3, 0xbf, 0x12, 0xcc, 0x3e, - 0x66, 0x6a, 0xca, 0x6f, 0x53, 0xe0, 0x5a, 0xb2, 0x4b, 0x8b, 0x57, 0x2f, 0x2d, 0xfe, 0xf7, 0x5e, - 0x5a, 0x74, 0x3b, 0x8f, 0x48, 0xf7, 0x7f, 0x1e, 0x01, 0xba, 0x9f, 0x47, 0x44, 0xa5, 0x88, 0xcc, - 0xe0, 0x29, 0xa2, 0x99, 0x2d, 0xb3, 0xe1, 0x6c, 0x79, 0xf6, 0x65, 0xee, 0x20, 0x7a, 0x99, 0xfb, - 0x42, 0xec, 0xdd, 0xb2, 0x38, 0x51, 0xfa, 0xbc, 0x97, 0xbb, 0xf2, 0xc3, 0xe4, 0x99, 0xa3, 0x14, - 0x77, 0x08, 0x10, 0xb5, 0x56, 0xfd, 0x46, 0x02, 0xb9, 0xa8, 0x89, 0x7a, 0x1b, 0x5a, 0x71, 0x1a, - 0xc7, 0x73, 0x86, 0xf8, 0x92, 0x97, 0x40, 0x2a, 0x38, 0x80, 0xe3, 0x19, 0x23, 0xf8, 0xee, 0xb6, - 0xf7, 0x9e, 0x48, 0xb8, 0xf7, 0x9e, 0x1c, 0x6c, 0xef, 0xad, 0xfc, 0x5e, 0x02, 0xd9, 0x16, 0xd9, - 0xdb, 0xce, 0x11, 0xa4, 0x9e, 0xe7, 0x08, 0xe3, 0x89, 0xcf, 0x11, 0x46, 0x3d, 0x97, 0x7f, 0x8e, - 0x83, 0xcb, 0x91, 0x77, 0xf6, 0x43, 0x3a, 0x9b, 0x79, 0x08, 0xa6, 0x83, 0xe7, 0x04, 0xac, 0x7a, - 0x9a, 0x60, 0x81, 0xf0, 0xa5, 0xbe, 0xdf, 0x10, 0xb0, 0x6a, 0x2a, 0xab, 0x87, 0xbe, 0xe4, 0x1a, - 0x78, 0x2d, 0xc0, 0x16, 0x4f, 0x17, 0x1c, 0xdb, 0x0e, 0x9e, 0xb4, 0x14, 0xe3, 0xc6, 0xf0, 0x61, - 0xf9, 0x20, 0x15, 0xdb, 0xae, 0xab, 0x0b, 0x7a, 0x07, 0x8d, 0x0c, 0x56, 0xb4, 0x25, 0x50, 0xa8, - 0xf2, 0xef, 0x89, 0x2e, 0x8a, 0x1f, 0xd2, 0x52, 0x3a, 0x4a, 0xc5, 0x37, 0xc0, 0x72, 0xa4, 0xe2, - 0x35, 0x68, 0x18, 0x98, 0x25, 0x80, 0x01, 0x4d, 0x70, 0x31, 0xc2, 0x04, 0xeb, 0x3e, 0xa6, 0xfc, - 0x18, 0x5c, 0x8a, 0x1e, 0x96, 0x3f, 0x77, 0xf0, 0x5f, 0x0f, 0xf5, 0x3b, 0xe8, 0x52, 0xc4, 0xa0, - 0xdc, 0x08, 0xc3, 0x34, 0x7f, 0x5b, 0x1e, 0xfc, 0x8e, 0x04, 0xe6, 0xfd, 0xf1, 0xb0, 0x45, 0x79, - 0xab, 0x7c, 0x1d, 0xcc, 0x42, 0x9d, 0x3f, 0xa3, 0x80, 0x86, 0xe1, 0x22, 0x42, 0x84, 0xd9, 0x67, - 0x04, 0x79, 0x9d, 0x53, 0xe5, 0x0d, 0x00, 0x2c, 0xf4, 0x44, 0x73, 0xbc, 0xbe, 0xa4, 0x9f, 0xc3, - 0xb2, 0xb4, 0x85, 0x9e, 0xb0, 0x11, 0x89, 0xf2, 0xa7, 0x71, 0xb0, 0xd6, 0x22, 0x6a, 0x05, 0xb1, - 0xcd, 0x1e, 0x6f, 0x1e, 0x92, 0x1b, 0xbe, 0x05, 0x16, 0x1d, 0x0e, 0xcb, 0x6c, 0x15, 0x5a, 0xe5, - 0x27, 0xd8, 0x2a, 0x9f, 0x73, 0xfc, 0x41, 0xed, 0x7a, 0x73, 0x99, 0xd7, 0x40, 0x2e, 0x30, 0x30, - 0xb6, 0x68, 0x60, 0x60, 0xee, 0x55, 0x37, 0xe3, 0x0c, 0xdc, 0xa1, 0x54, 0x55, 0x76, 0xdb, 0x49, - 0xa4, 0xfc, 0x8d, 0xe4, 0x76, 0xbd, 0x15, 0x6d, 0xd7, 0x18, 0x65, 0x29, 0x2f, 0x25, 0xb0, 0x10, - 0xf1, 0xb4, 0x65, 0x60, 0x25, 0x7e, 0x1d, 0xa4, 0x88, 0x7e, 0x8c, 0x8c, 0x46, 0x1d, 0x89, 0x30, - 0x4e, 0xfa, 0xaa, 0xa6, 0x2a, 0xba, 0xa9, 0x01, 0x40, 0xf9, 0xed, 0xe4, 0x53, 0xbf, 0x18, 0x4c, - 0x3d, 0x62, 0x36, 0xca, 0x87, 0xe3, 0x60, 0x99, 0x3d, 0x6c, 0xd9, 0xb4, 0x4d, 0xb3, 0x61, 0x61, - 0x7a, 0xea, 0x19, 0xb1, 0xea, 0x19, 0xf4, 0xcc, 0x33, 0x3e, 0x00, 0xe9, 0xf6, 0xf7, 0x92, 0x77, - 0xc4, 0xfb, 0xf5, 0x62, 0xcb, 0x53, 0xf5, 0xa6, 0xd4, 0xdd, 0x64, 0x50, 0x9b, 0x48, 0xe5, 0x6a, - 0xf2, 0xb9, 0xaf, 0xb5, 0x3e, 0xde, 0xe9, 0x8e, 0xaf, 0xfc, 0x6a, 0x1c, 0x14, 0xd7, 0xa9, 0x6d, - 0x62, 0x9d, 0x97, 0x3d, 0xf7, 0x5d, 0x83, 0x55, 0xf2, 0xf7, 0x1a, 0x75, 0x8a, 0x9d, 0x3a, 0x46, - 0xae, 0x6f, 0x85, 0x33, 0xab, 0x05, 0x81, 0x45, 0xff, 0x15, 0x14, 0x42, 0x9a, 0x19, 0x0c, 0xe0, - 0xeb, 0xa8, 0x94, 0xe0, 0xe5, 0x53, 0x58, 0x30, 0x35, 0x67, 0x76, 0x12, 0x49, 0xb9, 0x96, 0x5c, - 0x4d, 0x77, 0x02, 0x35, 0xf5, 0xa7, 0x82, 0x1b, 0x4f, 0x41, 0x36, 0xfc, 0xaa, 0x57, 0xbe, 0x0d, - 0x72, 0xdb, 0xef, 0x6f, 0xbe, 0xb3, 0xbe, 0xf7, 0xf6, 0xb6, 0x76, 0xb0, 0x57, 0xad, 0x6c, 0x6f, - 0xee, 0xee, 0xec, 0x6e, 0x6f, 0xcd, 0x8d, 0x2d, 0xe5, 0x9f, 0x3d, 0x5f, 0x89, 0x6c, 0x93, 0x65, - 0x30, 0x59, 0xad, 0xdc, 0xdf, 0x9f, 0x93, 0x96, 0x52, 0xcf, 0x9e, 0xaf, 0xb0, 0xdf, 0x9e, 0x12, - 0xb7, 0xb6, 0xd5, 0xdd, 0x77, 0xd7, 0xf7, 0x77, 0xdf, 0xdd, 0xae, 0xce, 0x8d, 0x2f, 0xcd, 0x3e, - 0x7b, 0xbe, 0x12, 0x26, 0x6d, 0x1c, 0x7f, 0xfc, 0xa2, 0x20, 0x7d, 0xfa, 0xa2, 0x20, 0xfd, 0xf5, - 0x45, 0x41, 0xfa, 0xc1, 0xcb, 0xc2, 0xd8, 0xa7, 0x2f, 0x0b, 0x63, 0x7f, 0x7e, 0x59, 0x18, 0x7b, - 0xb8, 0x77, 0x84, 0xe9, 0x71, 0xa3, 0x56, 0xd4, 0x6d, 0xb3, 0xb4, 0xeb, 0x2b, 0xf2, 0x2e, 0xac, - 0x91, 0x52, 0xa0, 0xd6, 0x9b, 0xba, 0xed, 0xa2, 0xf0, 0xe7, 0x31, 0xc4, 0x56, 0xc9, 0xb4, 0xbd, - 0xb9, 0x91, 0x66, 0x35, 0xec, 0xd5, 0x64, 0xa4, 0x36, 0xc5, 0xfe, 0x32, 0xe1, 0x8b, 0xff, 0x09, - 0x00, 0x00, 0xff, 0xff, 0x16, 0x7b, 0x31, 0x71, 0xe1, 0x31, 0x00, 0x00, + // 2486 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x1c, 0x49, + 0x19, 0x77, 0xdb, 0x8e, 0xed, 0xa9, 0x99, 0xf1, 0xa3, 0xed, 0x35, 0xb3, 0x4e, 0xe2, 0xc7, 0x38, + 0x0f, 0x6f, 0xd8, 0xcc, 0x90, 0xb0, 0x28, 0x62, 0x24, 0x04, 0x7e, 0xee, 0x5a, 0x24, 0xce, 0xa4, + 0xc7, 0xde, 0x5d, 0x45, 0xa0, 0x56, 0x4d, 0x77, 0xd9, 0x2e, 0x32, 0xfd, 0x48, 0x57, 0x8d, 0x13, + 0xaf, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x2c, 0xe2, 0x10, 0xb1, 0x27, 0xce, 0x48, 0xf0, + 0x0f, 0xc0, 0x01, 0x2d, 0x88, 0xc3, 0xde, 0x40, 0x1c, 0x56, 0x28, 0x11, 0x82, 0xbf, 0x00, 0x71, + 0xe0, 0x80, 0xea, 0xd1, 0x3d, 0x3d, 0x33, 0x3d, 0x3d, 0x3d, 0xe3, 0xb1, 0xf6, 0x40, 0x2e, 0xc9, + 0xf4, 0x57, 0x5f, 0xfd, 0xea, 0xab, 0xaf, 0xea, 0xfb, 0xea, 0x57, 0x0f, 0x83, 0x37, 0xb0, 0xfd, + 0x1d, 0x64, 0x50, 0x7c, 0x82, 0x8a, 0xe8, 0xa9, 0x71, 0x0c, 0xed, 0x23, 0x54, 0x3c, 0xb9, 0x55, + 0x45, 0x14, 0xde, 0x2a, 0xba, 0x9e, 0xe3, 0x3a, 0x04, 0xd6, 0x0a, 0xae, 0xe7, 0x50, 0x47, 0x5d, + 0x08, 0x54, 0x0b, 0xbe, 0x6a, 0x41, 0xaa, 0x2e, 0x2c, 0x1a, 0x0e, 0xb1, 0x1c, 0x52, 0xac, 0x42, + 0xd2, 0xa8, 0x6f, 0x38, 0xd8, 0x16, 0x75, 0x17, 0x0a, 0xb2, 0xdc, 0xc4, 0x84, 0x7a, 0xb8, 0x5a, + 0xa7, 0xd8, 0xb1, 0x03, 0xbd, 0xb0, 0x50, 0xea, 0x7f, 0x41, 0xea, 0x5b, 0xe4, 0xa8, 0x78, 0x72, + 0x8b, 0xfd, 0x27, 0x0b, 0x5e, 0x17, 0x05, 0x3a, 0xff, 0x2a, 0x8a, 0x0f, 0x59, 0x34, 0x77, 0xe4, + 0x1c, 0x39, 0x42, 0xce, 0x7e, 0x49, 0x69, 0x5c, 0x07, 0x83, 0x6e, 0x08, 0xd5, 0xab, 0x0d, 0x55, + 0xc7, 0x83, 0x46, 0xad, 0xa1, 0x28, 0x3e, 0xa5, 0xda, 0x0c, 0xb4, 0xb0, 0xed, 0x14, 0xf9, 0xbf, + 0x42, 0x94, 0xff, 0xe5, 0x38, 0xb8, 0x5c, 0x71, 0x1d, 0x7a, 0x0f, 0x7a, 0x8f, 0x10, 0x2d, 0x43, + 0x0f, 0x5a, 0x07, 0xae, 0x09, 0x29, 0x2a, 0x4b, 0x17, 0xaa, 0x73, 0xe0, 0x02, 0xc5, 0xb4, 0x86, + 0x72, 0xca, 0xb2, 0xb2, 0x96, 0xd2, 0xc4, 0x87, 0xba, 0x0c, 0xd2, 0x26, 0x22, 0x86, 0x87, 0x5d, + 0xd6, 0xf7, 0xdc, 0x30, 0x2f, 0x0b, 0x8b, 0xd4, 0x8b, 0x20, 0x65, 0x71, 0x50, 0x1d, 0x9b, 0xb9, + 0x11, 0x5e, 0x3e, 0x21, 0x04, 0xbb, 0xa6, 0xba, 0x0b, 0x26, 0x2d, 0xf8, 0x08, 0x79, 0xfa, 0x21, + 0x42, 0xba, 0x07, 0x29, 0xca, 0x8d, 0x32, 0x8d, 0x8d, 0xd5, 0x4f, 0x3e, 0x5b, 0x52, 0xfe, 0xf6, + 0xd9, 0xd2, 0x45, 0xe1, 0x1f, 0x62, 0x3e, 0x2a, 0x60, 0xa7, 0x68, 0x41, 0x7a, 0x5c, 0xb8, 0x8b, + 0x8e, 0xa0, 0x71, 0xba, 0x85, 0x0c, 0x2d, 0xc3, 0xab, 0xee, 0x20, 0xa4, 0x41, 0x8a, 0x18, 0x14, + 0x6d, 0x86, 0xba, 0xd0, 0x03, 0x14, 0x0d, 0x43, 0xbd, 0x0f, 0xe6, 0x3d, 0x54, 0x83, 0xa7, 0x12, + 0x8c, 0x1c, 0x43, 0x4f, 0x42, 0x8e, 0x25, 0x87, 0x9c, 0x95, 0x10, 0x3b, 0x08, 0x55, 0x18, 0x00, + 0x47, 0xd6, 0xc0, 0xac, 0x85, 0x6d, 0xdd, 0xf5, 0xb0, 0x81, 0x74, 0x8a, 0x8d, 0x47, 0x3a, 0xc1, + 0x1f, 0xa0, 0xdc, 0x78, 0x72, 0xd8, 0x69, 0x0b, 0xdb, 0x65, 0x56, 0x7d, 0x1f, 0x1b, 0x8f, 0x2a, + 0xf8, 0x03, 0x6e, 0x2d, 0xc3, 0x7c, 0x5c, 0x87, 0x36, 0xc5, 0xf4, 0x34, 0x04, 0x3b, 0xd1, 0x83, + 0xb5, 0x16, 0xb6, 0x1f, 0x48, 0x84, 0x00, 0xf9, 0x1b, 0x60, 0x8c, 0x50, 0x48, 0xeb, 0x24, 0x97, + 0x5a, 0x56, 0xd6, 0x26, 0x6f, 0xaf, 0x15, 0x3a, 0x07, 0x50, 0x41, 0xcc, 0x9c, 0x0a, 0xd7, 0xd7, + 0x64, 0x3d, 0xf5, 0x12, 0x18, 0x63, 0xe6, 0x20, 0x2f, 0x07, 0xb8, 0x2d, 0xa3, 0xcc, 0x16, 0x4d, + 0xca, 0xd4, 0x1d, 0x90, 0x61, 0x96, 0xdb, 0x0e, 0x9b, 0x28, 0xb0, 0x96, 0x4b, 0x27, 0xb7, 0x37, + 0x6d, 0x61, 0x7b, 0x4f, 0xd6, 0x53, 0xb7, 0x00, 0x80, 0x26, 0x43, 0xc2, 0xf6, 0xa1, 0x93, 0xcb, + 0x2c, 0x2b, 0x6b, 0xe9, 0xdb, 0x57, 0xe3, 0x6c, 0x5d, 0x67, 0xda, 0xbb, 0xf6, 0xa1, 0xa3, 0xa5, + 0xa0, 0xff, 0x53, 0x5d, 0x05, 0x59, 0x16, 0xfc, 0xba, 0x89, 0x0c, 0x6c, 0xc1, 0x1a, 0xc9, 0x65, + 0x97, 0x95, 0xb5, 0xac, 0x96, 0x61, 0xc2, 0x2d, 0x29, 0x53, 0xaf, 0x82, 0xc9, 0xc7, 0x75, 0x87, + 0x86, 0xb4, 0x26, 0xb9, 0x56, 0x96, 0x4b, 0x7d, 0xb5, 0xd2, 0x83, 0x1f, 0x7e, 0xbc, 0x34, 0xf4, + 0xaf, 0x8f, 0x97, 0x86, 0xfe, 0xf4, 0xdb, 0x9b, 0x0b, 0x32, 0xc6, 0x8f, 0x9c, 0x93, 0xc0, 0x80, + 0x4d, 0xc7, 0xa6, 0xc8, 0xa6, 0xcf, 0xfe, 0xf9, 0xeb, 0x1b, 0xd7, 0x82, 0xa0, 0x8e, 0x8d, 0xbf, + 0xfc, 0x9f, 0x15, 0x30, 0xbf, 0x2d, 0x55, 0xb7, 0x6d, 0x58, 0xad, 0x9d, 0x3d, 0x34, 0xef, 0x82, + 0x8c, 0xdf, 0xf8, 0xfe, 0xa9, 0x8b, 0x78, 0x74, 0x76, 0x19, 0xe5, 0xed, 0x90, 0xbe, 0xd6, 0x54, + 0xbb, 0xf4, 0xa6, 0xdf, 0x67, 0xd6, 0xab, 0xa5, 0xa0, 0x57, 0xd1, 0x36, 0xe7, 0x3f, 0xca, 0x82, + 0x95, 0x0d, 0x48, 0x8d, 0x63, 0xbf, 0xfc, 0x9e, 0x63, 0xe2, 0x43, 0x6c, 0x40, 0x66, 0xd9, 0x99, + 0x7b, 0xf6, 0xa1, 0x02, 0xf2, 0xc4, 0x75, 0xa8, 0x2e, 0x53, 0x8f, 0xcb, 0x1c, 0xaa, 0xd7, 0xb9, + 0x47, 0x75, 0x7f, 0x55, 0x20, 0xb9, 0x91, 0xe5, 0x91, 0xb5, 0xf4, 0xed, 0xaf, 0xc6, 0x75, 0x38, + 0x76, 0x50, 0xb4, 0x45, 0x12, 0x57, 0x4c, 0xd4, 0x9f, 0x2b, 0x60, 0xcd, 0x44, 0x1e, 0x3e, 0x81, + 0x0c, 0xbd, 0x8b, 0x35, 0xa3, 0xdc, 0x9a, 0xaf, 0xc7, 0x59, 0xb3, 0x15, 0x60, 0x75, 0xb6, 0xe9, + 0x8a, 0xd9, 0x5d, 0x89, 0xa8, 0x75, 0x70, 0x29, 0xec, 0xa0, 0x1a, 0xac, 0xdb, 0xc6, 0x71, 0xc8, + 0x98, 0x0b, 0xdc, 0x98, 0xb7, 0x92, 0xb9, 0xe6, 0x2e, 0xaf, 0x1d, 0x58, 0xf0, 0x3a, 0xe9, 0x50, + 0x42, 0xd4, 0xef, 0x2b, 0x60, 0xc5, 0x45, 0x9e, 0x8b, 0x68, 0x1d, 0xd6, 0x3a, 0x36, 0x3e, 0xd6, + 0x7d, 0x5c, 0xca, 0x3e, 0x48, 0xa4, 0x05, 0x8b, 0x6e, 0x5c, 0x31, 0x51, 0x7f, 0xac, 0x80, 0x6b, + 0xe8, 0xa9, 0x8b, 0xbd, 0x53, 0xfd, 0xb0, 0x4e, 0xeb, 0x1e, 0x22, 0x1d, 0x6d, 0x19, 0xe7, 0xb6, + 0x7c, 0x2d, 0x3e, 0x28, 0x18, 0xd2, 0x8e, 0x00, 0x8a, 0xb4, 0x27, 0x8f, 0xba, 0xa9, 0x10, 0xf5, + 0x67, 0x0a, 0xb8, 0x4e, 0x3d, 0x68, 0x62, 0xfb, 0x48, 0xf7, 0xd0, 0x13, 0xe8, 0x99, 0xba, 0x01, + 0x2d, 0x17, 0xe2, 0x23, 0xbb, 0x75, 0xae, 0xf0, 0xcc, 0xde, 0x65, 0xaa, 0xec, 0x0b, 0x28, 0x8d, + 0x23, 0x6d, 0x4a, 0xa0, 0x96, 0xa9, 0xb2, 0x4a, 0xbb, 0x2b, 0x71, 0x5f, 0x55, 0xb1, 0x0d, 0xbd, + 0x53, 0xdd, 0xe1, 0xd1, 0xd5, 0xd9, 0x57, 0xa9, 0xee, 0xbe, 0xda, 0xe0, 0x48, 0xf7, 0x05, 0x50, + 0xb4, 0xaf, 0xaa, 0xdd, 0x54, 0x88, 0xfa, 0x53, 0x05, 0x5c, 0x6d, 0xb1, 0xa9, 0x43, 0x50, 0x01, + 0x6e, 0xd2, 0x46, 0x8f, 0x26, 0x45, 0xc5, 0xd5, 0x4a, 0x93, 0x5d, 0x91, 0x41, 0xf5, 0x5d, 0xb0, + 0x68, 0x22, 0xdb, 0xb1, 0x82, 0xd5, 0xa1, 0x6d, 0xe0, 0xd2, 0x7c, 0xe0, 0xee, 0xc4, 0x99, 0x23, + 0x40, 0xb7, 0x18, 0x8e, 0xbf, 0x9e, 0x04, 0x36, 0x5c, 0x34, 0xc3, 0xe2, 0x96, 0x81, 0x32, 0xc0, + 0x6b, 0x8c, 0xae, 0x98, 0x98, 0x18, 0x4e, 0xdd, 0xa6, 0x8d, 0x46, 0xc5, 0x8a, 0x58, 0x8c, 0x6b, + 0x74, 0x07, 0xa1, 0x2d, 0x59, 0x2f, 0x68, 0x6c, 0xf6, 0xb0, 0x5d, 0xa8, 0xfe, 0x40, 0x01, 0x79, + 0x39, 0xfc, 0x87, 0x8e, 0x67, 0x20, 0x53, 0x27, 0x88, 0xd2, 0x1a, 0xb2, 0x50, 0xa8, 0x45, 0xb6, + 0x76, 0x32, 0xb7, 0x97, 0xba, 0x13, 0x86, 0x1d, 0x0e, 0x52, 0x09, 0x30, 0x82, 0xd6, 0x97, 0xac, + 0xd8, 0x72, 0x52, 0x3a, 0x48, 0xbe, 0xc6, 0xde, 0x08, 0x56, 0xa3, 0xae, 0x4b, 0x4e, 0xfe, 0xa3, + 0x31, 0x90, 0xeb, 0x94, 0xd9, 0xfa, 0x5e, 0x8f, 0xe6, 0x03, 0x1e, 0x24, 0x18, 0xb0, 0xcf, 0x80, + 0x2e, 0x03, 0x20, 0x39, 0x87, 0xed, 0x58, 0x82, 0xfb, 0x6a, 0x29, 0x41, 0x38, 0x6c, 0xc7, 0x52, + 0x97, 0x40, 0xda, 0x67, 0x1b, 0xac, 0x9c, 0x13, 0x5a, 0x0d, 0x48, 0xaa, 0xc1, 0x14, 0x3a, 0xf0, + 0xc9, 0x06, 0x4d, 0x1d, 0x1a, 0x24, 0x9f, 0x1c, 0x4f, 0x0e, 0x1b, 0xc9, 0x27, 0xdb, 0xd9, 0xfe, + 0xc4, 0xe0, 0xd8, 0x7e, 0xaa, 0x5f, 0xb6, 0xdf, 0xca, 0x42, 0x41, 0xf2, 0x5e, 0xc6, 0xb0, 0xd0, + 0xf4, 0xa0, 0x58, 0xe8, 0x64, 0x22, 0x16, 0x3a, 0x15, 0xc5, 0x42, 0xef, 0x26, 0x8f, 0x90, 0x95, + 0x08, 0x16, 0xda, 0x3c, 0xf7, 0xf3, 0xbf, 0x9a, 0x00, 0x97, 0x63, 0x57, 0xdd, 0x81, 0x47, 0x47, + 0xcb, 0xf4, 0x1f, 0x6d, 0x9b, 0xfe, 0x4b, 0x20, 0x2d, 0x36, 0xb6, 0x3a, 0x73, 0x8f, 0x1f, 0x1f, + 0x42, 0xb4, 0x01, 0x09, 0x52, 0x57, 0x40, 0x46, 0x2a, 0xf0, 0x5a, 0x22, 0x30, 0x34, 0x59, 0xe9, + 0x01, 0x13, 0xa9, 0x05, 0x30, 0x2b, 0x55, 0x88, 0x01, 0x6b, 0x48, 0x3f, 0x84, 0x06, 0x75, 0x3c, + 0x3e, 0xd7, 0xb3, 0xda, 0x8c, 0x28, 0xaa, 0xb0, 0x92, 0x1d, 0x5e, 0xa0, 0x6e, 0x07, 0x6d, 0x52, + 0xc6, 0x99, 0x27, 0x38, 0x67, 0xbe, 0x12, 0x1a, 0x67, 0xb9, 0xd5, 0xf6, 0x9d, 0x7c, 0x9f, 0x7f, + 0x72, 0xbe, 0x2c, 0x2d, 0x63, 0xbf, 0xd5, 0x03, 0x30, 0x87, 0x6d, 0x4c, 0xb1, 0x60, 0x41, 0x47, + 0xd8, 0x66, 0xb3, 0x18, 0x3b, 0xa1, 0x69, 0xdc, 0x75, 0xf6, 0xa9, 0x12, 0xe0, 0x1e, 0xaf, 0xaf, + 0xb1, 0xea, 0xea, 0xb7, 0x41, 0xce, 0x82, 0x98, 0x0d, 0x2b, 0xb4, 0x0d, 0xd4, 0x0c, 0xdd, 0xc3, + 0xc4, 0x9e, 0x0f, 0x81, 0x84, 0xe1, 0xdb, 0x23, 0x38, 0x9d, 0x1c, 0xb4, 0x5b, 0x04, 0x67, 0x7a, + 0x80, 0x6a, 0x8a, 0xe0, 0x0e, 0x59, 0x30, 0x7b, 0x3e, 0x59, 0x70, 0xf2, 0x8c, 0x59, 0xb0, 0x35, + 0xdf, 0x4c, 0x0d, 0x24, 0xdf, 0x4c, 0xf7, 0x97, 0x6f, 0xfa, 0xdb, 0xa9, 0xc6, 0xa6, 0x81, 0xfc, + 0x3f, 0xc6, 0xc1, 0x4a, 0x57, 0x9a, 0x37, 0xf0, 0x64, 0xb1, 0x0a, 0xb2, 0x7e, 0x1c, 0x9f, 0x5a, + 0x55, 0xa7, 0x26, 0xd3, 0x85, 0x8c, 0xff, 0x0a, 0x97, 0xa9, 0xd7, 0xc1, 0x94, 0x54, 0x72, 0x3d, + 0xe7, 0x04, 0x9b, 0xc8, 0x93, 0x49, 0x63, 0x52, 0x88, 0xcb, 0x52, 0xda, 0x1a, 0xe5, 0x63, 0x7d, + 0x46, 0x79, 0xaf, 0xc9, 0xe5, 0x16, 0x98, 0xe3, 0x3b, 0x05, 0x4e, 0x49, 0x74, 0x8a, 0x2d, 0x44, + 0x28, 0xb4, 0x5c, 0x9e, 0x65, 0x46, 0xb4, 0xd9, 0x46, 0xd9, 0xbe, 0x5f, 0xc4, 0xaa, 0x84, 0x18, + 0x58, 0xa3, 0x4a, 0x4a, 0x54, 0x69, 0x94, 0x35, 0xaa, 0xcc, 0x81, 0x0b, 0x7c, 0x02, 0x88, 0x8c, + 0xa0, 0x89, 0x8f, 0xd6, 0x6c, 0x9b, 0x6e, 0xcb, 0xb6, 0xed, 0xc1, 0x9f, 0x19, 0x5c, 0xf0, 0x67, + 0x07, 0x1c, 0xfc, 0x93, 0xe7, 0x13, 0xfc, 0x53, 0x03, 0x0e, 0xfe, 0xe9, 0x3e, 0x83, 0xff, 0x8b, + 0x60, 0x46, 0x04, 0xbf, 0x8b, 0x3c, 0x0b, 0x13, 0xc2, 0xc2, 0x2c, 0x37, 0xc3, 0xa7, 0xd5, 0x34, + 0x2f, 0x28, 0x37, 0xe4, 0x7d, 0x32, 0xe5, 0x6e, 0x11, 0x9c, 0xff, 0xc3, 0x04, 0x58, 0xe9, 0xba, + 0xf5, 0x7d, 0x45, 0x0a, 0x7a, 0x48, 0x17, 0xf3, 0x60, 0x4c, 0x1c, 0x14, 0xc8, 0xe8, 0x95, 0x5f, + 0x1d, 0xc9, 0x02, 0x38, 0x3f, 0xb2, 0x90, 0x3e, 0x0f, 0xb2, 0xf0, 0x2a, 0x5f, 0x7c, 0x5e, 0xf9, + 0xa2, 0x99, 0x2c, 0xcc, 0xf4, 0x49, 0x16, 0xfa, 0x4a, 0x24, 0x5d, 0x53, 0x44, 0xfe, 0x27, 0x00, + 0xac, 0x26, 0x38, 0xd9, 0x3c, 0x9f, 0x2b, 0xa8, 0x4e, 0xb1, 0xd5, 0xc3, 0x45, 0x54, 0xaf, 0xb1, + 0xd5, 0xc3, 0xc5, 0x54, 0xf2, 0xd8, 0x1a, 0x1b, 0xdc, 0x56, 0x7a, 0x7c, 0xf0, 0x17, 0x67, 0x13, + 0xe7, 0x73, 0x71, 0x96, 0x3a, 0x9f, 0x8b, 0x33, 0x70, 0xc6, 0x8b, 0xb3, 0x0a, 0x50, 0xdf, 0x71, + 0xea, 0x5e, 0xed, 0x74, 0xd7, 0xa6, 0xc8, 0x43, 0x84, 0x6a, 0xcd, 0x5b, 0xa5, 0xee, 0x33, 0xaa, + 0xbd, 0xba, 0xfa, 0x1e, 0x98, 0x13, 0xd2, 0x9d, 0xba, 0xcd, 0x0f, 0x6d, 0x21, 0x45, 0x9b, 0xd0, + 0x0d, 0x25, 0xd5, 0xae, 0xb0, 0x91, 0x00, 0xa1, 0x6b, 0xbe, 0x6c, 0x9f, 0xd7, 0x7c, 0xf7, 0x02, + 0xee, 0xcd, 0x4f, 0x61, 0xc5, 0xa1, 0x45, 0x3a, 0x1e, 0x48, 0x2c, 0x81, 0x3c, 0xcc, 0x89, 0xcf, + 0xd2, 0xc5, 0x57, 0xe8, 0xd6, 0x70, 0x2a, 0xc1, 0xad, 0xe1, 0xf4, 0x40, 0x6e, 0x0d, 0xfb, 0x4d, + 0x89, 0xef, 0x25, 0x4f, 0x89, 0x6f, 0x06, 0x29, 0x31, 0x41, 0xb2, 0xcb, 0xef, 0x81, 0x54, 0xd0, + 0x60, 0x83, 0xb1, 0x2b, 0x61, 0xc6, 0x1e, 0x49, 0x02, 0x87, 0xa3, 0x49, 0x60, 0xfe, 0x17, 0xc3, + 0x60, 0x31, 0xfe, 0xc8, 0xf5, 0x7c, 0xf2, 0xeb, 0x1e, 0x98, 0x6e, 0x3a, 0x21, 0xc6, 0x46, 0x4f, + 0x97, 0xfc, 0x53, 0x24, 0x64, 0x27, 0x36, 0x50, 0x49, 0x4b, 0xee, 0xf0, 0xeb, 0x81, 0xc3, 0xe3, + 0x3b, 0x9e, 0xff, 0x8f, 0x02, 0x2e, 0xc6, 0x1c, 0xbb, 0xf7, 0xed, 0x98, 0x32, 0x98, 0x6c, 0xbe, + 0x0f, 0x90, 0x37, 0x8e, 0x6f, 0xc4, 0xdf, 0xf1, 0x85, 0x4c, 0xd0, 0xb2, 0x4d, 0x27, 0xfe, 0xa5, + 0xfb, 0xc9, 0x7b, 0x7f, 0x25, 0xe8, 0x7d, 0x4c, 0xd7, 0xf2, 0xbf, 0x9f, 0x00, 0xd7, 0x92, 0x5d, + 0x80, 0xbc, 0x7a, 0x01, 0xf2, 0xff, 0xf7, 0x02, 0xa4, 0xd3, 0x79, 0x44, 0xaa, 0xf7, 0xf3, 0x08, + 0xd0, 0xf9, 0x3c, 0x22, 0x2a, 0x45, 0xa4, 0xfb, 0x4f, 0x11, 0x8d, 0x6c, 0x99, 0x09, 0x67, 0xcb, + 0xb3, 0x2f, 0x73, 0x07, 0xd1, 0xcb, 0xdc, 0x97, 0x62, 0xef, 0xa9, 0xe5, 0x89, 0xd2, 0xe7, 0xbd, + 0xdc, 0x95, 0x1e, 0x26, 0xcf, 0x1c, 0xc5, 0xb8, 0x43, 0x80, 0xa8, 0xb5, 0xea, 0x77, 0x0a, 0x98, + 0x8b, 0xea, 0x28, 0xdb, 0xd0, 0xca, 0xd3, 0x38, 0x91, 0x33, 0xe4, 0x97, 0xba, 0x00, 0x26, 0x82, + 0x03, 0x38, 0x91, 0x31, 0x82, 0xef, 0x4e, 0x7b, 0xef, 0x91, 0x84, 0x7b, 0xef, 0xd1, 0xfe, 0xf6, + 0xde, 0xf9, 0x3f, 0x2a, 0x20, 0xd3, 0x64, 0x7b, 0xcb, 0x39, 0x82, 0xd2, 0xf5, 0x1c, 0x61, 0x38, + 0xf1, 0x39, 0xc2, 0x79, 0xf7, 0xe5, 0xdf, 0xc3, 0x60, 0x35, 0xf2, 0xfe, 0x7f, 0x40, 0x67, 0x33, + 0x0f, 0x41, 0x36, 0x78, 0x9a, 0xc0, 0xd9, 0xd3, 0x08, 0x0f, 0x84, 0xaf, 0xf4, 0xfc, 0x1e, 0x81, + 0xb3, 0xa9, 0x8c, 0x11, 0xfa, 0x52, 0xab, 0xe0, 0xb5, 0x00, 0x5b, 0x3e, 0x83, 0x70, 0x1d, 0x27, + 0x78, 0x1e, 0x53, 0x88, 0x6b, 0xc3, 0x87, 0x15, 0x8d, 0x94, 0x1d, 0xa7, 0xa6, 0xcd, 0x1a, 0x6d, + 0x32, 0xd2, 0x1f, 0x69, 0x4b, 0xe0, 0xd0, 0xfc, 0x7f, 0x47, 0x3a, 0x38, 0x7e, 0x40, 0x4b, 0xe9, + 0x79, 0x3a, 0xbe, 0x0e, 0x96, 0x22, 0x1d, 0xaf, 0x43, 0xd3, 0xc4, 0x3c, 0x01, 0xf4, 0x39, 0x04, + 0x97, 0x22, 0x86, 0x60, 0xdd, 0xc7, 0x54, 0x1f, 0x83, 0xcb, 0xd1, 0xcd, 0x8a, 0xa7, 0x13, 0xfe, + 0x4b, 0xa4, 0x5e, 0x1b, 0x5d, 0x88, 0x68, 0x54, 0x0c, 0xc2, 0x20, 0x87, 0xbf, 0x25, 0x0f, 0x7e, + 0x4f, 0x01, 0x33, 0x7e, 0x7b, 0xd8, 0xa6, 0xa2, 0x54, 0xbd, 0x0e, 0xa6, 0xa0, 0x21, 0x9e, 0x64, + 0x40, 0xd3, 0xf4, 0x10, 0x21, 0x72, 0xd8, 0x27, 0xa5, 0x78, 0x5d, 0x48, 0xd5, 0x0d, 0x00, 0x6c, + 0xf4, 0x44, 0x77, 0x59, 0x5d, 0xd2, 0xcb, 0x61, 0x59, 0xca, 0x46, 0x4f, 0x78, 0x8b, 0x24, 0xff, + 0x97, 0x61, 0xb0, 0xd6, 0x64, 0x6a, 0x19, 0xf1, 0xcd, 0x9e, 0x28, 0x1e, 0xd0, 0x34, 0x7c, 0x0b, + 0xcc, 0xbb, 0x02, 0x96, 0x8f, 0x55, 0x68, 0x95, 0x1f, 0xe1, 0xab, 0xfc, 0x9c, 0xeb, 0x37, 0xea, + 0xd4, 0x1a, 0xcb, 0xbc, 0x0e, 0xe6, 0x82, 0x01, 0xc6, 0x36, 0x0d, 0x06, 0x58, 0xcc, 0xaa, 0x9b, + 0x71, 0x03, 0xdc, 0xe6, 0x54, 0x4d, 0xf5, 0x5a, 0x45, 0xa4, 0xf4, 0xad, 0xe4, 0xe3, 0x7a, 0x2b, + 0x7a, 0x5c, 0x63, 0x9c, 0x95, 0x7f, 0xa9, 0x80, 0xd9, 0x88, 0x67, 0x32, 0x7d, 0x3b, 0xf1, 0x9b, + 0x60, 0x82, 0x18, 0xc7, 0xc8, 0xac, 0xd7, 0x90, 0x0c, 0xe3, 0xa4, 0x2f, 0x74, 0x2a, 0xb2, 0x9a, + 0x16, 0x00, 0x94, 0xde, 0x4e, 0xde, 0xf5, 0x4b, 0x41, 0xd7, 0x23, 0x7a, 0x93, 0xff, 0x70, 0x18, + 0x2c, 0xf1, 0x47, 0x32, 0x9b, 0x8e, 0x65, 0xd5, 0x6d, 0x4c, 0x4f, 0xd9, 0x20, 0x56, 0xd8, 0x80, + 0x9e, 0xb9, 0xc7, 0x07, 0x20, 0xd5, 0xfa, 0xf6, 0xf2, 0x8e, 0x7c, 0x57, 0x5f, 0x68, 0x7a, 0x42, + 0xdf, 0xb0, 0xba, 0x93, 0x0d, 0x5a, 0x03, 0xa9, 0x54, 0x49, 0xde, 0xf7, 0xb5, 0xe6, 0x87, 0x40, + 0x9d, 0xf1, 0xf3, 0xbf, 0x19, 0x06, 0x85, 0x75, 0xea, 0x58, 0xd8, 0x10, 0xb4, 0xe7, 0xbe, 0x67, + 0x72, 0x26, 0x7f, 0xaf, 0x5e, 0xa3, 0xd8, 0xad, 0x61, 0xe4, 0xf9, 0xa3, 0x70, 0x66, 0xb7, 0x20, + 0x30, 0xef, 0xbf, 0xa8, 0x42, 0x48, 0xb7, 0x82, 0x06, 0x7c, 0x1f, 0x15, 0x13, 0xbc, 0xa2, 0x0a, + 0x1b, 0xa6, 0xcd, 0x59, 0xed, 0x42, 0x52, 0xaa, 0x26, 0x77, 0xd3, 0x9d, 0xc0, 0x4d, 0xbd, 0xb9, + 0xe0, 0xc6, 0x53, 0x90, 0x09, 0xbf, 0x10, 0x56, 0x6f, 0x83, 0xb9, 0xed, 0xf7, 0x37, 0xdf, 0x59, + 0xdf, 0x7b, 0x7b, 0x5b, 0x3f, 0xd8, 0xab, 0x94, 0xb7, 0x37, 0x77, 0x77, 0x76, 0xb7, 0xb7, 0xa6, + 0x87, 0x16, 0x72, 0xcf, 0x9e, 0x2f, 0x47, 0x96, 0xa9, 0x2a, 0x18, 0xad, 0x94, 0xef, 0xef, 0x4f, + 0x2b, 0x0b, 0x13, 0xcf, 0x9e, 0x2f, 0xf3, 0xdf, 0xcc, 0x89, 0x5b, 0xdb, 0xda, 0xee, 0xbb, 0xeb, + 0xfb, 0xbb, 0xef, 0x6e, 0x57, 0xa6, 0x87, 0x17, 0xa6, 0x9e, 0x3d, 0x5f, 0x0e, 0x8b, 0x36, 0x8e, + 0x3f, 0x79, 0xb1, 0xa8, 0x7c, 0xfa, 0x62, 0x51, 0xf9, 0xfb, 0x8b, 0x45, 0xe5, 0x47, 0x2f, 0x17, + 0x87, 0x3e, 0x7d, 0xb9, 0x38, 0xf4, 0xd7, 0x97, 0x8b, 0x43, 0x0f, 0xf7, 0x8e, 0x30, 0x3d, 0xae, + 0x57, 0x0b, 0x86, 0x63, 0x15, 0x77, 0x7d, 0x47, 0xde, 0x85, 0x55, 0x52, 0x0c, 0xdc, 0x7a, 0xd3, + 0x70, 0x3c, 0x14, 0xfe, 0x3c, 0x86, 0xd8, 0x2e, 0x5a, 0x0e, 0xeb, 0x1b, 0x69, 0xb0, 0x61, 0xc6, + 0xc9, 0x48, 0x75, 0x8c, 0xff, 0xc5, 0xc4, 0x97, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x86, 0x3e, + 0x35, 0xf5, 0x79, 0x32, 0x00, 0x00, } func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) { @@ -1397,6 +1408,16 @@ func (m *SpotMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x70 + } + if m.BaseDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x68 + } if m.AdminInfo != nil { { size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) @@ -1764,6 +1785,16 @@ func (m *SpotMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x78 + } + if m.BaseDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x70 + } if m.AdminInfo != nil { { size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) @@ -3406,6 +3437,12 @@ func (m *SpotMarketParamUpdateProposal) Size() (n int) { l = m.AdminInfo.Size() n += 1 + l + sovProposal(uint64(l)) } + if m.BaseDecimals != 0 { + n += 1 + sovProposal(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovProposal(uint64(m.QuoteDecimals)) + } return n } @@ -3550,6 +3587,12 @@ func (m *SpotMarketLaunchProposal) Size() (n int) { l = m.AdminInfo.Size() n += 1 + l + sovProposal(uint64(l)) } + if m.BaseDecimals != 0 { + n += 1 + sovProposal(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovProposal(uint64(m.QuoteDecimals)) + } return n } @@ -4590,6 +4633,44 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -5637,6 +5718,44 @@ func (m *SpotMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go index 865c480d..00a13881 100644 --- a/chain/exchange/types/query.pb.go +++ b/chain/exchange/types/query.pb.go @@ -6275,6 +6275,255 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) GetOrders() []*TrimmedD return nil } +type QueryFullSpotOrderbookRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryFullSpotOrderbookRequest) Reset() { *m = QueryFullSpotOrderbookRequest{} } +func (m *QueryFullSpotOrderbookRequest) String() string { return proto.CompactTextString(m) } +func (*QueryFullSpotOrderbookRequest) ProtoMessage() {} +func (*QueryFullSpotOrderbookRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{122} +} +func (m *QueryFullSpotOrderbookRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullSpotOrderbookRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullSpotOrderbookRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullSpotOrderbookRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullSpotOrderbookRequest.Merge(m, src) +} +func (m *QueryFullSpotOrderbookRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryFullSpotOrderbookRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullSpotOrderbookRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullSpotOrderbookRequest proto.InternalMessageInfo + +func (m *QueryFullSpotOrderbookRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryFullSpotOrderbookResponse struct { + Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` + Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` +} + +func (m *QueryFullSpotOrderbookResponse) Reset() { *m = QueryFullSpotOrderbookResponse{} } +func (m *QueryFullSpotOrderbookResponse) String() string { return proto.CompactTextString(m) } +func (*QueryFullSpotOrderbookResponse) ProtoMessage() {} +func (*QueryFullSpotOrderbookResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{123} +} +func (m *QueryFullSpotOrderbookResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullSpotOrderbookResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullSpotOrderbookResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullSpotOrderbookResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullSpotOrderbookResponse.Merge(m, src) +} +func (m *QueryFullSpotOrderbookResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryFullSpotOrderbookResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullSpotOrderbookResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullSpotOrderbookResponse proto.InternalMessageInfo + +func (m *QueryFullSpotOrderbookResponse) GetBids() []*TrimmedLimitOrder { + if m != nil { + return m.Bids + } + return nil +} + +func (m *QueryFullSpotOrderbookResponse) GetAsks() []*TrimmedLimitOrder { + if m != nil { + return m.Asks + } + return nil +} + +type QueryFullDerivativeOrderbookRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryFullDerivativeOrderbookRequest) Reset() { *m = QueryFullDerivativeOrderbookRequest{} } +func (m *QueryFullDerivativeOrderbookRequest) String() string { return proto.CompactTextString(m) } +func (*QueryFullDerivativeOrderbookRequest) ProtoMessage() {} +func (*QueryFullDerivativeOrderbookRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{124} +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullDerivativeOrderbookRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullDerivativeOrderbookRequest.Merge(m, src) +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullDerivativeOrderbookRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullDerivativeOrderbookRequest proto.InternalMessageInfo + +func (m *QueryFullDerivativeOrderbookRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryFullDerivativeOrderbookResponse struct { + Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` + Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` +} + +func (m *QueryFullDerivativeOrderbookResponse) Reset() { *m = QueryFullDerivativeOrderbookResponse{} } +func (m *QueryFullDerivativeOrderbookResponse) String() string { return proto.CompactTextString(m) } +func (*QueryFullDerivativeOrderbookResponse) ProtoMessage() {} +func (*QueryFullDerivativeOrderbookResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{125} +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullDerivativeOrderbookResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullDerivativeOrderbookResponse.Merge(m, src) +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullDerivativeOrderbookResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullDerivativeOrderbookResponse proto.InternalMessageInfo + +func (m *QueryFullDerivativeOrderbookResponse) GetBids() []*TrimmedLimitOrder { + if m != nil { + return m.Bids + } + return nil +} + +func (m *QueryFullDerivativeOrderbookResponse) GetAsks() []*TrimmedLimitOrder { + if m != nil { + return m.Asks + } + return nil +} + +type TrimmedLimitOrder struct { + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + // quantity of the order + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + OrderHash string `protobuf:"bytes,3,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` +} + +func (m *TrimmedLimitOrder) Reset() { *m = TrimmedLimitOrder{} } +func (m *TrimmedLimitOrder) String() string { return proto.CompactTextString(m) } +func (*TrimmedLimitOrder) ProtoMessage() {} +func (*TrimmedLimitOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{126} +} +func (m *TrimmedLimitOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TrimmedLimitOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TrimmedLimitOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TrimmedLimitOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_TrimmedLimitOrder.Merge(m, src) +} +func (m *TrimmedLimitOrder) XXX_Size() int { + return m.Size() +} +func (m *TrimmedLimitOrder) XXX_DiscardUnknown() { + xxx_messageInfo_TrimmedLimitOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_TrimmedLimitOrder proto.InternalMessageInfo + +func (m *TrimmedLimitOrder) GetOrderHash() string { + if m != nil { + return m.OrderHash + } + return "" +} + +func (m *TrimmedLimitOrder) GetSubaccountId() string { + if m != nil { + return m.SubaccountId + } + return "" +} + type QueryMarketAtomicExecutionFeeMultiplierRequest struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` } @@ -6287,7 +6536,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) String() string { } func (*QueryMarketAtomicExecutionFeeMultiplierRequest) ProtoMessage() {} func (*QueryMarketAtomicExecutionFeeMultiplierRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{122} + return fileDescriptor_523db28b8af54781, []int{127} } func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6335,7 +6584,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) String() string { } func (*QueryMarketAtomicExecutionFeeMultiplierResponse) ProtoMessage() {} func (*QueryMarketAtomicExecutionFeeMultiplierResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{123} + return fileDescriptor_523db28b8af54781, []int{128} } func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6372,7 +6621,7 @@ func (m *QueryActiveStakeGrantRequest) Reset() { *m = QueryActiveStakeGr func (m *QueryActiveStakeGrantRequest) String() string { return proto.CompactTextString(m) } func (*QueryActiveStakeGrantRequest) ProtoMessage() {} func (*QueryActiveStakeGrantRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{124} + return fileDescriptor_523db28b8af54781, []int{129} } func (m *QueryActiveStakeGrantRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6417,7 +6666,7 @@ func (m *QueryActiveStakeGrantResponse) Reset() { *m = QueryActiveStakeG func (m *QueryActiveStakeGrantResponse) String() string { return proto.CompactTextString(m) } func (*QueryActiveStakeGrantResponse) ProtoMessage() {} func (*QueryActiveStakeGrantResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{125} + return fileDescriptor_523db28b8af54781, []int{130} } func (m *QueryActiveStakeGrantResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6469,7 +6718,7 @@ func (m *QueryGrantAuthorizationRequest) Reset() { *m = QueryGrantAuthor func (m *QueryGrantAuthorizationRequest) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationRequest) ProtoMessage() {} func (*QueryGrantAuthorizationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{126} + return fileDescriptor_523db28b8af54781, []int{131} } func (m *QueryGrantAuthorizationRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6520,7 +6769,7 @@ func (m *QueryGrantAuthorizationResponse) Reset() { *m = QueryGrantAutho func (m *QueryGrantAuthorizationResponse) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationResponse) ProtoMessage() {} func (*QueryGrantAuthorizationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{127} + return fileDescriptor_523db28b8af54781, []int{132} } func (m *QueryGrantAuthorizationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6557,7 +6806,7 @@ func (m *QueryGrantAuthorizationsRequest) Reset() { *m = QueryGrantAutho func (m *QueryGrantAuthorizationsRequest) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationsRequest) ProtoMessage() {} func (*QueryGrantAuthorizationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{128} + return fileDescriptor_523db28b8af54781, []int{133} } func (m *QueryGrantAuthorizationsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6602,7 +6851,7 @@ func (m *QueryGrantAuthorizationsResponse) Reset() { *m = QueryGrantAuth func (m *QueryGrantAuthorizationsResponse) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationsResponse) ProtoMessage() {} func (*QueryGrantAuthorizationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{129} + return fileDescriptor_523db28b8af54781, []int{134} } func (m *QueryGrantAuthorizationsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6764,6 +7013,11 @@ func init() { proto.RegisterType((*QueryTraderDerivativeConditionalOrdersRequest)(nil), "injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersRequest") proto.RegisterType((*TrimmedDerivativeConditionalOrder)(nil), "injective.exchange.v1beta1.TrimmedDerivativeConditionalOrder") proto.RegisterType((*QueryTraderDerivativeConditionalOrdersResponse)(nil), "injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersResponse") + proto.RegisterType((*QueryFullSpotOrderbookRequest)(nil), "injective.exchange.v1beta1.QueryFullSpotOrderbookRequest") + proto.RegisterType((*QueryFullSpotOrderbookResponse)(nil), "injective.exchange.v1beta1.QueryFullSpotOrderbookResponse") + proto.RegisterType((*QueryFullDerivativeOrderbookRequest)(nil), "injective.exchange.v1beta1.QueryFullDerivativeOrderbookRequest") + proto.RegisterType((*QueryFullDerivativeOrderbookResponse)(nil), "injective.exchange.v1beta1.QueryFullDerivativeOrderbookResponse") + proto.RegisterType((*TrimmedLimitOrder)(nil), "injective.exchange.v1beta1.TrimmedLimitOrder") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierRequest)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierRequest") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierResponse)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierResponse") proto.RegisterType((*QueryActiveStakeGrantRequest)(nil), "injective.exchange.v1beta1.QueryActiveStakeGrantRequest") @@ -6779,372 +7033,382 @@ func init() { } var fileDescriptor_523db28b8af54781 = []byte{ - // 5833 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5d, 0x7d, 0x8c, 0x1c, 0xc9, - 0x55, 0x77, 0xcf, 0x7e, 0x78, 0xf7, 0xed, 0xa7, 0x6b, 0xd7, 0xeb, 0xf5, 0xdc, 0x9d, 0x3f, 0xda, - 0x71, 0xce, 0xe7, 0x9c, 0x77, 0xed, 0xf5, 0xf7, 0xb7, 0xf7, 0xc3, 0x6b, 0xef, 0xd9, 0x6b, 0x3b, - 0xb3, 0xeb, 0xbb, 0xe4, 0x02, 0x4c, 0x7a, 0x67, 0x6a, 0x67, 0x3b, 0xee, 0x99, 0x1e, 0x4f, 0xf7, - 0xec, 0x79, 0x31, 0x46, 0x40, 0x40, 0x89, 0x40, 0x02, 0xa4, 0x08, 0x10, 0x02, 0x21, 0xe0, 0x4f, - 0xa4, 0x08, 0x89, 0x08, 0x81, 0x12, 0x29, 0x51, 0x08, 0x42, 0x21, 0xe1, 0x23, 0x40, 0x08, 0x28, - 0x82, 0x23, 0xba, 0x0b, 0x44, 0x39, 0x81, 0xc4, 0x5f, 0x48, 0x08, 0x14, 0x50, 0x57, 0xbd, 0xaa, - 0xe9, 0xef, 0xa9, 0x9e, 0xdd, 0xd3, 0x25, 0xf0, 0xd7, 0x4e, 0x57, 0xd7, 0x7b, 0xf5, 0xde, 0xab, - 0x57, 0xaf, 0x5e, 0x7d, 0xfc, 0x7a, 0xe1, 0xfd, 0x66, 0xed, 0x63, 0xb4, 0xe4, 0x9a, 0x9b, 0x74, - 0x9a, 0x3e, 0x29, 0x6d, 0x18, 0xb5, 0x0a, 0x9d, 0xde, 0x3c, 0xb5, 0x46, 0x5d, 0xe3, 0xd4, 0xf4, - 0xe3, 0x26, 0x6d, 0x6c, 0x4d, 0xd5, 0x1b, 0xb6, 0x6b, 0x93, 0xbc, 0xac, 0x37, 0x25, 0xea, 0x4d, - 0x61, 0xbd, 0xfc, 0xf3, 0x15, 0xdb, 0xae, 0x58, 0x74, 0xda, 0xa8, 0x9b, 0xd3, 0x46, 0xad, 0x66, - 0xbb, 0x86, 0x6b, 0xda, 0x35, 0x87, 0x53, 0xe6, 0x5f, 0x4a, 0x69, 0x41, 0xb2, 0xe2, 0x55, 0x8f, - 0xa5, 0x54, 0xad, 0xd0, 0x1a, 0x75, 0x4c, 0xc1, 0xf4, 0x68, 0xab, 0xa6, 0xdd, 0x30, 0x4a, 0x56, - 0xab, 0x1e, 0x7f, 0xc4, 0x6a, 0xe3, 0x15, 0xbb, 0x62, 0xb3, 0x9f, 0xd3, 0xde, 0x2f, 0x5e, 0xaa, - 0xdf, 0x07, 0x58, 0x69, 0xae, 0x19, 0xa5, 0x92, 0xdd, 0xac, 0xb9, 0x64, 0x02, 0x7a, 0xdd, 0x86, - 0x51, 0xa6, 0x8d, 0x49, 0xed, 0x90, 0x76, 0xac, 0xbf, 0x80, 0x4f, 0xe4, 0x25, 0x18, 0x75, 0x64, - 0xad, 0x62, 0xcd, 0xae, 0x95, 0xe8, 0x64, 0xee, 0x90, 0x76, 0x6c, 0xa8, 0x30, 0xd2, 0x2a, 0xbf, - 0xe7, 0x15, 0xeb, 0x1f, 0x85, 0xe7, 0x3f, 0xe8, 0xd9, 0xaa, 0xc5, 0xf5, 0x7e, 0xa3, 0x4c, 0x1b, - 0x4e, 0x81, 0x3e, 0x6e, 0x52, 0xc7, 0x25, 0x47, 0x60, 0xc8, 0xc7, 0xca, 0x2c, 0x63, 0x4b, 0x83, - 0xad, 0xc2, 0xa5, 0x32, 0x79, 0x0e, 0xfa, 0xab, 0x46, 0xe3, 0x11, 0x65, 0x15, 0x72, 0xac, 0x42, - 0x1f, 0x2f, 0x58, 0x2a, 0xeb, 0x5f, 0xd4, 0xe0, 0x85, 0x84, 0x26, 0x9c, 0xba, 0x5d, 0x73, 0x28, - 0xb9, 0x07, 0xb0, 0xd6, 0xdc, 0x2a, 0xda, 0xac, 0x74, 0x52, 0x3b, 0xd4, 0x75, 0x6c, 0x60, 0x66, - 0x7a, 0x2a, 0xb9, 0xd7, 0xa6, 0x42, 0x9c, 0x16, 0x0c, 0xd7, 0x28, 0xf4, 0xaf, 0x35, 0xb7, 0x38, - 0x5f, 0xf2, 0x00, 0x06, 0x1c, 0x6a, 0x59, 0x82, 0x61, 0xae, 0x33, 0x86, 0xe0, 0xf1, 0xe0, 0x1c, - 0xf5, 0xdf, 0xd5, 0xe0, 0x68, 0xa8, 0xce, 0x9a, 0x6d, 0x3f, 0x5a, 0xa6, 0xae, 0x51, 0x36, 0x5c, - 0xe3, 0x35, 0xd3, 0xdd, 0x58, 0x66, 0xfa, 0x92, 0x15, 0xe8, 0xab, 0x62, 0x29, 0x33, 0xd5, 0xc0, - 0xcc, 0xf9, 0x0c, 0x0d, 0xfb, 0x99, 0x16, 0x24, 0xa3, 0x54, 0xfb, 0x92, 0x71, 0xe8, 0x31, 0x9d, - 0xb9, 0xe6, 0xd6, 0x64, 0xd7, 0x21, 0xed, 0x58, 0x5f, 0x81, 0x3f, 0xe8, 0xcf, 0x43, 0x9e, 0x19, - 0xfd, 0x26, 0xb6, 0xf8, 0xc0, 0x68, 0x18, 0x55, 0xd1, 0xab, 0x7a, 0x11, 0x9e, 0x8b, 0x7d, 0x8b, - 0x1d, 0x72, 0x03, 0x7a, 0xeb, 0xac, 0x04, 0x55, 0xd0, 0xd3, 0x54, 0xe0, 0xb4, 0x73, 0xdd, 0x5f, - 0x7e, 0xf3, 0xe0, 0xae, 0x02, 0xd2, 0xe9, 0x9f, 0xd2, 0xe0, 0x40, 0xa8, 0xd3, 0x17, 0x68, 0xdd, - 0x76, 0x4c, 0x37, 0x9b, 0x67, 0xdd, 0x05, 0x68, 0x3d, 0x33, 0xd5, 0x07, 0x66, 0xde, 0xaf, 0x66, - 0x50, 0x26, 0x91, 0x56, 0xf0, 0xd1, 0xeb, 0xef, 0x68, 0x70, 0x30, 0x51, 0x2a, 0xd4, 0x9d, 0x42, - 0x5f, 0x19, 0xcb, 0xd0, 0x15, 0x97, 0xd2, 0xda, 0x6b, 0xc3, 0x6e, 0x4a, 0x14, 0xdc, 0xac, 0xb9, - 0x8d, 0xad, 0x82, 0x64, 0x9d, 0xff, 0x28, 0x0c, 0x05, 0x5e, 0x91, 0x51, 0xe8, 0x7a, 0x44, 0xb7, - 0xd0, 0x08, 0xde, 0x4f, 0x72, 0x11, 0x7a, 0x36, 0x0d, 0xab, 0x49, 0x51, 0xed, 0x23, 0x69, 0x62, - 0x20, 0xaf, 0x02, 0xa7, 0xb8, 0x94, 0xbb, 0xa0, 0xe9, 0x07, 0x70, 0x64, 0x8b, 0x3e, 0x9e, 0x33, - 0x2c, 0xa3, 0x56, 0xa2, 0xd2, 0x07, 0xd6, 0x71, 0x58, 0x46, 0xdf, 0xa3, 0x25, 0x6e, 0x42, 0xdf, - 0x1a, 0x96, 0xa1, 0x25, 0x52, 0x45, 0x40, 0x7a, 0x74, 0x04, 0x49, 0xaa, 0x9f, 0x47, 0x5f, 0x9b, - 0xad, 0x54, 0x1a, 0xb4, 0x62, 0xb8, 0xf4, 0x55, 0xdb, 0x6a, 0x56, 0xa9, 0x70, 0x83, 0x49, 0xd8, - 0x2d, 0xba, 0x97, 0xeb, 0x2e, 0x1e, 0xf5, 0x26, 0x2a, 0x10, 0x21, 0x44, 0xf9, 0x1e, 0xc2, 0x1e, - 0x43, 0xbc, 0x2a, 0x6e, 0xb2, 0x77, 0x42, 0xd0, 0x63, 0x69, 0x82, 0xf2, 0x91, 0x8a, 0xcc, 0x46, - 0x8d, 0x20, 0x77, 0x47, 0xff, 0x70, 0x7c, 0xb3, 0xd2, 0x6f, 0xf3, 0xd0, 0x87, 0x12, 0xf2, 0xd6, - 0xfa, 0x0b, 0xf2, 0x99, 0xbc, 0x00, 0x20, 0x07, 0x2a, 0x0f, 0x3c, 0xfd, 0x85, 0x7e, 0x31, 0x52, - 0x1d, 0xfd, 0x3f, 0x45, 0x28, 0x8c, 0xf2, 0x46, 0x9d, 0x5c, 0xd8, 0xdf, 0xd2, 0x49, 0x8c, 0x8d, - 0xa0, 0x6e, 0x17, 0xd2, 0x74, 0x93, 0x8c, 0x67, 0x39, 0xad, 0x30, 0x59, 0xc9, 0x6e, 0x94, 0x0b, - 0xfb, 0x8c, 0xd8, 0xb7, 0x0e, 0x59, 0x83, 0xc9, 0x56, 0xab, 0xa8, 0x80, 0x68, 0x34, 0x97, 0xd1, - 0xa0, 0x13, 0x92, 0x93, 0xbf, 0xd8, 0xd1, 0x6f, 0xc0, 0xe1, 0xa0, 0xea, 0x01, 0x2a, 0xb4, 0x6d, - 0x20, 0xd0, 0x69, 0xa1, 0x89, 0xc4, 0x02, 0x3d, 0x8d, 0x03, 0x5a, 0x70, 0x11, 0x7a, 0xb9, 0xe8, - 0x18, 0xbb, 0x52, 0x25, 0xf7, 0x9b, 0x47, 0x44, 0x30, 0x4e, 0xad, 0x9f, 0x84, 0x49, 0xd6, 0xda, - 0x02, 0xad, 0xd9, 0xd5, 0x05, 0x5a, 0x32, 0xab, 0x86, 0x25, 0xc4, 0x1c, 0x87, 0x9e, 0xb2, 0x57, - 0x8c, 0x22, 0xf2, 0x07, 0xfd, 0x2c, 0xec, 0x8f, 0xa1, 0x40, 0xb1, 0x26, 0x61, 0x77, 0x99, 0x17, - 0x31, 0xa2, 0xee, 0x82, 0x78, 0xd4, 0x4f, 0xc7, 0x90, 0x49, 0x67, 0x9b, 0x80, 0x5e, 0xc6, 0x5c, - 0xb8, 0x1a, 0x3e, 0xe9, 0x2e, 0x86, 0xf7, 0x10, 0x11, 0x36, 0xf6, 0x2a, 0x0c, 0xb3, 0x7a, 0x45, - 0x6c, 0x43, 0xb8, 0xce, 0x4b, 0xe9, 0x21, 0xc4, 0xc7, 0x0a, 0x8d, 0x31, 0x54, 0xf6, 0x17, 0xea, - 0xf3, 0x69, 0x3d, 0x20, 0x65, 0x0e, 0x0e, 0x02, 0x2d, 0x3c, 0x08, 0x4c, 0x38, 0x92, 0xca, 0x04, - 0x75, 0x98, 0x83, 0xdd, 0x9d, 0x8e, 0x69, 0x41, 0xa8, 0xbf, 0x1e, 0xc9, 0x3c, 0x44, 0x9c, 0xcc, - 0x32, 0x07, 0xc9, 0xde, 0xce, 0xf9, 0x7b, 0xdb, 0x48, 0x9a, 0xe0, 0xa4, 0x06, 0xd7, 0x03, 0x33, - 0x89, 0x72, 0x08, 0x97, 0x44, 0xfa, 0x03, 0xd8, 0xc7, 0x9b, 0xa8, 0xdb, 0x2e, 0x57, 0xd0, 0xef, - 0x17, 0x8e, 0x6b, 0xb8, 0x4d, 0x47, 0x64, 0x7e, 0xfc, 0xa9, 0x5d, 0x00, 0xfa, 0x21, 0x74, 0xea, - 0x00, 0x47, 0x39, 0xe9, 0xef, 0xe6, 0x15, 0x85, 0xc1, 0xd3, 0xe7, 0x59, 0xc9, 0xa1, 0x20, 0xc8, - 0xf4, 0xb3, 0x30, 0x11, 0xe2, 0xae, 0x34, 0xae, 0x3f, 0x1c, 0x51, 0x53, 0xca, 0x74, 0x0d, 0x7a, - 0x79, 0x35, 0x34, 0xa0, 0xaa, 0x48, 0x48, 0xa5, 0x7f, 0x23, 0x87, 0x83, 0xcb, 0x7b, 0x27, 0x33, - 0x2c, 0x15, 0xa9, 0xbc, 0x5e, 0xb7, 0xcc, 0xaa, 0xc9, 0x93, 0x8e, 0xee, 0x02, 0x7f, 0x20, 0x0b, - 0x00, 0x2c, 0xab, 0x2c, 0x3a, 0x66, 0x99, 0xb2, 0x8c, 0x6b, 0x78, 0xe6, 0x68, 0x9a, 0x50, 0xac, - 0xd1, 0x15, 0xb3, 0x4c, 0x0b, 0xfd, 0xb6, 0xf8, 0x49, 0x8a, 0xb0, 0x9f, 0xb1, 0x2b, 0x96, 0x9a, - 0xd5, 0xa6, 0x65, 0x78, 0x94, 0xc5, 0x9a, 0xed, 0xad, 0x3c, 0x0c, 0x6b, 0xb2, 0xdb, 0x13, 0x64, - 0xee, 0x88, 0x97, 0xbc, 0x7c, 0xf3, 0xcd, 0x83, 0xcf, 0x95, 0x6c, 0xa7, 0x6a, 0x3b, 0x4e, 0xf9, - 0xd1, 0x94, 0x69, 0x4f, 0x57, 0x0d, 0x77, 0x63, 0xea, 0x2e, 0xad, 0x18, 0xa5, 0xad, 0x05, 0x5a, - 0x2a, 0xec, 0x63, 0x5c, 0xe6, 0x25, 0x93, 0x7b, 0xc8, 0x23, 0xb6, 0x81, 0xc7, 0x4d, 0xa3, 0xe6, - 0x9a, 0xee, 0xd6, 0x64, 0x4f, 0xe7, 0x0d, 0x7c, 0x10, 0x79, 0xe8, 0x7f, 0xa8, 0x61, 0x00, 0x0a, - 0x19, 0x16, 0xfb, 0xed, 0x0e, 0x8c, 0xae, 0x35, 0xb7, 0x9c, 0x62, 0xbd, 0x61, 0x96, 0x68, 0xd1, - 0xa2, 0x9b, 0xd4, 0x42, 0xa7, 0x3a, 0x9c, 0x66, 0xac, 0xbb, 0x5e, 0xc5, 0xc2, 0xb0, 0x47, 0xfa, - 0xc0, 0xa3, 0x64, 0xcf, 0x64, 0x19, 0xf6, 0x78, 0xa9, 0x78, 0x90, 0x5b, 0x4e, 0x95, 0xdb, 0x08, - 0xa3, 0x6d, 0xb1, 0xd3, 0x3f, 0xad, 0xc1, 0xf0, 0x62, 0xd3, 0xb2, 0x5a, 0xee, 0xb2, 0x5d, 0x37, - 0x23, 0x1f, 0x81, 0x3d, 0x55, 0xb3, 0x8c, 0xf2, 0x19, 0xb5, 0x72, 0xd1, 0xb5, 0xd7, 0x30, 0x6b, - 0x3b, 0x9e, 0x1a, 0xb5, 0xcc, 0x32, 0x13, 0x6c, 0xb6, 0x56, 0x5e, 0xbd, 0x3f, 0x87, 0x09, 0xeb, - 0x70, 0xd5, 0x57, 0x6a, 0xaf, 0xe9, 0x9f, 0xd4, 0x30, 0x81, 0x0a, 0x0a, 0xbd, 0xcd, 0x50, 0x40, - 0x66, 0x60, 0xe2, 0x0d, 0xd3, 0xdd, 0x28, 0x46, 0x05, 0xe7, 0xeb, 0x08, 0xe2, 0xbd, 0x5d, 0x0e, - 0x8a, 0x52, 0xc6, 0xd4, 0x28, 0x22, 0x09, 0x76, 0xfb, 0x42, 0x38, 0x84, 0xa4, 0x6a, 0x1f, 0xe4, - 0xd2, 0x0a, 0x23, 0x55, 0x74, 0xad, 0xd0, 0x7b, 0x95, 0x41, 0x9b, 0xac, 0x54, 0x2e, 0x51, 0x29, - 0x23, 0xd6, 0xbc, 0xbe, 0x79, 0x28, 0xe8, 0x1b, 0x59, 0x54, 0x12, 0x61, 0xe8, 0x67, 0xe4, 0x6a, - 0x48, 0x8c, 0x16, 0x67, 0x6e, 0xeb, 0xb6, 0xe1, 0x6c, 0xb4, 0x26, 0xcd, 0x54, 0xb5, 0x22, 0xd3, - 0x54, 0x2e, 0x66, 0x9a, 0x3a, 0x0c, 0x83, 0x3c, 0x34, 0x6d, 0x30, 0xc6, 0x93, 0x5d, 0xac, 0xc7, - 0x07, 0x58, 0x19, 0x6f, 0x4b, 0xb7, 0xc4, 0xf2, 0x27, 0x46, 0x0c, 0x54, 0x77, 0x09, 0x7a, 0x03, - 0xeb, 0xf0, 0x53, 0x69, 0xea, 0xae, 0x36, 0xcc, 0x6a, 0x95, 0x96, 0x3d, 0x76, 0x77, 0xbd, 0x40, - 0xc1, 0x78, 0x16, 0x90, 0x81, 0xdc, 0x5a, 0x58, 0x65, 0x9b, 0x12, 0xad, 0x36, 0x77, 0x4c, 0x65, - 0xdd, 0x82, 0xf7, 0xf1, 0x54, 0x82, 0x97, 0xcc, 0x96, 0xcb, 0x0d, 0xea, 0x38, 0x19, 0x5b, 0x7a, - 0x11, 0x46, 0x44, 0x33, 0x06, 0x67, 0x80, 0x6d, 0x0d, 0x1b, 0x01, 0xb6, 0xfa, 0xaf, 0xe5, 0x60, - 0x6f, 0xac, 0xc6, 0xde, 0x4a, 0x8d, 0x79, 0x1b, 0xe7, 0xcd, 0x42, 0xeb, 0xae, 0x76, 0xa1, 0x95, - 0x53, 0x78, 0x49, 0x82, 0x0c, 0xcc, 0x39, 0x75, 0x6a, 0x49, 0xe4, 0x31, 0x58, 0x37, 0x2d, 0xcb, - 0x58, 0xb3, 0xf8, 0x7c, 0xa4, 0xca, 0x40, 0x10, 0xb5, 0xf6, 0x0f, 0xba, 0x7d, 0xfb, 0x07, 0x5e, - 0xf4, 0x68, 0x79, 0x13, 0x9f, 0x32, 0x70, 0x06, 0xf3, 0x1c, 0xc6, 0x5b, 0xad, 0x96, 0xcc, 0xf2, - 0x64, 0x2f, 0x5f, 0xad, 0x96, 0xcc, 0xb2, 0xfe, 0x31, 0xcc, 0xb5, 0xa2, 0xbd, 0xbd, 0xf3, 0x9e, - 0xd5, 0x80, 0xa3, 0x6d, 0xfa, 0x7d, 0xe7, 0xdb, 0xbc, 0xea, 0x1b, 0xc2, 0xc1, 0xb8, 0xad, 0x94, - 0xe4, 0xfc, 0x97, 0xe6, 0x1b, 0x7b, 0x61, 0x7a, 0x99, 0x81, 0xf5, 0xcb, 0xc0, 0xe5, 0x73, 0xa5, - 0xb6, 0xb3, 0x74, 0x9f, 0x98, 0x31, 0xc8, 0x12, 0x0c, 0xaf, 0x51, 0xc7, 0x2d, 0xae, 0x35, 0xb7, - 0x90, 0x4d, 0x4e, 0x9d, 0xcd, 0xa0, 0x47, 0x3a, 0xd7, 0xdc, 0xe2, 0xac, 0xee, 0xc0, 0x08, 0x63, - 0xc5, 0x76, 0xd2, 0x38, 0xaf, 0x2e, 0x75, 0x5e, 0x43, 0x1e, 0xed, 0x0a, 0xb5, 0x2c, 0xc6, 0x4c, - 0x9f, 0xc7, 0x81, 0xba, 0x40, 0x1b, 0xe6, 0x26, 0xcb, 0x24, 0x3a, 0x30, 0xe1, 0x4f, 0xe6, 0xb0, - 0xdb, 0x93, 0xb9, 0xfc, 0x9f, 0x37, 0xe4, 0xef, 0x0b, 0x37, 0x6a, 0xd9, 0x60, 0x27, 0xd2, 0xda, - 0xd4, 0x84, 0xb4, 0x6b, 0xfb, 0x09, 0xa9, 0xfe, 0x79, 0x0d, 0x0e, 0x25, 0xcb, 0xfd, 0x03, 0x90, - 0x35, 0xfe, 0x7a, 0x17, 0x4c, 0xc5, 0xc6, 0xb7, 0x55, 0x7b, 0xde, 0xa8, 0x95, 0xa8, 0xf5, 0xb0, - 0xbe, 0x6a, 0xcf, 0x56, 0xbd, 0x70, 0xb4, 0x73, 0x53, 0xfa, 0x02, 0x0c, 0xac, 0x19, 0x0e, 0x2d, - 0x1a, 0x8c, 0x6f, 0x96, 0xf0, 0x0e, 0x1e, 0x1d, 0x17, 0x87, 0x2c, 0xc2, 0xe0, 0xe3, 0xa6, 0xed, - 0x4a, 0x36, 0xdd, 0xea, 0x6c, 0x06, 0x18, 0x21, 0xf2, 0xb9, 0x0b, 0x7d, 0x8e, 0xdb, 0x30, 0x5c, - 0x5a, 0xe1, 0x6b, 0x88, 0xe1, 0x99, 0x93, 0x69, 0x86, 0xe4, 0x66, 0xb1, 0xd8, 0x81, 0xca, 0x0a, - 0xd2, 0x15, 0x24, 0x07, 0x72, 0x17, 0x46, 0x1a, 0x74, 0x9d, 0x36, 0x68, 0xad, 0x44, 0x71, 0x58, - 0xf4, 0xaa, 0x3b, 0xda, 0xb0, 0xa4, 0xe5, 0xe3, 0xe2, 0x1f, 0x72, 0x70, 0xc6, 0xd7, 0x3d, 0x21, - 0x2f, 0x7b, 0x57, 0x3b, 0x29, 0x6c, 0xde, 0xae, 0x1d, 0x30, 0x6f, 0xf7, 0xbb, 0x61, 0xde, 0x9e, - 0xce, 0xcd, 0xbb, 0x8e, 0x1b, 0x3f, 0xf1, 0xd6, 0xdd, 0xb9, 0x84, 0xae, 0x01, 0xc7, 0x63, 0x26, - 0xf6, 0x8e, 0xda, 0x53, 0x4e, 0xeb, 0xbe, 0x9b, 0x83, 0xe7, 0x70, 0xea, 0x6f, 0x35, 0xf4, 0x7d, - 0x92, 0xdc, 0x5d, 0x66, 0x8b, 0x8f, 0x8a, 0x59, 0xcb, 0xe2, 0x55, 0x48, 0x12, 0xc8, 0x0c, 0xbb, - 0x3b, 0xc9, 0x0c, 0x0f, 0x8a, 0xcc, 0xd0, 0xf3, 0x9c, 0xbe, 0xb9, 0xfe, 0x77, 0xde, 0x3c, 0xc8, - 0x0b, 0xe2, 0x93, 0xc4, 0xde, 0x84, 0x24, 0x71, 0x77, 0x2b, 0x49, 0xdc, 0xc4, 0xbd, 0xbf, 0x24, - 0x3f, 0xc2, 0x89, 0xe0, 0x7e, 0x28, 0x6d, 0x3b, 0xaf, 0x90, 0xb6, 0xc5, 0xf5, 0x9d, 0x4c, 0xde, - 0x7e, 0x1c, 0x3e, 0xa0, 0xe4, 0x57, 0xef, 0x56, 0xfb, 0x3f, 0xa7, 0x45, 0x12, 0xa0, 0xf7, 0x70, - 0x19, 0xf8, 0x24, 0x92, 0x47, 0x25, 0x2c, 0x06, 0x77, 0xdc, 0x0e, 0x3f, 0x2b, 0x0e, 0x40, 0x7c, - 0x29, 0xdc, 0x7b, 0xb6, 0x9b, 0xf1, 0x49, 0x0d, 0xc0, 0x97, 0x30, 0xbc, 0x87, 0xe3, 0x5c, 0xff, - 0x82, 0x06, 0xe3, 0x0f, 0x68, 0xa3, 0x4e, 0xdd, 0xa6, 0x61, 0x71, 0x8b, 0xac, 0xb8, 0x86, 0x4b, - 0xc9, 0x03, 0x18, 0x10, 0x6a, 0xd7, 0xd6, 0x6d, 0xdc, 0x82, 0x48, 0x3d, 0xca, 0x0e, 0xb1, 0x59, - 0xaa, 0xad, 0xdb, 0x05, 0x34, 0x9d, 0xf7, 0x9b, 0x3c, 0x84, 0xc1, 0xf5, 0x66, 0xad, 0x6c, 0xd6, - 0x2a, 0x9c, 0x25, 0xdf, 0xa6, 0x9a, 0xc9, 0xc0, 0x72, 0x91, 0x93, 0x17, 0x06, 0x90, 0x8f, 0xc7, - 0x56, 0xff, 0x6c, 0x17, 0x8c, 0x2f, 0x36, 0x2d, 0x2b, 0xdc, 0xb1, 0x64, 0x21, 0xb4, 0x7f, 0xf2, - 0x72, 0xfa, 0x1e, 0x78, 0x90, 0x5a, 0xee, 0xb0, 0x7d, 0x18, 0x86, 0xeb, 0x42, 0x0a, 0xbf, 0xdc, - 0x27, 0x33, 0xc8, 0xcd, 0x2c, 0x7a, 0x7b, 0x57, 0x61, 0x48, 0x72, 0x62, 0x06, 0xf9, 0x90, 0x67, - 0x10, 0xb7, 0xd9, 0xa0, 0x0e, 0x67, 0xdc, 0xc5, 0x18, 0x9f, 0x4e, 0x63, 0x7c, 0xf3, 0x49, 0xdd, - 0x6c, 0x6c, 0x2d, 0x72, 0xaa, 0x96, 0x9d, 0x6f, 0xef, 0xf2, 0x6c, 0xc2, 0x0a, 0x19, 0xe7, 0x39, - 0xee, 0xb3, 0x38, 0xfd, 0x66, 0x08, 0xc1, 0xcc, 0xb1, 0xf9, 0xea, 0x21, 0x76, 0x6b, 0xb1, 0x67, - 0x67, 0xb6, 0x16, 0xe7, 0x7a, 0xa1, 0xdb, 0x53, 0x59, 0xb7, 0x70, 0x6d, 0x1b, 0x33, 0x2a, 0x31, - 0x12, 0xbc, 0x12, 0xde, 0xd9, 0x3b, 0xd9, 0x6e, 0x1b, 0x2c, 0xd2, 0x95, 0x72, 0x7f, 0xef, 0x32, - 0xee, 0x0b, 0x45, 0x6a, 0xa8, 0x2c, 0x02, 0xcd, 0x84, 0x00, 0x22, 0x25, 0xbd, 0x1d, 0xf2, 0xb7, - 0xec, 0x82, 0x8a, 0x5d, 0xbb, 0x39, 0x9c, 0xac, 0xc2, 0x15, 0x70, 0xf6, 0x50, 0x12, 0x97, 0x46, - 0x17, 0xbe, 0x41, 0x1e, 0xad, 0xe3, 0x41, 0x91, 0xa5, 0x88, 0x53, 0x70, 0xfe, 0xa8, 0x96, 0x37, - 0xdd, 0xc2, 0xd5, 0x55, 0xeb, 0x30, 0x8a, 0xcd, 0xb0, 0xec, 0x8a, 0x4f, 0x96, 0xb3, 0x2e, 0x7d, - 0x31, 0x72, 0x41, 0xe2, 0x81, 0xed, 0x98, 0xec, 0x4e, 0x54, 0x26, 0x3e, 0x1f, 0x83, 0xf7, 0x27, - 0xf0, 0x59, 0xaa, 0x05, 0x7b, 0x7b, 0xfb, 0x17, 0x8c, 0x1c, 0x98, 0x0e, 0xb5, 0x75, 0x73, 0x7d, - 0x9d, 0xf7, 0xf8, 0xbb, 0xd7, 0xe8, 0x2b, 0xe8, 0x1c, 0xa1, 0x0b, 0x3c, 0xf2, 0xf2, 0x4e, 0x16, - 0x63, 0xd5, 0x22, 0xbd, 0xe7, 0x33, 0xba, 0x1c, 0x80, 0x3d, 0xde, 0x4c, 0x48, 0x71, 0xf8, 0x4d, - 0xa9, 0x45, 0x51, 0xc1, 0x07, 0x8f, 0x73, 0x39, 0x0b, 0xfd, 0x11, 0xbc, 0xd8, 0xb6, 0x73, 0xe4, - 0x4e, 0x8a, 0x6c, 0xd6, 0x1b, 0x4c, 0xef, 0x4b, 0x0d, 0xb7, 0xfe, 0xc6, 0x34, 0xd1, 0xd8, 0xc7, - 0x73, 0xb0, 0x27, 0xd2, 0x1f, 0x64, 0x1f, 0xec, 0x36, 0x9d, 0xa2, 0x65, 0xd7, 0x2a, 0x8c, 0x73, - 0x5f, 0xa1, 0xd7, 0x74, 0xee, 0xda, 0xb5, 0xca, 0xf6, 0x53, 0xe6, 0x05, 0x18, 0xa0, 0x35, 0xb7, - 0xb1, 0x15, 0xd9, 0x6a, 0x69, 0xbf, 0x66, 0x66, 0x74, 0x3c, 0xec, 0xde, 0x83, 0x51, 0x2a, 0x84, - 0x2e, 0x62, 0x0a, 0x9e, 0x21, 0x80, 0x8f, 0x48, 0xe2, 0x65, 0x46, 0xab, 0x3f, 0x83, 0x93, 0xea, - 0x3e, 0x2a, 0x37, 0x2f, 0x03, 0xb6, 0x3f, 0x91, 0x3a, 0x23, 0x85, 0xb9, 0x05, 0x3b, 0xe1, 0x1a, - 0x0e, 0xeb, 0xb8, 0xe4, 0x40, 0x25, 0x8c, 0x55, 0xd1, 0x43, 0x63, 0xe9, 0xa5, 0xb8, 0xdd, 0xdb, - 0xc8, 0x51, 0xd0, 0x43, 0xf9, 0x7c, 0x24, 0x22, 0x6f, 0xc2, 0x3c, 0xab, 0x24, 0x72, 0x13, 0x23, - 0x6f, 0x22, 0x0f, 0x14, 0x7b, 0x39, 0x20, 0x76, 0x27, 0xd3, 0x7e, 0x40, 0xf4, 0x59, 0x5c, 0x29, - 0x27, 0xe4, 0x4c, 0x6a, 0x92, 0x1f, 0x49, 0x65, 0x21, 0x6f, 0x4d, 0x06, 0xdc, 0xa3, 0x83, 0x0c, - 0x2e, 0x18, 0x15, 0xe4, 0x1a, 0x25, 0x31, 0xa4, 0x61, 0xc3, 0xa5, 0xc0, 0x15, 0x47, 0x2f, 0x1a, - 0xcd, 0x76, 0x78, 0xc5, 0xb1, 0x75, 0x6f, 0x52, 0xdc, 0x1a, 0x13, 0x8c, 0xf5, 0x8b, 0x78, 0x5d, - 0x28, 0x7e, 0x46, 0x43, 0x49, 0xc6, 0xa1, 0x87, 0x5f, 0x6e, 0xd5, 0xd8, 0xe5, 0x56, 0xfe, 0xa0, - 0xef, 0xc7, 0xfb, 0x04, 0xcb, 0x76, 0xb9, 0x69, 0x51, 0x96, 0xf5, 0x89, 0x3b, 0x6f, 0xaf, 0xe3, - 0xfd, 0x87, 0xc0, 0x2b, 0x79, 0xd7, 0x20, 0x60, 0xcf, 0xd4, 0xeb, 0x26, 0xb7, 0xf8, 0x8d, 0x5e, - 0xce, 0x00, 0xed, 0xb7, 0x0f, 0xf6, 0xf2, 0x6e, 0x0b, 0x4d, 0x98, 0x7a, 0x19, 0xaf, 0x45, 0xbc, - 0xbb, 0x41, 0xfd, 0xb1, 0xff, 0xfc, 0xa5, 0x40, 0xdf, 0x30, 0x1a, 0xe5, 0x07, 0xb6, 0x59, 0x73, - 0x95, 0xee, 0xad, 0x9d, 0x81, 0x89, 0x3a, 0xe5, 0x8b, 0x82, 0xba, 0x6d, 0x5b, 0x45, 0xd7, 0xac, - 0x52, 0xc7, 0x35, 0xaa, 0x75, 0x16, 0x83, 0xbb, 0x0a, 0xe3, 0xf8, 0xf6, 0x81, 0x6d, 0x5b, 0xab, - 0xe2, 0x9d, 0xfe, 0xd3, 0xe2, 0x58, 0x33, 0xa6, 0x4d, 0xd4, 0x70, 0x0d, 0x9e, 0x13, 0x93, 0x1f, - 0xbb, 0x9b, 0x5c, 0x6c, 0xb0, 0x5a, 0xc5, 0x3a, 0xab, 0xc6, 0xe5, 0x50, 0x0b, 0xa9, 0x93, 0x7e, - 0x37, 0xf0, 0xb7, 0xa5, 0x1f, 0xc6, 0xe0, 0xe6, 0x7b, 0x33, 0x6f, 0x54, 0xeb, 0x86, 0x59, 0xa9, - 0x89, 0x2e, 0xf8, 0x5e, 0x37, 0x06, 0xb0, 0xd8, 0x3a, 0x28, 0xeb, 0x26, 0x3c, 0xef, 0xc9, 0xe8, - 0x19, 0x01, 0xa5, 0x2c, 0x61, 0x15, 0xff, 0xe2, 0xeb, 0x6c, 0xfa, 0x1a, 0xd8, 0xe0, 0x63, 0xd4, - 0xdf, 0x00, 0x0b, 0x37, 0xfb, 0xdd, 0xa4, 0x57, 0xe4, 0x27, 0x34, 0x38, 0x1a, 0x6a, 0x98, 0x75, - 0x82, 0x6c, 0xdd, 0x29, 0x6d, 0x50, 0xcf, 0x5f, 0x71, 0xfb, 0x7a, 0x2a, 0x7d, 0x5b, 0x50, 0x68, - 0xc5, 0x2d, 0x64, 0x5b, 0x85, 0xc3, 0x81, 0xa6, 0xbd, 0x22, 0x51, 0x69, 0x05, 0x19, 0x93, 0x1f, - 0x81, 0xfd, 0xae, 0xed, 0x1a, 0x56, 0x6c, 0x27, 0x65, 0x98, 0x42, 0x27, 0x18, 0x97, 0x48, 0x17, - 0x91, 0x5f, 0xd0, 0xe0, 0x84, 0x70, 0x30, 0x35, 0x55, 0xbb, 0x3b, 0x52, 0xf5, 0x18, 0x36, 0xb2, - 0xda, 0x56, 0xe3, 0x2a, 0x1c, 0x96, 0x02, 0x25, 0x6a, 0xde, 0xa3, 0xee, 0x9e, 0x2f, 0x88, 0x96, - 0x63, 0x0d, 0xa0, 0x5f, 0x46, 0x1f, 0x5d, 0x72, 0xee, 0xd7, 0x5d, 0x5a, 0xbe, 0xdf, 0x74, 0xef, - 0xaf, 0xf3, 0x0a, 0x4e, 0xfb, 0x8b, 0xb0, 0x0b, 0xe8, 0xbc, 0xb1, 0xc4, 0xe8, 0xbc, 0x87, 0x60, - 0xd0, 0x74, 0x8a, 0xb6, 0xf7, 0xbe, 0x68, 0x37, 0x5d, 0xcc, 0xaa, 0xc0, 0x94, 0x24, 0xfa, 0x8b, - 0xb8, 0xeb, 0x13, 0xe1, 0x81, 0x9b, 0x62, 0x32, 0x5e, 0x2d, 0x60, 0xee, 0x9e, 0x52, 0x11, 0x1b, - 0x4d, 0x09, 0x29, 0xfa, 0x35, 0x9c, 0x08, 0x17, 0x29, 0x5d, 0x30, 0x1d, 0xbe, 0xed, 0x86, 0x19, - 0xaf, 0x6f, 0x0a, 0x4f, 0x56, 0xfa, 0xbb, 0x1a, 0x4e, 0x83, 0x49, 0x0c, 0x50, 0x86, 0x17, 0x00, - 0x5c, 0x93, 0x36, 0xe4, 0x71, 0x91, 0x76, 0xac, 0xbb, 0xd0, 0xef, 0x95, 0xf0, 0x5d, 0x9d, 0x02, - 0x0c, 0xca, 0xec, 0xbb, 0xb5, 0x6d, 0x90, 0x9a, 0x9d, 0xf8, 0x1a, 0x5c, 0x35, 0x69, 0x83, 0xb5, - 0x36, 0x60, 0xb4, 0x9a, 0x26, 0xf7, 0x61, 0x40, 0x06, 0x35, 0xd7, 0xc2, 0x0d, 0x83, 0xa9, 0x0c, - 0x2c, 0x57, 0x57, 0xef, 0x16, 0x40, 0xc4, 0x33, 0xd7, 0x92, 0x11, 0xcc, 0x57, 0x4d, 0x38, 0xaa, - 0xe8, 0x94, 0x4f, 0x88, 0x03, 0xb4, 0xd8, 0x3a, 0x72, 0x66, 0xde, 0xbb, 0x4e, 0x69, 0xb1, 0x8c, - 0xef, 0x5b, 0xa3, 0x49, 0xcb, 0xa4, 0xb5, 0xe4, 0x3b, 0xb6, 0x1e, 0x2d, 0xd4, 0x6f, 0xe0, 0x44, - 0x83, 0xf7, 0xbd, 0x97, 0x4d, 0xa7, 0x6a, 0xb8, 0x25, 0xdf, 0x1e, 0xe6, 0x41, 0x18, 0x28, 0x37, - 0x1d, 0xb7, 0xb8, 0x6e, 0x94, 0x5c, 0x9b, 0x43, 0x53, 0xba, 0x0a, 0xe0, 0x15, 0x2d, 0xb2, 0x12, - 0xfd, 0xb7, 0xbb, 0x60, 0x24, 0x44, 0x4d, 0x74, 0x08, 0xac, 0x89, 0xd4, 0x2f, 0x62, 0x92, 0x59, - 0xe8, 0x37, 0x36, 0x0d, 0x33, 0xf3, 0x0d, 0x88, 0x16, 0x15, 0xb9, 0x08, 0x3d, 0x2c, 0x08, 0x64, - 0x49, 0xf1, 0x39, 0x05, 0x59, 0x84, 0x41, 0xbc, 0xe9, 0x5e, 0xdc, 0xb0, 0xad, 0xb2, 0xef, 0x90, - 0xa5, 0xfd, 0xe9, 0x0f, 0x12, 0xde, 0xb6, 0xad, 0x32, 0x79, 0x05, 0x86, 0xe9, 0x93, 0x3a, 0x2d, - 0x79, 0xe3, 0x97, 0xcb, 0xd2, 0xab, 0xce, 0x69, 0x48, 0x90, 0xb2, 0xe8, 0x43, 0xe6, 0x01, 0xca, - 0xe6, 0x3a, 0x1e, 0xe0, 0xf0, 0xed, 0x77, 0xc5, 0x15, 0x50, 0x8b, 0x4c, 0xff, 0x31, 0x9c, 0xdb, - 0x63, 0xba, 0x19, 0xbd, 0xed, 0x75, 0x20, 0x42, 0xf5, 0xaa, 0x7c, 0x8b, 0xa9, 0xcc, 0x07, 0x14, - 0x90, 0x02, 0x82, 0x65, 0x61, 0xcf, 0x5a, 0xb8, 0x0d, 0xfd, 0x28, 0x0e, 0x7e, 0xac, 0xea, 0x25, - 0x8a, 0x73, 0x2d, 0x6b, 0xc9, 0x50, 0xf5, 0x2b, 0x39, 0xd8, 0xeb, 0xab, 0xc2, 0x17, 0x5b, 0xcc, - 0x9e, 0xff, 0xcf, 0xfd, 0x49, 0xff, 0x65, 0x91, 0xcd, 0x27, 0x5a, 0x10, 0x7b, 0xb1, 0x06, 0x79, - 0xd1, 0x20, 0xdb, 0x41, 0xf7, 0xb7, 0xae, 0x74, 0x6d, 0x26, 0xd6, 0xfe, 0x85, 0x7d, 0x6b, 0xf1, - 0xed, 0xca, 0x69, 0x28, 0x14, 0x12, 0xbd, 0x54, 0xda, 0x74, 0x5c, 0xb3, 0x24, 0xfb, 0xf6, 0x22, - 0x0c, 0x05, 0x5e, 0x10, 0x02, 0xdd, 0x5e, 0x5c, 0xc7, 0x18, 0xcf, 0x7e, 0x7b, 0x5d, 0xd8, 0x82, - 0x06, 0x75, 0x17, 0xf8, 0x83, 0xee, 0xe0, 0x0c, 0x96, 0xd2, 0x86, 0x5c, 0xb4, 0x82, 0x23, 0x4b, - 0x55, 0x6e, 0xc9, 0x07, 0xf8, 0x14, 0x7c, 0xc4, 0x5e, 0xfe, 0xbf, 0x6c, 0xba, 0xf6, 0xab, 0x46, - 0xd3, 0x62, 0xd3, 0x84, 0x54, 0xe4, 0x8f, 0x35, 0x98, 0x08, 0xbf, 0xc1, 0xe6, 0x5f, 0x82, 0xd1, - 0xaa, 0xe1, 0xb8, 0xb4, 0x21, 0xce, 0x28, 0xa9, 0x98, 0x48, 0x47, 0x78, 0xf9, 0xac, 0x28, 0x26, - 0xa7, 0x60, 0xbc, 0x2c, 0x97, 0x00, 0xbe, 0xea, 0xfc, 0x28, 0x64, 0xac, 0xf5, 0xae, 0x45, 0x72, - 0x14, 0x86, 0x9d, 0xba, 0xed, 0xfa, 0x2a, 0xf3, 0xc3, 0xa0, 0x21, 0xaf, 0x34, 0x50, 0xad, 0xf4, - 0xc6, 0xcc, 0x49, 0x5f, 0xb5, 0x6e, 0x5e, 0xcd, 0x2b, 0x95, 0xd5, 0xf4, 0x05, 0x8c, 0xfb, 0xb8, - 0xf0, 0x5d, 0x58, 0x6c, 0xd8, 0x55, 0xa6, 0x92, 0x6f, 0xaf, 0x6b, 0xd3, 0x7b, 0x2e, 0x06, 0x77, - 0x32, 0x07, 0x59, 0xa1, 0x38, 0x6d, 0x15, 0xd7, 0xa8, 0x62, 0xb8, 0xa0, 0x4d, 0x52, 0xd7, 0xc6, - 0x62, 0x79, 0x7d, 0xdb, 0x74, 0x5c, 0xbb, 0x61, 0x96, 0x64, 0xae, 0x55, 0xb2, 0x7d, 0xa9, 0x54, - 0x2a, 0x0b, 0x17, 0x43, 0x4b, 0x12, 0x0b, 0xb9, 0x2f, 0x30, 0x24, 0x52, 0x42, 0xf6, 0x42, 0x05, - 0x85, 0x10, 0x60, 0x34, 0xe8, 0xfa, 0x9e, 0xf4, 0x3f, 0xd0, 0x60, 0x8c, 0xbd, 0xe6, 0xcd, 0x7a, - 0xc9, 0x95, 0xb7, 0x14, 0x24, 0x2f, 0x03, 0xe1, 0xcd, 0x54, 0x1a, 0x76, 0xb3, 0xee, 0xa5, 0xa3, - 0x0e, 0x2d, 0xa1, 0x8b, 0x8f, 0xb2, 0x37, 0xb7, 0xf0, 0xc5, 0x0a, 0x2d, 0x91, 0x7d, 0xb0, 0xbb, - 0x6a, 0x3c, 0x29, 0x1a, 0x15, 0x8a, 0x0e, 0xdf, 0x5b, 0x35, 0x9e, 0xcc, 0x56, 0x28, 0x99, 0x82, - 0x31, 0xb3, 0x56, 0xb2, 0x9a, 0x9e, 0xbc, 0xc6, 0x1b, 0xc5, 0x0d, 0xde, 0x08, 0x5e, 0xe9, 0xdb, - 0x83, 0xaf, 0x0a, 0xc6, 0x1b, 0xd8, 0xba, 0xe7, 0x78, 0xa2, 0xbe, 0x5c, 0xcb, 0xb3, 0x53, 0xde, - 0xc2, 0x08, 0x96, 0x8b, 0x35, 0xba, 0xfe, 0x9b, 0x1a, 0xee, 0xd7, 0x4b, 0x8c, 0x85, 0xe1, 0x9a, - 0x96, 0xe9, 0x6e, 0x29, 0x9d, 0x59, 0x96, 0x60, 0x2f, 0xd7, 0x0f, 0x45, 0xf2, 0x52, 0x54, 0x4f, - 0x71, 0x95, 0x44, 0x2c, 0xc6, 0x5e, 0x85, 0x31, 0x37, 0x5a, 0xa8, 0x7f, 0x3c, 0x17, 0xf0, 0x4d, - 0xbf, 0x88, 0x12, 0x8b, 0x01, 0x9b, 0xb2, 0x14, 0x4f, 0xf8, 0x0e, 0xb6, 0x9d, 0x0e, 0x5b, 0x24, - 0xe4, 0x35, 0x18, 0x15, 0x1a, 0x48, 0x83, 0xe5, 0x22, 0x07, 0x5a, 0x88, 0xe0, 0x95, 0x87, 0x30, - 0x58, 0xd3, 0x17, 0x78, 0x46, 0x90, 0x8b, 0x78, 0x45, 0x6e, 0xc3, 0x80, 0xbf, 0xc7, 0xba, 0x98, - 0x97, 0xbd, 0xa8, 0xe8, 0x65, 0x05, 0x68, 0xc8, 0x3e, 0x95, 0x40, 0xa2, 0x39, 0xb3, 0x66, 0x08, - 0x53, 0xb4, 0x3b, 0x57, 0xd5, 0x2b, 0x78, 0xd9, 0x3a, 0x44, 0x24, 0xc3, 0x63, 0xe8, 0xd8, 0x27, - 0xb5, 0xbf, 0x38, 0x0f, 0xec, 0x94, 0xf0, 0xa9, 0xcf, 0x63, 0x38, 0x11, 0x7b, 0xf4, 0x3f, 0x6f, - 0xd7, 0xca, 0x26, 0xbf, 0x25, 0xb6, 0xd3, 0xc8, 0xe3, 0xdf, 0xe8, 0x82, 0xc3, 0x91, 0x53, 0xe9, - 0x70, 0x7b, 0x3f, 0xb8, 0xf7, 0x3b, 0x6e, 0xc1, 0xa0, 0xdb, 0x30, 0x2b, 0x15, 0xda, 0x78, 0x90, - 0xf5, 0x80, 0x31, 0x40, 0xd8, 0xfe, 0x9e, 0xc7, 0x51, 0xd8, 0x6d, 0x3a, 0xec, 0x38, 0x9f, 0x65, - 0xa5, 0x7d, 0x73, 0x03, 0xef, 0xbc, 0x79, 0x50, 0x14, 0x15, 0xc4, 0x8f, 0xd0, 0x75, 0x90, 0xdd, - 0x09, 0xd7, 0x41, 0xfa, 0x5a, 0xd7, 0x41, 0x3e, 0xa1, 0x05, 0x2e, 0xd5, 0xa5, 0x3a, 0x85, 0x04, - 0x7d, 0x06, 0xaf, 0x24, 0x5c, 0xcd, 0x74, 0x25, 0x21, 0xcc, 0x57, 0x5e, 0x4c, 0x58, 0x46, 0x41, - 0xf0, 0x74, 0xce, 0xb5, 0xab, 0x66, 0xe9, 0xe6, 0x13, 0x5a, 0x6a, 0x7a, 0x95, 0x17, 0x29, 0x5d, - 0x6e, 0x5a, 0xae, 0x59, 0xb7, 0x4c, 0xda, 0x50, 0x9a, 0x63, 0x36, 0xf1, 0x48, 0x4a, 0x85, 0x1d, - 0x2a, 0x36, 0x0f, 0x50, 0x95, 0xa5, 0x59, 0x7c, 0xd1, 0x47, 0xa6, 0x5f, 0x10, 0xd8, 0x55, 0x66, - 0x90, 0x15, 0xd7, 0x78, 0x44, 0x6f, 0x35, 0x8c, 0xd6, 0x6d, 0xb7, 0x49, 0xd8, 0x5d, 0xf1, 0x9e, - 0x29, 0x15, 0xcb, 0x6d, 0x7c, 0xd4, 0x3f, 0x23, 0xa1, 0xa9, 0x11, 0x52, 0x14, 0xf0, 0x2a, 0xf4, - 0xb0, 0xca, 0xb8, 0x98, 0x4c, 0x0d, 0x51, 0x9c, 0x09, 0xa7, 0xe7, 0x54, 0x64, 0x05, 0x5a, 0x87, - 0x22, 0x45, 0xce, 0x48, 0x01, 0x21, 0x23, 0xcf, 0x35, 0x38, 0xaf, 0x61, 0x1a, 0x78, 0xd6, 0x57, - 0x31, 0x9b, 0x60, 0x4f, 0xb3, 0x4d, 0x77, 0xc3, 0x6e, 0x98, 0x3f, 0xca, 0xae, 0xc4, 0x45, 0x34, - 0x6e, 0x04, 0x35, 0x6e, 0xf8, 0x6d, 0x91, 0x0b, 0xda, 0xe2, 0x43, 0xb8, 0x1c, 0x8f, 0xe3, 0x8a, - 0xc6, 0x38, 0x0b, 0xbd, 0x78, 0xdd, 0x8f, 0xf7, 0xd4, 0x0b, 0xd8, 0x53, 0x7b, 0xa3, 0x3d, 0xb5, - 0x54, 0x73, 0x0b, 0x58, 0x59, 0x6e, 0x03, 0x45, 0x39, 0x3b, 0x6d, 0x05, 0xf6, 0x52, 0x88, 0x43, - 0xc9, 0xd4, 0xf2, 0x0e, 0x2d, 0xe1, 0xfb, 0x59, 0x8c, 0xaa, 0x98, 0x45, 0xc8, 0x51, 0x46, 0xc8, - 0x99, 0x8b, 0x9b, 0xa3, 0xbd, 0x8c, 0x8d, 0xa3, 0xb2, 0xf3, 0x18, 0x63, 0x2d, 0xa4, 0x3e, 0x7e, - 0x06, 0xfa, 0x25, 0x0e, 0x8e, 0x8c, 0xc3, 0xa8, 0xf7, 0xb7, 0xf8, 0xb0, 0xe6, 0xd4, 0x69, 0xc9, - 0x5c, 0x37, 0x69, 0x79, 0x74, 0x17, 0xd9, 0x0d, 0x5d, 0x73, 0xcd, 0xad, 0x51, 0x8d, 0xf4, 0x41, - 0xf7, 0x0a, 0xb5, 0xac, 0xd1, 0xdc, 0xf1, 0x57, 0x61, 0x3c, 0xee, 0x92, 0xa3, 0xc7, 0xc0, 0x47, - 0xcb, 0x18, 0x8f, 0xee, 0x22, 0x63, 0x30, 0xe2, 0xe5, 0x92, 0xaf, 0xd9, 0x0d, 0xc7, 0x5d, 0xb5, - 0xe7, 0xa8, 0xe3, 0x8e, 0x6a, 0xa2, 0xd0, 0x7b, 0x5a, 0xb5, 0xd9, 0xab, 0xd1, 0xdc, 0xcc, 0x9f, - 0x53, 0xe8, 0x61, 0x76, 0x24, 0x9f, 0xd5, 0x60, 0x2c, 0xe6, 0x3b, 0x08, 0xe4, 0x5c, 0x5b, 0xc4, - 0x7f, 0xec, 0x67, 0x15, 0xf2, 0xe7, 0x33, 0xd3, 0xf1, 0x5e, 0xd3, 0x67, 0x7e, 0xea, 0x6f, 0xbe, - 0xfd, 0xa9, 0xdc, 0xcb, 0xe4, 0xf8, 0xb4, 0xc2, 0x17, 0x47, 0x50, 0xc8, 0xbf, 0xd0, 0x80, 0x44, - 0x3f, 0x3c, 0x40, 0x2e, 0x75, 0xf4, 0xb5, 0x02, 0x2e, 0xff, 0xe5, 0x6d, 0x7c, 0xe9, 0x40, 0xbf, - 0xce, 0x74, 0xb8, 0x48, 0xce, 0xab, 0xe8, 0x30, 0xed, 0x44, 0x25, 0xff, 0x8a, 0x06, 0x7b, 0x22, - 0xfc, 0xc9, 0xc5, 0xec, 0x32, 0x09, 0x75, 0x2e, 0x75, 0x42, 0x8a, 0xda, 0x5c, 0x63, 0xda, 0x5c, - 0x20, 0xe7, 0x3a, 0xd3, 0x86, 0xfc, 0x89, 0x06, 0xa3, 0xe1, 0x2f, 0x2b, 0x90, 0x0b, 0xca, 0xfe, - 0x11, 0xfa, 0x58, 0x43, 0xfe, 0x62, 0x07, 0x94, 0xa8, 0xc9, 0x55, 0xa6, 0xc9, 0x79, 0x72, 0x56, - 0x49, 0x13, 0x1a, 0x96, 0xf9, 0xcf, 0x34, 0x18, 0x09, 0x7d, 0xae, 0x80, 0xb4, 0xf7, 0xf3, 0xf8, - 0x8f, 0x3d, 0xe4, 0x2f, 0x64, 0x27, 0x44, 0x2d, 0x16, 0x99, 0x16, 0x37, 0xc8, 0x35, 0x25, 0x2d, - 0x42, 0x1f, 0x75, 0x98, 0x7e, 0x8a, 0xbd, 0xf3, 0x8c, 0xf5, 0x4b, 0xf8, 0xeb, 0x0b, 0x24, 0xb3, - 0x58, 0x19, 0xfa, 0x25, 0xe9, 0x53, 0x0f, 0x19, 0xfb, 0x25, 0xfc, 0x99, 0x0a, 0xf2, 0x2f, 0x1a, - 0xec, 0x8d, 0x85, 0xd0, 0x93, 0xab, 0xea, 0x32, 0xc5, 0x7c, 0x83, 0x21, 0x7f, 0xad, 0x53, 0x72, - 0xd4, 0xeb, 0x1e, 0xd3, 0xeb, 0x36, 0x59, 0xcc, 0xa6, 0x97, 0x9f, 0xd7, 0xf4, 0x53, 0x99, 0x5a, - 0x3d, 0x23, 0x6f, 0x6a, 0x30, 0x11, 0xff, 0xad, 0x00, 0xd2, 0xa1, 0xa8, 0xb2, 0xf7, 0xae, 0x77, - 0x4c, 0x8f, 0xba, 0xce, 0x33, 0x5d, 0xaf, 0x92, 0xcb, 0x9d, 0xeb, 0xea, 0x90, 0x2f, 0x68, 0x30, - 0xe8, 0xff, 0xf8, 0x02, 0x39, 0xd3, 0x56, 0xac, 0x98, 0x8f, 0x52, 0xe4, 0xcf, 0x66, 0xa4, 0x42, - 0x15, 0xe6, 0x98, 0x0a, 0x57, 0xc8, 0x25, 0x25, 0x15, 0x02, 0x9f, 0x95, 0x98, 0x7e, 0xca, 0x1e, - 0x9f, 0x91, 0xcf, 0x69, 0x30, 0x14, 0xf8, 0x7c, 0x04, 0xc9, 0x26, 0x8c, 0xec, 0x90, 0x73, 0x59, - 0xc9, 0x50, 0x89, 0xcb, 0x4c, 0x89, 0xb3, 0xe4, 0x74, 0x76, 0x25, 0x1c, 0xf2, 0x3b, 0x1a, 0x0c, - 0xf8, 0xd0, 0xcc, 0xe4, 0x74, 0xfb, 0x69, 0x23, 0x82, 0xc2, 0xce, 0x9f, 0xc9, 0x46, 0x84, 0x72, - 0x9f, 0x64, 0x72, 0x1f, 0x27, 0xc7, 0xd2, 0xe4, 0x76, 0xea, 0xb6, 0x3b, 0x8d, 0xcb, 0x68, 0xf2, - 0x19, 0x0d, 0xc0, 0x87, 0x5c, 0x9f, 0xc9, 0xd0, 0xac, 0x10, 0xf5, 0x74, 0x26, 0x1a, 0x94, 0xf4, - 0x0a, 0x93, 0xf4, 0x1c, 0x39, 0xa3, 0x2a, 0x69, 0x60, 0x0c, 0x7f, 0x4e, 0x83, 0x91, 0x10, 0x68, - 0x5c, 0x61, 0x12, 0x89, 0x07, 0xbc, 0x2b, 0x4c, 0x22, 0x09, 0xf8, 0x74, 0xfd, 0x2c, 0x53, 0x62, - 0x9a, 0x9c, 0x68, 0xab, 0xc4, 0x7a, 0xd3, 0xb2, 0x8a, 0xc2, 0xe6, 0x5f, 0x8a, 0x7e, 0x31, 0xe0, - 0x5c, 0x46, 0x19, 0xd4, 0x33, 0xc4, 0x78, 0x18, 0xba, 0x7e, 0x83, 0x89, 0x7e, 0x89, 0x5c, 0xc8, - 0x22, 0x7a, 0xa0, 0x0f, 0x3e, 0xaf, 0xc1, 0x50, 0xe0, 0x6b, 0x0d, 0x0a, 0x83, 0x34, 0xee, 0xb3, - 0x19, 0x0a, 0x83, 0x34, 0xf6, 0xa3, 0x10, 0x6a, 0x29, 0x15, 0x53, 0xc1, 0x16, 0xb4, 0x01, 0x05, - 0xbe, 0xae, 0xc1, 0x68, 0x18, 0x7d, 0xa7, 0x30, 0x75, 0x27, 0xc0, 0xcf, 0x15, 0xa6, 0xee, 0x24, - 0x28, 0xb3, 0x7e, 0x87, 0x69, 0x72, 0x93, 0xcc, 0xab, 0x69, 0x12, 0x18, 0x0b, 0xd3, 0x4f, 0x03, - 0xbb, 0x5a, 0xcf, 0xc8, 0x7f, 0x68, 0x30, 0x99, 0x04, 0x64, 0x26, 0x37, 0xda, 0xcf, 0x50, 0xe9, - 0xd8, 0xf7, 0xfc, 0xec, 0x36, 0x38, 0xa0, 0xba, 0x0f, 0x99, 0xba, 0xf7, 0xc9, 0x72, 0x27, 0xea, - 0xa2, 0xaa, 0x32, 0x05, 0x13, 0xa7, 0x03, 0xcf, 0xc8, 0xb7, 0xbd, 0x05, 0x4c, 0xe4, 0x4b, 0x04, - 0x2a, 0x0b, 0x98, 0xa4, 0xaf, 0x28, 0xa8, 0x2c, 0x60, 0x12, 0x3f, 0x7d, 0x90, 0x59, 0xcd, 0xe2, - 0xda, 0x16, 0x82, 0x6c, 0x52, 0xfb, 0xf7, 0x4b, 0x1a, 0x8c, 0x86, 0x3f, 0x7d, 0xa8, 0xe0, 0xb6, - 0x09, 0x1f, 0x64, 0xcc, 0x5f, 0xec, 0x80, 0x12, 0x15, 0xbc, 0xc4, 0x14, 0x3c, 0x43, 0x66, 0xd2, - 0x14, 0x14, 0x5d, 0x18, 0xd2, 0xe2, 0x3b, 0x1a, 0xec, 0x6f, 0x8d, 0x87, 0xd5, 0x86, 0x51, 0x73, - 0x4c, 0x5a, 0x7b, 0x4f, 0x47, 0xa1, 0x7a, 0x7f, 0xb9, 0x42, 0xdc, 0xa2, 0xc2, 0x78, 0xfc, 0x5b, - 0x74, 0xcb, 0x20, 0x82, 0x42, 0xd1, 0x2d, 0x63, 0x61, 0xed, 0x8a, 0x6e, 0x19, 0x0f, 0x66, 0x57, - 0x5b, 0xf9, 0xf0, 0x99, 0x37, 0x0c, 0x14, 0x09, 0x84, 0xcf, 0x7f, 0xd3, 0x60, 0x32, 0x09, 0x39, - 0xaf, 0x10, 0x67, 0xda, 0x40, 0xf7, 0x15, 0xe2, 0x4c, 0x3b, 0xd8, 0xbe, 0x7e, 0x97, 0x69, 0xba, - 0x48, 0x16, 0xd2, 0x34, 0x6d, 0x1d, 0x74, 0xb6, 0xd1, 0xf7, 0x1b, 0x1a, 0x8c, 0xc5, 0xa0, 0xcd, - 0xc9, 0xe5, 0x0c, 0x82, 0x46, 0xe6, 0xbe, 0x2b, 0x9d, 0x11, 0xa3, 0x82, 0x0b, 0x4c, 0xc1, 0x6b, - 0xe4, 0x8a, 0xa2, 0x82, 0xf1, 0xf3, 0xe0, 0xbf, 0x6a, 0x30, 0x11, 0x0f, 0xa0, 0x54, 0x58, 0x10, - 0xa5, 0x22, 0x78, 0x15, 0x16, 0x44, 0xe9, 0xc8, 0x4d, 0xfd, 0x83, 0x4c, 0xc3, 0x3b, 0x64, 0x29, - 0x8b, 0x86, 0xe9, 0xe3, 0xf1, 0xe7, 0x73, 0x70, 0x20, 0x1d, 0xb7, 0x49, 0x16, 0x33, 0xce, 0x71, - 0x49, 0xea, 0xdf, 0xda, 0x36, 0x1f, 0x34, 0xc3, 0x47, 0x98, 0x19, 0x1e, 0x92, 0x95, 0xce, 0xcd, - 0x90, 0x3c, 0x6f, 0xfe, 0x77, 0x60, 0x20, 0x87, 0x66, 0xcf, 0x1b, 0x59, 0x1d, 0x34, 0x32, 0x87, - 0xce, 0x6e, 0x83, 0xc3, 0xb6, 0xd4, 0x57, 0x9c, 0x4f, 0xff, 0x47, 0x83, 0x83, 0x61, 0x2f, 0x0c, - 0xcf, 0x47, 0xef, 0xf9, 0x38, 0xc8, 0x6a, 0x81, 0x4c, 0x33, 0xd4, 0x1f, 0x69, 0xb0, 0x27, 0x02, - 0xd5, 0x53, 0xd8, 0x28, 0x4d, 0x02, 0xdd, 0x2a, 0x6c, 0x94, 0x26, 0x22, 0x03, 0xf5, 0x73, 0x4c, - 0xd3, 0x93, 0x64, 0x4a, 0x35, 0x68, 0xa3, 0xb8, 0x5f, 0xd5, 0x60, 0x34, 0x02, 0x16, 0xbd, 0x90, - 0x59, 0x10, 0xf5, 0x3c, 0x22, 0x09, 0x31, 0xa8, 0xb6, 0x03, 0x12, 0xd5, 0x20, 0x10, 0x93, 0xbf, - 0xa3, 0xc1, 0xbe, 0x04, 0x8c, 0x1f, 0xb9, 0x9e, 0x59, 0xb4, 0x20, 0xc2, 0x30, 0x7f, 0xa3, 0x73, - 0x06, 0xa8, 0xe2, 0x12, 0x53, 0x71, 0x9e, 0xcc, 0x66, 0x52, 0x51, 0x84, 0x9c, 0x80, 0xa6, 0x7f, - 0xa5, 0xc1, 0x78, 0x1c, 0x28, 0x83, 0x5c, 0xc9, 0x90, 0x98, 0x46, 0xd0, 0x89, 0xf9, 0xab, 0x1d, - 0x52, 0x67, 0xd9, 0x9e, 0x90, 0x05, 0xe1, 0x01, 0xf5, 0x7b, 0x1a, 0x8c, 0x89, 0xfd, 0x73, 0x1f, - 0x34, 0x44, 0x61, 0x27, 0x28, 0x8a, 0x31, 0x51, 0xd8, 0x09, 0x8a, 0x41, 0x9f, 0xa8, 0xed, 0x04, - 0x55, 0x19, 0x61, 0x91, 0x01, 0x3e, 0xc8, 0x6f, 0x69, 0xd0, 0x2f, 0x21, 0x25, 0xe4, 0x54, 0xdb, - 0x56, 0xc3, 0xb8, 0x94, 0xfc, 0x4c, 0x16, 0x12, 0x14, 0xf3, 0x04, 0x13, 0xf3, 0x45, 0x72, 0x34, - 0x4d, 0xcc, 0xba, 0x94, 0xea, 0x2f, 0x35, 0x18, 0x8b, 0x41, 0x35, 0x92, 0x2c, 0x07, 0x4d, 0x11, - 0xb9, 0xaf, 0x74, 0x46, 0x9c, 0x65, 0xdb, 0x5d, 0x6a, 0x10, 0x71, 0x95, 0x7f, 0xd7, 0x20, 0x9f, - 0x8c, 0x9b, 0x24, 0x73, 0x1d, 0xc8, 0x16, 0x02, 0xa7, 0xe6, 0xe7, 0xb7, 0xc5, 0x23, 0xcb, 0x88, - 0x4f, 0x54, 0x33, 0x30, 0xe2, 0x7f, 0x29, 0x07, 0x47, 0x14, 0x70, 0x8b, 0xe4, 0x4e, 0x06, 0xb9, - 0xdb, 0x21, 0x74, 0xf3, 0x77, 0x77, 0x86, 0x19, 0x5a, 0x63, 0x85, 0x59, 0x63, 0x99, 0xdc, 0x49, - 0x0d, 0x0f, 0xf2, 0x7a, 0x82, 0x9a, 0x5d, 0xfe, 0x4e, 0x83, 0xb1, 0x18, 0x24, 0xa3, 0x82, 0x73, - 0x27, 0xc3, 0x30, 0x15, 0x9c, 0x3b, 0x05, 0x83, 0xa9, 0xdf, 0x64, 0x7a, 0x5e, 0x27, 0x57, 0x53, - 0x7b, 0x5d, 0x7e, 0x48, 0xc1, 0xf7, 0x69, 0x89, 0x80, 0x66, 0xdf, 0xd2, 0x60, 0x5f, 0x02, 0xd8, - 0x51, 0x61, 0x36, 0x4b, 0x47, 0x6d, 0x2a, 0xcc, 0x66, 0x6d, 0x20, 0x9b, 0xaa, 0x47, 0x16, 0x1e, - 0x93, 0x44, 0x15, 0xdf, 0xd6, 0x60, 0x22, 0x1e, 0x15, 0xa9, 0x90, 0x3c, 0xa6, 0x82, 0x3b, 0x15, - 0x92, 0xc7, 0x74, 0x64, 0xa7, 0x7e, 0x9b, 0xe9, 0x37, 0x47, 0x6e, 0x64, 0xea, 0x45, 0xfc, 0x1a, - 0x47, 0xa4, 0x23, 0x13, 0xe0, 0x9c, 0x0a, 0x1d, 0x99, 0x8e, 0x6d, 0x57, 0xe8, 0xc8, 0x36, 0x48, - 0x52, 0xb5, 0x8e, 0xe4, 0x57, 0xca, 0xc4, 0xa5, 0xcb, 0xb8, 0xed, 0xb5, 0x3d, 0x51, 0xc0, 0x99, - 0xe2, 0xb6, 0x52, 0x0c, 0x4e, 0x52, 0x21, 0x19, 0x4e, 0x84, 0x3b, 0xea, 0xe7, 0x99, 0x42, 0xa7, - 0xc8, 0x74, 0x9a, 0x42, 0x31, 0x48, 0x33, 0xf2, 0xd7, 0x1a, 0x4c, 0x3e, 0x68, 0x61, 0xd7, 0xbe, - 0x2f, 0x94, 0x51, 0xba, 0xd0, 0xe1, 0x47, 0xf5, 0x85, 0x95, 0xfa, 0xaa, 0xb8, 0xf3, 0x1c, 0x04, - 0x3d, 0x2a, 0x04, 0xc8, 0x64, 0x28, 0xa7, 0x42, 0x80, 0x4c, 0xc1, 0x78, 0xea, 0x17, 0x99, 0x4e, - 0xa7, 0xc9, 0x29, 0xe5, 0x0e, 0x12, 0xd0, 0x44, 0xf2, 0x96, 0x06, 0x13, 0xf1, 0x58, 0x34, 0x85, - 0x88, 0x91, 0x8a, 0x82, 0x53, 0x88, 0x18, 0xe9, 0x20, 0x38, 0xfd, 0x16, 0x53, 0x6b, 0x96, 0x5c, - 0x4f, 0x53, 0x2b, 0x00, 0x0d, 0xf3, 0x83, 0xe2, 0x7c, 0xd7, 0x23, 0xbc, 0x2e, 0x8b, 0x41, 0x82, - 0x29, 0x74, 0x59, 0x32, 0x76, 0x4d, 0xa1, 0xcb, 0x52, 0x40, 0x6d, 0x6a, 0x5d, 0x16, 0x0b, 0x7b, - 0x23, 0x5f, 0xd3, 0x60, 0x4f, 0x04, 0xbf, 0xa4, 0x30, 0x9c, 0x92, 0xa0, 0x6d, 0x0a, 0xc3, 0x29, - 0x11, 0x2e, 0xa5, 0xb6, 0xf9, 0x17, 0x05, 0x54, 0x4d, 0x3f, 0xf5, 0x81, 0xe9, 0x9e, 0x91, 0x7f, - 0xd4, 0x60, 0x5f, 0x02, 0xa4, 0x47, 0x21, 0xa2, 0xa7, 0xc3, 0xa9, 0x14, 0x22, 0x7a, 0x1b, 0x34, - 0x91, 0x5a, 0xcc, 0x10, 0xff, 0x1a, 0x26, 0x06, 0x70, 0x44, 0xfe, 0x49, 0x83, 0xfd, 0x89, 0xb0, - 0x1d, 0x32, 0x9b, 0xc5, 0x93, 0x62, 0x61, 0x45, 0xf9, 0xb9, 0xed, 0xb0, 0xc8, 0x72, 0xdd, 0x20, - 0xe0, 0x92, 0x0c, 0xa2, 0xea, 0xad, 0xdb, 0x1c, 0xf2, 0x69, 0x0d, 0x86, 0x83, 0x70, 0xa0, 0xf4, - 0xc5, 0x5b, 0x2c, 0xa8, 0x28, 0x7d, 0xf1, 0x16, 0x8f, 0x36, 0xd2, 0xcf, 0x30, 0xb1, 0xa7, 0xc8, - 0xcb, 0xa9, 0x6b, 0x4c, 0xd3, 0xb5, 0x8b, 0x1c, 0xc7, 0x63, 0x32, 0xe1, 0xbe, 0xae, 0xe1, 0xf7, - 0x0b, 0x22, 0x90, 0x1d, 0x85, 0x91, 0x94, 0x04, 0x16, 0x52, 0x18, 0x49, 0x89, 0x08, 0x21, 0xb5, - 0x5b, 0x37, 0x5c, 0x05, 0x99, 0x0b, 0x4d, 0x3f, 0x0d, 0x60, 0x93, 0x58, 0xf6, 0x3e, 0x11, 0x0f, - 0x01, 0x52, 0x08, 0xe7, 0xa9, 0xf0, 0x23, 0x85, 0x70, 0x9e, 0x8e, 0x3d, 0x52, 0xdb, 0xcd, 0xd8, - 0x90, 0x3c, 0x8a, 0x01, 0xa0, 0x12, 0x5b, 0x97, 0xc4, 0x40, 0xc5, 0x15, 0x62, 0x78, 0x32, 0x3a, - 0x5d, 0x21, 0x86, 0xa7, 0xa0, 0xd3, 0xd5, 0xd6, 0x25, 0x7e, 0xfc, 0x7a, 0xd1, 0x5e, 0xc7, 0x09, - 0xd8, 0xf1, 0xcd, 0x4e, 0xff, 0xac, 0xc1, 0xfe, 0x44, 0x54, 0xba, 0x42, 0x70, 0x68, 0x07, 0x7d, - 0x57, 0x08, 0x0e, 0x6d, 0x41, 0xf1, 0xfa, 0x2c, 0xd3, 0xf5, 0x32, 0xb9, 0x98, 0x9a, 0xd4, 0xc6, - 0x28, 0x5a, 0x94, 0x9f, 0xe3, 0xf8, 0x8a, 0x06, 0xa3, 0x61, 0x28, 0x93, 0xc2, 0xde, 0x68, 0x02, - 0x40, 0x2b, 0x7f, 0xb1, 0x03, 0xca, 0x2c, 0xca, 0xb4, 0xfe, 0x63, 0x14, 0x92, 0x07, 0xd6, 0x20, - 0x5f, 0xd4, 0x60, 0x3c, 0x06, 0x19, 0xa4, 0x72, 0x47, 0x2c, 0x0e, 0xc9, 0xa4, 0x70, 0xfd, 0x24, - 0x16, 0xcb, 0xa4, 0x76, 0xfa, 0xbd, 0xc6, 0x48, 0x05, 0x48, 0x4d, 0x6e, 0x56, 0xff, 0x6a, 0x0e, - 0x0e, 0xb7, 0xc5, 0xa8, 0x90, 0xa5, 0xcc, 0xa7, 0x06, 0x49, 0xe0, 0xa7, 0xfc, 0x2b, 0x3b, 0xc1, - 0x0a, 0x15, 0xff, 0x61, 0xa6, 0xf8, 0x6b, 0xe4, 0x61, 0xb6, 0xc3, 0xa8, 0x52, 0x8b, 0x61, 0xea, - 0x69, 0xc4, 0xf7, 0x34, 0xd0, 0xdb, 0xe3, 0x5c, 0xc8, 0x2b, 0x8a, 0x4e, 0xa8, 0x80, 0xbd, 0xc9, - 0xdf, 0xd9, 0x11, 0x5e, 0x59, 0x52, 0x16, 0x83, 0x71, 0xe2, 0x87, 0x33, 0x45, 0x6f, 0x66, 0x6f, - 0x81, 0x6e, 0xc8, 0x9f, 0x6a, 0x30, 0x1a, 0x46, 0xcd, 0xa8, 0x5c, 0x29, 0x8e, 0xc7, 0xe8, 0xa8, - 0x5c, 0x29, 0x4e, 0x80, 0xe8, 0xa8, 0x5d, 0x12, 0x33, 0xf8, 0x1e, 0x97, 0xe3, 0x91, 0x73, 0x94, - 0xc8, 0xf4, 0x53, 0x44, 0xbe, 0x3c, 0x23, 0xdf, 0xd4, 0x80, 0x44, 0x81, 0x1c, 0x0a, 0x97, 0x1f, - 0x12, 0x11, 0x38, 0x0a, 0x97, 0x1f, 0x92, 0x71, 0x36, 0x6a, 0x37, 0xad, 0x10, 0xea, 0xe2, 0x67, - 0x20, 0x54, 0x6a, 0x3c, 0xf3, 0x29, 0xf7, 0x75, 0x0d, 0xc6, 0x62, 0xb0, 0x33, 0xa4, 0x13, 0x09, - 0x33, 0x4c, 0x8c, 0x29, 0x70, 0x1d, 0xb5, 0x1d, 0x90, 0x18, 0xfd, 0x9c, 0x96, 0x82, 0x73, 0x1b, - 0x5f, 0x7e, 0xeb, 0x80, 0xf6, 0xb5, 0xb7, 0x0e, 0x68, 0xdf, 0x7a, 0xeb, 0x80, 0xf6, 0x8b, 0x6f, - 0x1f, 0xd8, 0xf5, 0xb5, 0xb7, 0x0f, 0xec, 0xfa, 0xfb, 0xb7, 0x0f, 0xec, 0x7a, 0xfd, 0x5e, 0xc5, - 0x74, 0x37, 0x9a, 0x6b, 0x53, 0x25, 0xbb, 0x3a, 0xbd, 0x24, 0xf8, 0xdf, 0x35, 0xd6, 0x9c, 0x56, - 0x6b, 0x27, 0x4a, 0x76, 0x83, 0xfa, 0x1f, 0x37, 0x0c, 0xb3, 0x86, 0x07, 0x0d, 0x4e, 0x4b, 0x14, - 0x77, 0xab, 0x4e, 0x9d, 0xb5, 0x5e, 0xf6, 0x4f, 0x68, 0x4f, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x1e, 0xed, 0xe6, 0xe6, 0x7a, 0x77, 0x00, 0x00, + // 5988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x6d, 0x8c, 0x1c, 0xc9, + 0x55, 0xee, 0xd9, 0x0f, 0xef, 0xbe, 0xfd, 0x74, 0xed, 0x7a, 0xbd, 0x9e, 0xbb, 0xf3, 0x47, 0x3b, + 0xbe, 0xf3, 0x39, 0xe7, 0x1d, 0x7b, 0xfd, 0xfd, 0xed, 0x9d, 0x5d, 0xaf, 0xbd, 0xe7, 0x5d, 0xdb, + 0x37, 0xbb, 0xbe, 0xcb, 0x5d, 0x80, 0x49, 0xef, 0x4c, 0xef, 0x6c, 0x9f, 0x7b, 0xa6, 0xc7, 0xd3, + 0x3d, 0x7b, 0x5e, 0x8c, 0x11, 0x10, 0x50, 0x22, 0x90, 0x00, 0x29, 0x02, 0x84, 0x40, 0x08, 0xf8, + 0xc1, 0x0f, 0x44, 0x84, 0x44, 0x84, 0x40, 0x89, 0x94, 0x28, 0x04, 0xa1, 0x70, 0x41, 0x70, 0x90, + 0x23, 0xa0, 0x08, 0x8e, 0xe8, 0x2e, 0x10, 0xe5, 0x04, 0x12, 0xbf, 0x90, 0x10, 0x28, 0x41, 0x5d, + 0xf5, 0xaa, 0xa6, 0xbf, 0xa7, 0x7a, 0x76, 0x4f, 0xbe, 0x90, 0x5f, 0xde, 0xa9, 0xae, 0xf7, 0xea, + 0xbd, 0x7a, 0xaf, 0xde, 0x7b, 0x55, 0xf5, 0x5e, 0x19, 0x9e, 0x35, 0x6a, 0xaf, 0xeb, 0x25, 0xc7, + 0xd8, 0xd0, 0x73, 0xfa, 0xc3, 0xd2, 0xba, 0x56, 0xab, 0xe8, 0xb9, 0x8d, 0x13, 0xab, 0xba, 0xa3, + 0x9d, 0xc8, 0x3d, 0x68, 0xea, 0x8d, 0xcd, 0xa9, 0x7a, 0xc3, 0x72, 0x2c, 0x92, 0x15, 0xfd, 0xa6, + 0x78, 0xbf, 0x29, 0xec, 0x97, 0x7d, 0xba, 0x62, 0x59, 0x15, 0x53, 0xcf, 0x69, 0x75, 0x23, 0xa7, + 0xd5, 0x6a, 0x96, 0xa3, 0x39, 0x86, 0x55, 0xb3, 0x19, 0x64, 0xf6, 0xf9, 0x84, 0x11, 0x04, 0x2a, + 0xd6, 0xf5, 0x48, 0x42, 0xd7, 0x8a, 0x5e, 0xd3, 0x6d, 0x83, 0x23, 0x3d, 0xdc, 0xea, 0x69, 0x35, + 0xb4, 0x92, 0xd9, 0xea, 0xc7, 0x7e, 0x62, 0xb7, 0xf1, 0x8a, 0x55, 0xb1, 0xe8, 0x9f, 0x39, 0xf7, + 0x2f, 0xd6, 0xaa, 0xde, 0x01, 0x58, 0x6e, 0xae, 0x6a, 0xa5, 0x92, 0xd5, 0xac, 0x39, 0x64, 0x02, + 0x7a, 0x9d, 0x86, 0x56, 0xd6, 0x1b, 0x93, 0xca, 0x01, 0xe5, 0x48, 0x7f, 0x01, 0x7f, 0x91, 0xe7, + 0x61, 0xd4, 0x16, 0xbd, 0x8a, 0x35, 0xab, 0x56, 0xd2, 0x27, 0x33, 0x07, 0x94, 0x23, 0x43, 0x85, + 0x91, 0x56, 0xfb, 0x6d, 0xb7, 0x59, 0xfd, 0x04, 0x3c, 0xfd, 0x92, 0x3b, 0x57, 0x2d, 0xac, 0x77, + 0x1a, 0x65, 0xbd, 0x61, 0x17, 0xf4, 0x07, 0x4d, 0xdd, 0x76, 0xc8, 0x21, 0x18, 0xf2, 0xa0, 0x32, + 0xca, 0x38, 0xd2, 0x60, 0xab, 0x71, 0xa1, 0x4c, 0x9e, 0x82, 0xfe, 0xaa, 0xd6, 0xb8, 0xaf, 0xd3, + 0x0e, 0x19, 0xda, 0xa1, 0x8f, 0x35, 0x2c, 0x94, 0xd5, 0x2f, 0x2b, 0xf0, 0x4c, 0xcc, 0x10, 0x76, + 0xdd, 0xaa, 0xd9, 0x3a, 0xb9, 0x0d, 0xb0, 0xda, 0xdc, 0x2c, 0x5a, 0xb4, 0x75, 0x52, 0x39, 0xd0, + 0x75, 0x64, 0x60, 0x3a, 0x37, 0x15, 0x2f, 0xb5, 0xa9, 0x00, 0xa6, 0x39, 0xcd, 0xd1, 0x0a, 0xfd, + 0xab, 0xcd, 0x4d, 0x86, 0x97, 0xdc, 0x85, 0x01, 0x5b, 0x37, 0x4d, 0x8e, 0x30, 0xd3, 0x19, 0x42, + 0x70, 0x71, 0x30, 0x8c, 0xea, 0x1f, 0x2a, 0x70, 0x38, 0xd0, 0x67, 0xd5, 0xb2, 0xee, 0x2f, 0xe9, + 0x8e, 0x56, 0xd6, 0x1c, 0xed, 0x15, 0xc3, 0x59, 0x5f, 0xa2, 0xfc, 0x92, 0x65, 0xe8, 0xab, 0x62, + 0x2b, 0x9d, 0xaa, 0x81, 0xe9, 0xb3, 0x29, 0x06, 0xf6, 0x22, 0x2d, 0x08, 0x44, 0x89, 0xf3, 0x4b, + 0xc6, 0xa1, 0xc7, 0xb0, 0xf3, 0xcd, 0xcd, 0xc9, 0xae, 0x03, 0xca, 0x91, 0xbe, 0x02, 0xfb, 0xa1, + 0x3e, 0x0d, 0x59, 0x3a, 0xe9, 0xd7, 0x71, 0xc4, 0xbb, 0x5a, 0x43, 0xab, 0x72, 0xa9, 0xaa, 0x45, + 0x78, 0x2a, 0xf2, 0x2b, 0x0a, 0xe4, 0x1a, 0xf4, 0xd6, 0x69, 0x0b, 0xb2, 0xa0, 0x26, 0xb1, 0xc0, + 0x60, 0xf3, 0xdd, 0x5f, 0x7d, 0x67, 0xff, 0x8e, 0x02, 0xc2, 0xa9, 0x9f, 0x51, 0x60, 0x5f, 0x40, + 0xe8, 0x73, 0x7a, 0xdd, 0xb2, 0x0d, 0x27, 0x9d, 0x66, 0x2d, 0x02, 0xb4, 0x7e, 0x53, 0xd6, 0x07, + 0xa6, 0x9f, 0x95, 0x9b, 0x50, 0x4a, 0x91, 0x52, 0xf0, 0xc0, 0xab, 0xef, 0x2b, 0xb0, 0x3f, 0x96, + 0x2a, 0xe4, 0x5d, 0x87, 0xbe, 0x32, 0xb6, 0xa1, 0x2a, 0x2e, 0x24, 0x8d, 0xd7, 0x06, 0xdd, 0x14, + 0x6f, 0xb8, 0x5e, 0x73, 0x1a, 0x9b, 0x05, 0x81, 0x3a, 0xfb, 0x09, 0x18, 0xf2, 0x7d, 0x22, 0xa3, + 0xd0, 0x75, 0x5f, 0xdf, 0xc4, 0x49, 0x70, 0xff, 0x24, 0xe7, 0xa1, 0x67, 0x43, 0x33, 0x9b, 0x3a, + 0xb2, 0x7d, 0x28, 0x89, 0x0c, 0xc4, 0x55, 0x60, 0x10, 0x17, 0x32, 0xe7, 0x14, 0x75, 0x1f, 0xae, + 0x6c, 0x2e, 0xe3, 0xbc, 0x66, 0x6a, 0xb5, 0x92, 0x2e, 0x74, 0x60, 0x0d, 0x97, 0x65, 0xf8, 0x3b, + 0xce, 0xc4, 0x75, 0xe8, 0x5b, 0xc5, 0x36, 0x9c, 0x89, 0x44, 0x12, 0x10, 0x1e, 0x15, 0x41, 0x80, + 0xaa, 0x67, 0x51, 0xd7, 0x66, 0x2a, 0x95, 0x86, 0x5e, 0xd1, 0x1c, 0xfd, 0x65, 0xcb, 0x6c, 0x56, + 0x75, 0xae, 0x06, 0x93, 0xb0, 0x93, 0x8b, 0x97, 0xf1, 0xce, 0x7f, 0xaa, 0x4d, 0x64, 0x20, 0x04, + 0x88, 0xf4, 0xdd, 0x83, 0x5d, 0x1a, 0xff, 0x54, 0xdc, 0xa0, 0xdf, 0x38, 0xa1, 0x47, 0x92, 0x08, + 0x65, 0x2b, 0x15, 0x91, 0x8d, 0x6a, 0x7e, 0xec, 0xb6, 0xfa, 0x6a, 0xf4, 0xb0, 0x42, 0x6f, 0xb3, + 0xd0, 0x87, 0x14, 0xb2, 0xd1, 0xfa, 0x0b, 0xe2, 0x37, 0x79, 0x06, 0x40, 0x2c, 0x54, 0x66, 0x78, + 0xfa, 0x0b, 0xfd, 0x7c, 0xa5, 0xda, 0xea, 0x7f, 0x73, 0x53, 0x18, 0xc6, 0x8d, 0x3c, 0x39, 0xb0, + 0xb7, 0xc5, 0x13, 0x5f, 0x1b, 0x7e, 0xde, 0xce, 0x25, 0xf1, 0x26, 0x10, 0xcf, 0x30, 0x58, 0x3e, + 0x65, 0x25, 0xab, 0x51, 0x2e, 0xec, 0xd1, 0x22, 0xbf, 0xda, 0x64, 0x15, 0x26, 0x5b, 0xa3, 0x22, + 0x03, 0x7c, 0xd0, 0x4c, 0xca, 0x09, 0x9d, 0x10, 0x98, 0xbc, 0xcd, 0xb6, 0x7a, 0x0d, 0x0e, 0xfa, + 0x59, 0xf7, 0x41, 0xe1, 0xdc, 0xfa, 0x0c, 0x9d, 0x12, 0x70, 0x24, 0x26, 0xa8, 0x49, 0x18, 0x70, + 0x06, 0xe7, 0xa1, 0x97, 0x91, 0x8e, 0xb6, 0x2b, 0x91, 0x72, 0xef, 0xf4, 0x70, 0x0b, 0xc6, 0xa0, + 0xd5, 0xe3, 0x30, 0x49, 0x47, 0x9b, 0xd3, 0x6b, 0x56, 0x75, 0x4e, 0x2f, 0x19, 0x55, 0xcd, 0xe4, + 0x64, 0x8e, 0x43, 0x4f, 0xd9, 0x6d, 0x46, 0x12, 0xd9, 0x0f, 0xf5, 0x34, 0xec, 0x8d, 0x80, 0x40, + 0xb2, 0x26, 0x61, 0x67, 0x99, 0x35, 0x51, 0xa0, 0xee, 0x02, 0xff, 0xa9, 0x9e, 0x8c, 0x00, 0x13, + 0xca, 0x36, 0x01, 0xbd, 0x14, 0x39, 0x57, 0x35, 0xfc, 0xa5, 0x3a, 0x68, 0xde, 0x03, 0x40, 0x38, + 0xd8, 0xcb, 0x30, 0x4c, 0xfb, 0x15, 0x71, 0x0c, 0xae, 0x3a, 0xcf, 0x27, 0x9b, 0x10, 0x0f, 0x2a, + 0x9c, 0x8c, 0xa1, 0xb2, 0xb7, 0x51, 0x9d, 0x4d, 0x92, 0x80, 0xa0, 0xd9, 0xbf, 0x08, 0x94, 0xe0, + 0x22, 0x30, 0xe0, 0x50, 0x22, 0x12, 0xe4, 0x21, 0x0f, 0x3b, 0x3b, 0x5d, 0xd3, 0x1c, 0x50, 0x7d, + 0x2d, 0x14, 0x79, 0x70, 0x3b, 0x99, 0xc6, 0x07, 0x09, 0x69, 0x67, 0xbc, 0xd2, 0xd6, 0xe2, 0x1c, + 0x9c, 0xe0, 0xe0, 0xaa, 0xcf, 0x93, 0x48, 0x9b, 0x70, 0x01, 0xa4, 0xde, 0x85, 0x3d, 0x6c, 0x88, + 0xba, 0xe5, 0x30, 0x06, 0xbd, 0x7a, 0x61, 0x3b, 0x9a, 0xd3, 0xb4, 0x79, 0xe4, 0xc7, 0x7e, 0xb5, + 0x33, 0x40, 0x3f, 0x82, 0x4a, 0xed, 0xc3, 0x28, 0x9c, 0xfe, 0x4e, 0xd6, 0x91, 0x4f, 0x78, 0xb2, + 0x9f, 0x15, 0x18, 0x0a, 0x1c, 0x4c, 0x3d, 0x0d, 0x13, 0x01, 0xec, 0x52, 0xeb, 0xfa, 0xd5, 0x10, + 0x9b, 0x82, 0xa6, 0x2b, 0xd0, 0xcb, 0xba, 0xe1, 0x04, 0xca, 0x92, 0x84, 0x50, 0xea, 0x37, 0x32, + 0xb8, 0xb8, 0xdc, 0x6f, 0x22, 0xc2, 0x92, 0xa1, 0xca, 0x95, 0xba, 0x69, 0x54, 0x0d, 0x16, 0x74, + 0x74, 0x17, 0xd8, 0x0f, 0x32, 0x07, 0x40, 0xa3, 0xca, 0xa2, 0x6d, 0x94, 0x75, 0x1a, 0x71, 0x0d, + 0x4f, 0x1f, 0x4e, 0x22, 0x8a, 0x0e, 0xba, 0x6c, 0x94, 0xf5, 0x42, 0xbf, 0xc5, 0xff, 0x24, 0x45, + 0xd8, 0x4b, 0xd1, 0x15, 0x4b, 0xcd, 0x6a, 0xd3, 0xd4, 0x5c, 0xc8, 0x62, 0xcd, 0x72, 0x77, 0x1e, + 0x9a, 0x39, 0xd9, 0xed, 0x12, 0x92, 0x3f, 0xe4, 0x06, 0x2f, 0xdf, 0x7c, 0x67, 0xff, 0x53, 0x25, + 0xcb, 0xae, 0x5a, 0xb6, 0x5d, 0xbe, 0x3f, 0x65, 0x58, 0xb9, 0xaa, 0xe6, 0xac, 0x4f, 0x2d, 0xea, + 0x15, 0xad, 0xb4, 0x39, 0xa7, 0x97, 0x0a, 0x7b, 0x28, 0x96, 0x59, 0x81, 0xe4, 0x36, 0xe2, 0x88, + 0x1c, 0xe0, 0x41, 0x53, 0xab, 0x39, 0x86, 0xb3, 0x39, 0xd9, 0xd3, 0xf9, 0x00, 0x2f, 0x21, 0x0e, + 0xf5, 0x4f, 0x15, 0x34, 0x40, 0x81, 0x89, 0x45, 0xb9, 0xdd, 0x82, 0xd1, 0xd5, 0xe6, 0xa6, 0x5d, + 0xac, 0x37, 0x8c, 0x92, 0x5e, 0x34, 0xf5, 0x0d, 0xdd, 0x44, 0xa5, 0x3a, 0x98, 0x34, 0x59, 0x8b, + 0x6e, 0xc7, 0xc2, 0xb0, 0x0b, 0x7a, 0xd7, 0x85, 0xa4, 0xbf, 0xc9, 0x12, 0xec, 0x72, 0x43, 0x71, + 0x3f, 0xb6, 0x8c, 0x2c, 0xb6, 0x11, 0x0a, 0xdb, 0x42, 0xa7, 0x7e, 0x56, 0x81, 0xe1, 0xf9, 0xa6, + 0x69, 0xb6, 0xd4, 0x65, 0xab, 0x6a, 0x46, 0x3e, 0x0e, 0xbb, 0xaa, 0x46, 0x19, 0xe9, 0xd3, 0x6a, + 0xe5, 0xa2, 0x63, 0xad, 0x62, 0xd4, 0x76, 0x34, 0xd1, 0x6a, 0x19, 0x65, 0x4a, 0xd8, 0x4c, 0xad, + 0xbc, 0x72, 0x27, 0x8f, 0x01, 0xeb, 0x70, 0xd5, 0xd3, 0x6a, 0xad, 0xaa, 0x9f, 0x56, 0x30, 0x80, + 0xf2, 0x13, 0xbd, 0x45, 0x53, 0x40, 0xa6, 0x61, 0xe2, 0x0d, 0xc3, 0x59, 0x2f, 0x86, 0x09, 0x67, + 0xfb, 0x08, 0xe2, 0x7e, 0x5d, 0xf2, 0x93, 0x52, 0xc6, 0xd0, 0x28, 0x44, 0x09, 0x8a, 0x7d, 0x2e, + 0x68, 0x42, 0x12, 0xb9, 0xf7, 0x63, 0x69, 0x99, 0x91, 0x2a, 0xaa, 0x56, 0xe0, 0xbb, 0xcc, 0xa2, + 0x8d, 0x67, 0x2a, 0x13, 0xcb, 0x94, 0x16, 0x39, 0xbd, 0x1e, 0x3f, 0xe4, 0xd7, 0x8d, 0x34, 0x2c, + 0x71, 0x33, 0xf4, 0x73, 0x62, 0x37, 0xc4, 0x57, 0x8b, 0x9d, 0xdf, 0xbc, 0xa9, 0xd9, 0xeb, 0x2d, + 0xa7, 0x99, 0xc8, 0x56, 0xc8, 0x4d, 0x65, 0x22, 0xdc, 0xd4, 0x41, 0x18, 0x64, 0xa6, 0x69, 0x9d, + 0x22, 0x9e, 0xec, 0xa2, 0x12, 0x1f, 0xa0, 0x6d, 0x6c, 0x2c, 0xd5, 0xe4, 0xdb, 0x9f, 0x08, 0x32, + 0x90, 0xdd, 0x05, 0xe8, 0xf5, 0xed, 0xc3, 0x4f, 0x24, 0xb1, 0xbb, 0xd2, 0x30, 0xaa, 0x55, 0xbd, + 0xec, 0xa2, 0x5b, 0x74, 0x0d, 0x05, 0xc5, 0x59, 0x40, 0x04, 0xe2, 0x68, 0x61, 0x85, 0x1e, 0x4a, + 0xb4, 0xc6, 0xdc, 0x36, 0x96, 0x55, 0x13, 0x3e, 0xc2, 0x42, 0x09, 0xd6, 0x32, 0x53, 0x2e, 0x37, + 0x74, 0xdb, 0x4e, 0x39, 0xd2, 0x73, 0x30, 0xc2, 0x87, 0xd1, 0x18, 0x02, 0x1c, 0x6b, 0x58, 0xf3, + 0xa1, 0x55, 0x7f, 0x23, 0x03, 0xbb, 0x23, 0x39, 0x76, 0x77, 0x6a, 0x54, 0xdb, 0x18, 0x6e, 0x6a, + 0x5a, 0x77, 0xb4, 0x33, 0xad, 0x0c, 0xc2, 0x0d, 0x12, 0x84, 0x61, 0xce, 0xc8, 0x43, 0x0b, 0x20, + 0x17, 0xc1, 0x9a, 0x61, 0x9a, 0xda, 0xaa, 0xc9, 0xfc, 0x91, 0x2c, 0x02, 0x0e, 0xd4, 0x3a, 0x3f, + 0xe8, 0xf6, 0x9c, 0x1f, 0xb8, 0xd6, 0xa3, 0xa5, 0x4d, 0xcc, 0x65, 0xa0, 0x07, 0x73, 0x15, 0xc6, + 0xdd, 0xad, 0x96, 0x8c, 0xf2, 0x64, 0x2f, 0xdb, 0xad, 0x96, 0x8c, 0xb2, 0xfa, 0x3a, 0xc6, 0x5a, + 0x61, 0x69, 0x6f, 0xbf, 0x66, 0x35, 0xe0, 0x70, 0x1b, 0xb9, 0x6f, 0xff, 0x98, 0x97, 0x3d, 0x4b, + 0xd8, 0x6f, 0xb7, 0xa5, 0x82, 0x9c, 0xff, 0x51, 0x3c, 0x6b, 0x2f, 0x08, 0x2f, 0x22, 0xb0, 0x7e, + 0x61, 0xb8, 0x3c, 0xaa, 0xd4, 0xd6, 0x4b, 0xf7, 0x71, 0x8f, 0x41, 0x16, 0x60, 0x78, 0x55, 0xb7, + 0x9d, 0xe2, 0x6a, 0x73, 0x13, 0xd1, 0x64, 0xe4, 0xd1, 0x0c, 0xba, 0xa0, 0xf9, 0xe6, 0x26, 0x43, + 0x75, 0x0b, 0x46, 0x28, 0x2a, 0x7a, 0x92, 0xc6, 0x70, 0x75, 0xc9, 0xe3, 0x1a, 0x72, 0x61, 0x97, + 0x75, 0xd3, 0xa4, 0xc8, 0xd4, 0x59, 0x5c, 0xa8, 0x73, 0x7a, 0xc3, 0xd8, 0xa0, 0x91, 0x44, 0x07, + 0x53, 0xf8, 0xd3, 0x19, 0x14, 0x7b, 0x3c, 0x96, 0xff, 0xf7, 0x13, 0xf9, 0xc7, 0x5c, 0x8d, 0x5a, + 0x73, 0xb0, 0x1d, 0x61, 0x6d, 0x62, 0x40, 0xda, 0xb5, 0xf5, 0x80, 0x54, 0xfd, 0xa2, 0x02, 0x07, + 0xe2, 0xe9, 0xfe, 0x01, 0x88, 0x1a, 0x7f, 0xb3, 0x0b, 0xa6, 0x22, 0xed, 0xdb, 0x8a, 0x35, 0xab, + 0xd5, 0x4a, 0xba, 0x79, 0xaf, 0xbe, 0x62, 0xcd, 0x54, 0x5d, 0x73, 0xb4, 0x7d, 0x2e, 0x7d, 0x0e, + 0x06, 0x56, 0x35, 0x5b, 0x2f, 0x6a, 0x14, 0x6f, 0x1a, 0xf3, 0x0e, 0x2e, 0x1c, 0x23, 0x87, 0xcc, + 0xc3, 0xe0, 0x83, 0xa6, 0xe5, 0x08, 0x34, 0xdd, 0xf2, 0x68, 0x06, 0x28, 0x20, 0xe2, 0x59, 0x84, + 0x3e, 0xdb, 0x69, 0x68, 0x8e, 0x5e, 0x61, 0x7b, 0x88, 0xe1, 0xe9, 0xe3, 0x49, 0x13, 0xc9, 0xa6, + 0xc5, 0xa4, 0x17, 0x2a, 0xcb, 0x08, 0x57, 0x10, 0x18, 0xc8, 0x22, 0x8c, 0x34, 0xf4, 0x35, 0xbd, + 0xa1, 0xd7, 0x4a, 0x3a, 0x2e, 0x8b, 0x5e, 0x79, 0x45, 0x1b, 0x16, 0xb0, 0x6c, 0x5d, 0xfc, 0x53, + 0x06, 0x4e, 0x79, 0xc4, 0x13, 0xd0, 0xb2, 0x0f, 0x54, 0x48, 0xc1, 0xe9, 0xed, 0xda, 0x86, 0xe9, + 0xed, 0xfe, 0x20, 0xa6, 0xb7, 0xa7, 0xf3, 0xe9, 0x5d, 0xc3, 0x83, 0x9f, 0xe8, 0xd9, 0xdd, 0xbe, + 0x80, 0xae, 0x01, 0x47, 0x23, 0x1c, 0x7b, 0x47, 0xe3, 0x49, 0x87, 0x75, 0xdf, 0xcd, 0xc0, 0x53, + 0xe8, 0xfa, 0x5b, 0x03, 0x7d, 0x48, 0x82, 0xbb, 0x8b, 0x74, 0xf3, 0x51, 0x31, 0x6a, 0x69, 0xb4, + 0x0a, 0x41, 0x7c, 0x91, 0x61, 0x77, 0x27, 0x91, 0xe1, 0x7e, 0x1e, 0x19, 0xba, 0x9a, 0xd3, 0x97, + 0xef, 0x7f, 0xff, 0x9d, 0xfd, 0xac, 0x21, 0x3a, 0x48, 0xec, 0x8d, 0x09, 0x12, 0x77, 0xb6, 0x82, + 0xc4, 0x0d, 0x3c, 0xfb, 0x8b, 0xd3, 0x23, 0x74, 0x04, 0x77, 0x02, 0x61, 0xdb, 0x59, 0x89, 0xb0, + 0x2d, 0x4a, 0x76, 0x22, 0x78, 0xfb, 0x49, 0xf8, 0xa8, 0x94, 0x5e, 0x7d, 0x50, 0xe3, 0xff, 0x82, + 0x12, 0x0a, 0x80, 0x9e, 0xe0, 0x36, 0xf0, 0x61, 0x28, 0x8e, 0x8a, 0xd9, 0x0c, 0x6e, 0xfb, 0x3c, + 0xfc, 0x3c, 0xbf, 0x00, 0xf1, 0x84, 0x70, 0x4f, 0xec, 0x34, 0xe3, 0xd3, 0x0a, 0x80, 0x27, 0x60, + 0x78, 0x82, 0xeb, 0x5c, 0xfd, 0x92, 0x02, 0xe3, 0x77, 0xf5, 0x46, 0x5d, 0x77, 0x9a, 0x9a, 0xc9, + 0x66, 0x64, 0xd9, 0xd1, 0x1c, 0x9d, 0xdc, 0x85, 0x01, 0xce, 0x76, 0x6d, 0xcd, 0xc2, 0x23, 0x88, + 0xc4, 0xab, 0xec, 0x00, 0x9a, 0x85, 0xda, 0x9a, 0x55, 0xc0, 0xa9, 0x73, 0xff, 0x26, 0xf7, 0x60, + 0x70, 0xad, 0x59, 0x2b, 0x1b, 0xb5, 0x0a, 0x43, 0xc9, 0x8e, 0xa9, 0xa6, 0x53, 0xa0, 0x9c, 0x67, + 0xe0, 0x85, 0x01, 0xc4, 0xe3, 0xa2, 0x55, 0x3f, 0xdf, 0x05, 0xe3, 0xf3, 0x4d, 0xd3, 0x0c, 0x0a, + 0x96, 0xcc, 0x05, 0xce, 0x4f, 0x5e, 0x48, 0x3e, 0x03, 0xf7, 0x43, 0x8b, 0x13, 0xb6, 0x57, 0x61, + 0xb8, 0xce, 0xa9, 0xf0, 0xd2, 0x7d, 0x3c, 0x05, 0xdd, 0x74, 0x46, 0x6f, 0xee, 0x28, 0x0c, 0x09, + 0x4c, 0x74, 0x42, 0x3e, 0xe6, 0x4e, 0x88, 0xd3, 0x6c, 0xe8, 0x36, 0x43, 0xdc, 0x45, 0x11, 0x9f, + 0x4c, 0x42, 0x7c, 0xfd, 0x61, 0xdd, 0x68, 0x6c, 0xce, 0x33, 0xa8, 0xd6, 0x3c, 0xdf, 0xdc, 0xe1, + 0xce, 0x09, 0x6d, 0xa4, 0x98, 0xf3, 0x4c, 0x67, 0xd1, 0xfd, 0xa6, 0x30, 0xc1, 0x54, 0xb1, 0xd9, + 0xee, 0x21, 0xf2, 0x68, 0xb1, 0x67, 0x7b, 0x8e, 0x16, 0xf3, 0xbd, 0xd0, 0xed, 0xb2, 0xac, 0x9a, + 0xb8, 0xb7, 0x8d, 0x58, 0x95, 0x68, 0x09, 0x5e, 0x0c, 0x9e, 0xec, 0x1d, 0x6f, 0x77, 0x0c, 0x16, + 0x12, 0xa5, 0x38, 0xdf, 0xbb, 0x88, 0xe7, 0x42, 0xa1, 0x1e, 0x32, 0x9b, 0x40, 0x23, 0xc6, 0x80, + 0x08, 0x4a, 0x6f, 0x06, 0xf4, 0x2d, 0x3d, 0xa1, 0xfc, 0xd4, 0x2e, 0x8f, 0xce, 0x2a, 0xd8, 0x01, + 0xbd, 0x87, 0x14, 0xb9, 0x7a, 0x78, 0xe3, 0xeb, 0xc7, 0xd1, 0xba, 0x1e, 0xe4, 0x51, 0x0a, 0xbf, + 0x05, 0x67, 0x3f, 0xe5, 0xe2, 0xa6, 0x1b, 0xb8, 0xbb, 0x6a, 0x5d, 0x46, 0x51, 0x0f, 0x4b, 0x53, + 0x7c, 0xd2, 0xdc, 0x75, 0xa9, 0xf3, 0xa1, 0x04, 0x89, 0xbb, 0x96, 0x6d, 0xd0, 0x9c, 0xa8, 0x54, + 0x78, 0x5e, 0x87, 0x67, 0x63, 0xf0, 0x2c, 0xd4, 0xfc, 0xd2, 0xde, 0x7a, 0x82, 0x91, 0x0d, 0xb9, + 0xc0, 0x58, 0xd7, 0xd7, 0xd6, 0x98, 0xc4, 0x3f, 0xb8, 0x41, 0x5f, 0x44, 0xe5, 0x08, 0x24, 0xf0, + 0x88, 0xe4, 0x9d, 0x34, 0x93, 0x55, 0x0b, 0x49, 0xcf, 0x33, 0xe9, 0x62, 0x01, 0xf6, 0xb8, 0x9e, + 0x50, 0xc7, 0xe5, 0x37, 0x25, 0x67, 0x45, 0x39, 0x1e, 0xbc, 0xce, 0x65, 0x28, 0xd4, 0xfb, 0xf0, + 0x5c, 0x5b, 0xe1, 0x88, 0x93, 0x14, 0x31, 0xac, 0xbb, 0x98, 0x3e, 0x92, 0x68, 0x6e, 0xbd, 0x83, + 0x29, 0x7c, 0xb0, 0x4f, 0x66, 0x60, 0x57, 0x48, 0x1e, 0x64, 0x0f, 0xec, 0x34, 0xec, 0xa2, 0x69, + 0xd5, 0x2a, 0x14, 0x73, 0x5f, 0xa1, 0xd7, 0xb0, 0x17, 0xad, 0x5a, 0x65, 0xeb, 0x21, 0xf3, 0x1c, + 0x0c, 0xe8, 0x35, 0xa7, 0xb1, 0x19, 0x3a, 0x6a, 0x69, 0xbf, 0x67, 0xa6, 0x70, 0xcc, 0xec, 0xde, + 0x86, 0x51, 0x9d, 0x13, 0x5d, 0xc4, 0x10, 0x3c, 0x85, 0x01, 0x1f, 0x11, 0xc0, 0x4b, 0x14, 0x56, + 0x7d, 0x0c, 0xc7, 0xe5, 0x75, 0x54, 0x1c, 0x5e, 0xfa, 0xe6, 0xfe, 0x58, 0xa2, 0x47, 0x0a, 0x62, + 0xf3, 0x0b, 0xe1, 0x0a, 0x2e, 0xeb, 0xa8, 0xe0, 0x40, 0xc6, 0x8c, 0x55, 0x51, 0x43, 0x23, 0xe1, + 0x05, 0xb9, 0xdd, 0x5b, 0x88, 0x51, 0x50, 0x43, 0x99, 0x3f, 0xe2, 0x96, 0x37, 0xc6, 0xcf, 0x4a, + 0x91, 0xdc, 0x44, 0xcb, 0x1b, 0x8b, 0x03, 0xc9, 0x5e, 0xf2, 0x91, 0xdd, 0x89, 0xdb, 0xf7, 0x91, + 0x3e, 0x83, 0x3b, 0xe5, 0x98, 0x98, 0x49, 0x8e, 0xf2, 0x43, 0x89, 0x28, 0x44, 0xd6, 0xa4, 0x4f, + 0x3d, 0x3a, 0x88, 0xe0, 0xfc, 0x56, 0x41, 0xec, 0x51, 0x62, 0x4d, 0x1a, 0x0e, 0x5c, 0xf2, 0xa5, + 0x38, 0xba, 0xd6, 0x68, 0xa6, 0xc3, 0x14, 0xc7, 0x56, 0xde, 0x24, 0xcf, 0x1a, 0xe3, 0x88, 0xd5, + 0xf3, 0x98, 0x2e, 0x14, 0xed, 0xd1, 0x90, 0x92, 0x71, 0xe8, 0x61, 0xc9, 0xad, 0x0a, 0x4d, 0x6e, + 0x65, 0x3f, 0xd4, 0xbd, 0x98, 0x4f, 0xb0, 0x64, 0x95, 0x9b, 0xa6, 0x4e, 0xa3, 0x3e, 0x9e, 0xf3, + 0xf6, 0x1a, 0xe6, 0x3f, 0xf8, 0x3e, 0x89, 0x5c, 0x03, 0xdf, 0x7c, 0x26, 0xa6, 0x9b, 0xdc, 0x60, + 0x19, 0xbd, 0x0c, 0x01, 0xce, 0xdf, 0x1e, 0xd8, 0xcd, 0xc4, 0x16, 0x70, 0x98, 0x6a, 0x19, 0xd3, + 0x22, 0x3e, 0x58, 0xa3, 0xfe, 0xc0, 0x7b, 0xff, 0x52, 0xd0, 0xdf, 0xd0, 0x1a, 0xe5, 0xbb, 0x96, + 0x51, 0x73, 0xa4, 0xf2, 0xd6, 0x4e, 0xc1, 0x44, 0x5d, 0x67, 0x9b, 0x82, 0xba, 0x65, 0x99, 0x45, + 0xc7, 0xa8, 0xea, 0xb6, 0xa3, 0x55, 0xeb, 0xd4, 0x06, 0x77, 0x15, 0xc6, 0xf1, 0xeb, 0x5d, 0xcb, + 0x32, 0x57, 0xf8, 0x37, 0xf5, 0x67, 0xf9, 0xb5, 0x66, 0xc4, 0x98, 0xc8, 0xe1, 0x2a, 0x3c, 0xc5, + 0x9d, 0x1f, 0xcd, 0x4d, 0x2e, 0x36, 0x68, 0xaf, 0x62, 0x9d, 0x76, 0x63, 0x74, 0xc8, 0x99, 0xd4, + 0x49, 0xaf, 0x1a, 0x78, 0xc7, 0x52, 0x0f, 0xa2, 0x71, 0xf3, 0x7c, 0x99, 0xd5, 0xaa, 0x75, 0xcd, + 0xa8, 0xd4, 0xb8, 0x08, 0xbe, 0xd7, 0x8d, 0x06, 0x2c, 0xb2, 0x0f, 0xd2, 0xba, 0x01, 0x4f, 0xbb, + 0x34, 0xba, 0x93, 0x80, 0x54, 0x96, 0xb0, 0x8b, 0x77, 0xf3, 0x75, 0x3a, 0x79, 0x0f, 0xac, 0xb1, + 0x35, 0xea, 0x1d, 0x80, 0x9a, 0x9b, 0xbd, 0x4e, 0xdc, 0x27, 0xf2, 0x53, 0x0a, 0x1c, 0x0e, 0x0c, + 0x4c, 0x85, 0x20, 0x46, 0xb7, 0x4b, 0xeb, 0xba, 0xab, 0xaf, 0x78, 0x7c, 0x3d, 0x95, 0x7c, 0x2c, + 0xc8, 0xb9, 0x62, 0x33, 0x64, 0x99, 0x85, 0x83, 0xbe, 0xa1, 0xdd, 0x26, 0xde, 0x69, 0x19, 0x11, + 0x93, 0x1f, 0x83, 0xbd, 0x8e, 0xe5, 0x68, 0x66, 0xa4, 0x90, 0x52, 0xb8, 0xd0, 0x09, 0x8a, 0x25, + 0x24, 0x22, 0xf2, 0x4b, 0x0a, 0x1c, 0xe3, 0x0a, 0x26, 0xc7, 0x6a, 0x77, 0x47, 0xac, 0x1e, 0xc1, + 0x41, 0x56, 0xda, 0x72, 0x5c, 0x85, 0x83, 0x82, 0xa0, 0x58, 0xce, 0x7b, 0xe4, 0xd5, 0xf3, 0x19, + 0x3e, 0x72, 0xe4, 0x04, 0xa8, 0x17, 0x51, 0x47, 0x17, 0xec, 0x3b, 0x75, 0x47, 0x2f, 0xdf, 0x69, + 0x3a, 0x77, 0xd6, 0x58, 0x07, 0xbb, 0x7d, 0x22, 0xec, 0x1c, 0x2a, 0x6f, 0x24, 0x30, 0x2a, 0xef, + 0x01, 0x18, 0x34, 0xec, 0xa2, 0xe5, 0x7e, 0x2f, 0x5a, 0x4d, 0x07, 0xa3, 0x2a, 0x30, 0x04, 0x88, + 0xfa, 0x1c, 0x9e, 0xfa, 0x84, 0x70, 0xe0, 0xa1, 0x98, 0xb0, 0x57, 0x73, 0x18, 0xbb, 0x27, 0x74, + 0xc4, 0x41, 0x13, 0x4c, 0x8a, 0x7a, 0x05, 0x1d, 0xe1, 0xbc, 0xae, 0xcf, 0x19, 0x36, 0x3b, 0x76, + 0xc3, 0x88, 0xd7, 0xe3, 0xc2, 0xe3, 0x99, 0xfe, 0xae, 0x82, 0x6e, 0x30, 0x0e, 0x01, 0xd2, 0xf0, + 0x0c, 0x80, 0x63, 0xe8, 0x0d, 0x71, 0x5d, 0xa4, 0x1c, 0xe9, 0x2e, 0xf4, 0xbb, 0x2d, 0xec, 0x54, + 0xa7, 0x00, 0x83, 0x22, 0xfa, 0x6e, 0x1d, 0x1b, 0x24, 0x46, 0x27, 0x9e, 0x01, 0x57, 0x0c, 0xbd, + 0x41, 0x47, 0x1b, 0xd0, 0x5a, 0x43, 0x93, 0x3b, 0x30, 0x20, 0x8c, 0x9a, 0x63, 0xe2, 0x81, 0xc1, + 0x54, 0x0a, 0x94, 0x2b, 0x2b, 0x8b, 0x05, 0xe0, 0xf6, 0xcc, 0x31, 0x85, 0x05, 0xf3, 0x74, 0xe3, + 0x8a, 0xca, 0x85, 0xf2, 0x29, 0x7e, 0x81, 0x16, 0xd9, 0x47, 0x78, 0xe6, 0xdd, 0x6b, 0xba, 0x5e, + 0x2c, 0xe3, 0xf7, 0xd6, 0x6a, 0x52, 0x52, 0x71, 0x2d, 0xf0, 0x8e, 0xad, 0x85, 0x1b, 0xd5, 0x6b, + 0xe8, 0x68, 0x30, 0xdf, 0x7b, 0xc9, 0xb0, 0xab, 0x9a, 0x53, 0xf2, 0x9c, 0x61, 0xee, 0x87, 0x81, + 0x72, 0xd3, 0x76, 0x8a, 0x6b, 0x5a, 0xc9, 0xb1, 0x58, 0x69, 0x4a, 0x57, 0x01, 0xdc, 0xa6, 0x79, + 0xda, 0xa2, 0xfe, 0x6e, 0x17, 0x8c, 0x04, 0xa0, 0x89, 0x0a, 0xbe, 0x3d, 0x91, 0x7c, 0x22, 0x26, + 0x99, 0x81, 0x7e, 0x6d, 0x43, 0x33, 0x52, 0x67, 0x40, 0xb4, 0xa0, 0xc8, 0x79, 0xe8, 0xa1, 0x46, + 0x20, 0x4d, 0x88, 0xcf, 0x20, 0xc8, 0x3c, 0x0c, 0x62, 0xa6, 0x7b, 0x71, 0xdd, 0x32, 0xcb, 0x9e, + 0x4b, 0x96, 0xf6, 0xb7, 0x3f, 0x08, 0x78, 0xd3, 0x32, 0xcb, 0xe4, 0x45, 0x18, 0xd6, 0x1f, 0xd6, + 0xf5, 0x92, 0xbb, 0x7e, 0x19, 0x2d, 0xbd, 0xf2, 0x98, 0x86, 0x38, 0x28, 0xb5, 0x3e, 0x64, 0x16, + 0xa0, 0x6c, 0xac, 0xe1, 0x05, 0x0e, 0x3b, 0x7e, 0x97, 0xdc, 0x01, 0xb5, 0xc0, 0xd4, 0x9f, 0x40, + 0xdf, 0x1e, 0x21, 0x66, 0xd4, 0xb6, 0xd7, 0x80, 0x70, 0xd6, 0xab, 0xe2, 0x2b, 0x86, 0x32, 0x1f, + 0x95, 0xa8, 0x14, 0xe0, 0x28, 0x0b, 0xbb, 0x56, 0x83, 0x63, 0xa8, 0x87, 0x71, 0xf1, 0x63, 0x57, + 0x37, 0x50, 0xcc, 0xb7, 0x66, 0x4b, 0x98, 0xaa, 0x5f, 0xcb, 0xc0, 0x6e, 0x4f, 0x17, 0xb6, 0xd9, + 0xa2, 0xf3, 0xf9, 0x43, 0xae, 0x4f, 0xea, 0xaf, 0xf2, 0x68, 0x3e, 0x76, 0x06, 0x51, 0x8a, 0x35, + 0xc8, 0xf2, 0x01, 0xe9, 0x09, 0xba, 0x77, 0x74, 0xa9, 0xb4, 0x99, 0xc8, 0xf9, 0x2f, 0xec, 0x59, + 0x8d, 0x1e, 0x57, 0xb8, 0xa1, 0x80, 0x49, 0x74, 0x43, 0x69, 0xc3, 0x76, 0x8c, 0x92, 0x90, 0xed, + 0x79, 0x18, 0xf2, 0x7d, 0x20, 0x04, 0xba, 0x5d, 0xbb, 0x8e, 0x36, 0x9e, 0xfe, 0xed, 0x8a, 0xb0, + 0x55, 0x1a, 0xd4, 0x5d, 0x60, 0x3f, 0x54, 0x1b, 0x3d, 0x58, 0xc2, 0x18, 0x62, 0xd3, 0x0a, 0xb6, + 0x68, 0x95, 0xc9, 0x92, 0xf7, 0xe1, 0x29, 0x78, 0x80, 0xdd, 0xf8, 0x7f, 0xc9, 0x70, 0xac, 0x97, + 0xb5, 0xa6, 0x49, 0xdd, 0x84, 0x60, 0xe4, 0xcf, 0x15, 0x98, 0x08, 0x7e, 0xc1, 0xe1, 0x9f, 0x87, + 0xd1, 0xaa, 0x66, 0x3b, 0x7a, 0x83, 0xdf, 0x51, 0xea, 0xdc, 0x91, 0x8e, 0xb0, 0xf6, 0x19, 0xde, + 0x4c, 0x4e, 0xc0, 0x78, 0x59, 0x6c, 0x01, 0x3c, 0xdd, 0xd9, 0x55, 0xc8, 0x58, 0xeb, 0x5b, 0x0b, + 0xe4, 0x30, 0x0c, 0xdb, 0x75, 0xcb, 0xf1, 0x74, 0x66, 0x97, 0x41, 0x43, 0x6e, 0xab, 0xaf, 0x5b, + 0xe9, 0x8d, 0xe9, 0xe3, 0x9e, 0x6e, 0xdd, 0xac, 0x9b, 0xdb, 0x2a, 0xba, 0xa9, 0x73, 0x68, 0xf7, + 0x71, 0xe3, 0x3b, 0x37, 0xdf, 0xb0, 0xaa, 0x94, 0x25, 0xcf, 0x59, 0xd7, 0x86, 0xfb, 0xbb, 0xe8, + 0x3f, 0xc9, 0x1c, 0xa4, 0x8d, 0xfc, 0xb6, 0x95, 0xa7, 0x51, 0x45, 0x60, 0xc1, 0x39, 0x49, 0xdc, + 0x1b, 0xf3, 0xed, 0xf5, 0x4d, 0xc3, 0x76, 0xac, 0x86, 0x51, 0x12, 0xb1, 0x56, 0xc9, 0xf2, 0x84, + 0x52, 0x89, 0x28, 0x1c, 0x34, 0x2d, 0x71, 0x28, 0xc4, 0xb9, 0xc0, 0x10, 0x0f, 0x09, 0xe9, 0x07, + 0x99, 0x2a, 0x04, 0x1f, 0xa2, 0x41, 0xc7, 0xf3, 0x4b, 0xfd, 0x13, 0x05, 0xc6, 0xe8, 0x67, 0x36, + 0xac, 0x1b, 0x5c, 0xb9, 0x5b, 0x41, 0xf2, 0x02, 0x10, 0x36, 0x4c, 0xa5, 0x61, 0x35, 0xeb, 0x6e, + 0x38, 0x6a, 0xeb, 0x25, 0x54, 0xf1, 0x51, 0xfa, 0xe5, 0x06, 0x7e, 0x58, 0xd6, 0x4b, 0x64, 0x0f, + 0xec, 0xac, 0x6a, 0x0f, 0x8b, 0x5a, 0x45, 0x47, 0x85, 0xef, 0xad, 0x6a, 0x0f, 0x67, 0x2a, 0x3a, + 0x99, 0x82, 0x31, 0xa3, 0x56, 0x32, 0x9b, 0x2e, 0xbd, 0xda, 0x1b, 0xc5, 0x75, 0x36, 0x08, 0xa6, + 0xf4, 0xed, 0xc2, 0x4f, 0x05, 0xed, 0x0d, 0x1c, 0xdd, 0x55, 0x3c, 0xde, 0x5f, 0xec, 0xe5, 0xe9, + 0x2d, 0x6f, 0x61, 0x04, 0xdb, 0xf9, 0x1e, 0x5d, 0xfd, 0x6d, 0x05, 0xcf, 0xeb, 0x45, 0x8d, 0x85, + 0xe6, 0x18, 0xa6, 0xe1, 0x6c, 0x4a, 0xdd, 0x59, 0x96, 0x60, 0x37, 0xe3, 0x0f, 0x49, 0x72, 0x43, + 0x54, 0x97, 0x71, 0x99, 0x40, 0x2c, 0x62, 0xbe, 0x0a, 0x63, 0x4e, 0xb8, 0x51, 0xfd, 0x64, 0xc6, + 0xa7, 0x9b, 0x5e, 0x12, 0x45, 0x2d, 0x06, 0x6c, 0x88, 0x56, 0xbc, 0xe1, 0xdb, 0xdf, 0xd6, 0x1d, + 0xb6, 0x40, 0xc8, 0x2b, 0x30, 0xca, 0x39, 0x10, 0x13, 0x96, 0x09, 0x5d, 0x68, 0x61, 0x05, 0xaf, + 0xb8, 0x84, 0xc1, 0x9e, 0x1e, 0xc3, 0x33, 0x82, 0x58, 0xf8, 0x27, 0x72, 0x13, 0x06, 0xbc, 0x12, + 0xeb, 0xa2, 0x5a, 0xf6, 0x9c, 0xa4, 0x96, 0x15, 0xa0, 0x21, 0x64, 0x2a, 0x0a, 0x89, 0xf2, 0x46, + 0x4d, 0xe3, 0x53, 0xd1, 0xee, 0x5e, 0x55, 0xad, 0x60, 0xb2, 0x75, 0x00, 0x48, 0x98, 0xc7, 0xc0, + 0xb5, 0x4f, 0xa2, 0xbc, 0x18, 0x0e, 0x14, 0x4a, 0xf0, 0xd6, 0xe7, 0x01, 0x1c, 0x8b, 0xbc, 0xfa, + 0x9f, 0xb5, 0x6a, 0x65, 0x83, 0x65, 0x89, 0x6d, 0x77, 0xe5, 0xf1, 0x6f, 0x75, 0xc1, 0xc1, 0xd0, + 0xad, 0x74, 0x70, 0xbc, 0x1f, 0xdc, 0xfc, 0x8e, 0x1b, 0x30, 0xe8, 0x34, 0x8c, 0x4a, 0x45, 0x6f, + 0xdc, 0x4d, 0x7b, 0xc1, 0xe8, 0x03, 0x6c, 0x9f, 0xe7, 0x71, 0x18, 0x76, 0x1a, 0x36, 0xbd, 0xce, + 0xa7, 0x51, 0x69, 0x5f, 0x7e, 0xe0, 0xfd, 0x77, 0xf6, 0xf3, 0xa6, 0x02, 0xff, 0x23, 0x90, 0x0e, + 0xb2, 0x33, 0x26, 0x1d, 0xa4, 0xaf, 0x95, 0x0e, 0xf2, 0x29, 0xc5, 0x97, 0x54, 0x97, 0xa8, 0x14, + 0xa2, 0xe8, 0xd3, 0x9f, 0x92, 0x70, 0x39, 0x55, 0x4a, 0x42, 0x10, 0xaf, 0x48, 0x4c, 0xb8, 0x84, + 0x06, 0x84, 0x27, 0xf0, 0xa7, 0x4a, 0xaa, 0x54, 0x7f, 0x8f, 0x1f, 0x84, 0x45, 0x80, 0x23, 0xdd, + 0x33, 0xd0, 0x9d, 0x37, 0x84, 0x17, 0x39, 0x26, 0x41, 0xb5, 0x27, 0x7d, 0x82, 0x82, 0xba, 0x28, + 0x66, 0xec, 0xfb, 0xbc, 0x22, 0x33, 0x2d, 0x0a, 0x17, 0x54, 0x1c, 0xac, 0xfb, 0xef, 0x3d, 0xd3, + 0x31, 0xfb, 0x07, 0x3c, 0xb2, 0x8c, 0x45, 0xf2, 0xa1, 0x62, 0xf9, 0xeb, 0x0a, 0xec, 0x0a, 0x7d, + 0x7b, 0xa2, 0x8b, 0xde, 0xbf, 0x4c, 0xba, 0x82, 0xcb, 0x24, 0x64, 0xf7, 0xba, 0x23, 0xae, 0x0c, + 0x97, 0x70, 0xe1, 0xe0, 0x6d, 0xb2, 0x63, 0x55, 0x8d, 0xd2, 0xf5, 0x87, 0x7a, 0xa9, 0xe9, 0x2a, + 0xf7, 0xbc, 0xae, 0x2f, 0x35, 0x4d, 0xc7, 0xa8, 0x9b, 0x86, 0xde, 0x90, 0x92, 0xe9, 0x06, 0x5e, + 0xa1, 0xca, 0xa0, 0x43, 0xe9, 0xce, 0x02, 0x54, 0x45, 0x6b, 0x9a, 0x69, 0xf4, 0x80, 0xa9, 0xe7, + 0x78, 0xad, 0x35, 0x15, 0xea, 0xb2, 0xa3, 0xdd, 0xd7, 0x6f, 0x34, 0xb4, 0x56, 0x76, 0xe6, 0x24, + 0xec, 0xac, 0xb8, 0xbf, 0x75, 0x9d, 0x1f, 0x0f, 0xe1, 0x4f, 0xf5, 0x73, 0xa2, 0x94, 0x3a, 0x04, + 0x8a, 0x04, 0x5e, 0x86, 0x1e, 0xda, 0x19, 0x0f, 0x3f, 0x12, 0x5d, 0x2a, 0x43, 0xc2, 0xe0, 0x19, + 0x14, 0x59, 0x86, 0xd6, 0x25, 0x5e, 0x91, 0x21, 0x92, 0xa8, 0xe8, 0x12, 0xf7, 0x70, 0x0c, 0xd7, + 0xb0, 0xee, 0xfb, 0xad, 0xae, 0xa0, 0x9d, 0xa0, 0xbf, 0x66, 0x9a, 0xce, 0xba, 0xd5, 0x30, 0x7e, + 0x9c, 0xa6, 0x70, 0x86, 0x38, 0x6e, 0xf8, 0x39, 0x6e, 0x78, 0xe7, 0x22, 0xe3, 0x9f, 0x8b, 0x8f, + 0xe1, 0xf1, 0x51, 0x14, 0x56, 0x9c, 0x8c, 0xd3, 0xd0, 0x8b, 0xe9, 0xa9, 0x4c, 0x52, 0xcf, 0xa0, + 0xa4, 0x76, 0x87, 0x25, 0xb5, 0x50, 0x73, 0x0a, 0xd8, 0x59, 0x1c, 0x5b, 0x86, 0x31, 0xdb, 0x6d, + 0x09, 0x76, 0x43, 0xde, 0x03, 0xf1, 0xd0, 0x22, 0xe7, 0x9b, 0xb0, 0xf3, 0x57, 0x0a, 0x55, 0x4c, + 0x43, 0xe4, 0x28, 0x05, 0x64, 0xc8, 0x79, 0xa6, 0x73, 0x2f, 0x45, 0x63, 0xcb, 0x9c, 0x94, 0x47, + 0xcc, 0x16, 0x42, 0x1f, 0x3d, 0x05, 0xfd, 0xa2, 0x6e, 0x93, 0x8c, 0xc3, 0xa8, 0xfb, 0x6f, 0xf1, + 0x5e, 0xcd, 0xae, 0xeb, 0x25, 0x63, 0xcd, 0xd0, 0xcb, 0xa3, 0x3b, 0xc8, 0x4e, 0xe8, 0xca, 0x37, + 0x37, 0x47, 0x15, 0xd2, 0x07, 0xdd, 0xcb, 0xba, 0x69, 0x8e, 0x66, 0x8e, 0xbe, 0x0c, 0xe3, 0x51, + 0x49, 0xb9, 0x2e, 0x02, 0x0f, 0x2c, 0x45, 0x3c, 0xba, 0x83, 0x8c, 0xc1, 0x88, 0xbb, 0xf7, 0x79, + 0xc5, 0x6a, 0xd8, 0xce, 0x8a, 0x95, 0xd7, 0x6d, 0x67, 0x54, 0xe1, 0x8d, 0xee, 0xaf, 0x15, 0x8b, + 0x7e, 0x1a, 0xcd, 0x4c, 0x7f, 0x7f, 0x1d, 0x7a, 0xe8, 0x3c, 0x92, 0x77, 0x15, 0xd8, 0xbd, 0x78, + 0x32, 0x60, 0x73, 0xf3, 0x96, 0x75, 0x9f, 0x5c, 0x6d, 0xfb, 0x46, 0x45, 0xb2, 0xc9, 0xcf, 0x5e, + 0xeb, 0x1c, 0x01, 0x93, 0xa4, 0x3a, 0xff, 0x33, 0x5f, 0xff, 0xf6, 0x67, 0x32, 0xd7, 0xc8, 0x95, + 0x5c, 0xc2, 0x53, 0x38, 0xad, 0x6d, 0x6a, 0x6e, 0xf1, 0xa4, 0x20, 0x3f, 0xf7, 0x48, 0x98, 0xa6, + 0xc7, 0xe4, 0x4d, 0x05, 0x46, 0x16, 0x4f, 0x0a, 0x2f, 0x4a, 0xd9, 0x3b, 0x2f, 0x45, 0x5d, 0x94, + 0xe3, 0xce, 0x5e, 0xe8, 0x04, 0x14, 0x59, 0xba, 0x46, 0x59, 0xba, 0x40, 0xce, 0x25, 0xb1, 0xe4, + 0x6e, 0xa6, 0x63, 0x99, 0xf9, 0xbc, 0x02, 0x63, 0x11, 0x2f, 0xad, 0x90, 0x33, 0x6d, 0xa9, 0x8a, + 0x7c, 0xb8, 0x25, 0x7b, 0x36, 0x35, 0x1c, 0xb2, 0x32, 0x4d, 0x59, 0x79, 0x81, 0x1c, 0xcd, 0x49, + 0xbc, 0x69, 0x84, 0x44, 0xfe, 0xb5, 0x02, 0x24, 0xfc, 0xb4, 0x09, 0xb9, 0xd0, 0xd1, 0x7b, 0x28, + 0x8c, 0xfe, 0x8b, 0x5b, 0x78, 0x4b, 0x45, 0xbd, 0x4a, 0x79, 0x38, 0x4f, 0xce, 0xca, 0xf0, 0x90, + 0xb3, 0xc3, 0x94, 0xbf, 0xa9, 0xc0, 0xae, 0x10, 0x7e, 0x09, 0xe5, 0x8a, 0x7b, 0x3f, 0x20, 0x7b, + 0xa1, 0x13, 0x50, 0xe4, 0xe6, 0x0a, 0xe5, 0xe6, 0x1c, 0x39, 0xd3, 0x19, 0x37, 0xe4, 0x2f, 0x14, + 0x18, 0x0d, 0xbe, 0xdd, 0x42, 0xce, 0x49, 0xeb, 0x47, 0xe0, 0x39, 0x98, 0xec, 0xf9, 0x0e, 0x20, + 0x91, 0x93, 0xcb, 0x94, 0x93, 0xb3, 0xe4, 0xb4, 0x14, 0x27, 0x7a, 0x90, 0xe6, 0xbf, 0x52, 0x60, + 0x24, 0xf0, 0x20, 0x0a, 0x69, 0xaf, 0xe7, 0xd1, 0xcf, 0xc9, 0x64, 0xcf, 0xa5, 0x07, 0x4c, 0x63, + 0xbf, 0x44, 0x43, 0xe0, 0xd9, 0x98, 0xdc, 0x23, 0x94, 0xce, 0x63, 0x2a, 0x97, 0xe0, 0xfb, 0x2e, + 0x24, 0x35, 0x59, 0x29, 0xe4, 0x12, 0xf7, 0x98, 0x4c, 0x4a, 0xb9, 0x04, 0x1f, 0xc2, 0x21, 0xff, + 0xa6, 0xc0, 0xee, 0xc8, 0x47, 0x3a, 0xc8, 0x65, 0x79, 0x9a, 0x22, 0x5e, 0x79, 0xc9, 0x5e, 0xe9, + 0x14, 0x1c, 0xf9, 0xba, 0x4d, 0xf9, 0xba, 0x49, 0xe6, 0xd3, 0xf1, 0xe5, 0xc5, 0xe5, 0x33, 0xd2, + 0xef, 0x28, 0x30, 0x11, 0xfd, 0x1a, 0x09, 0xe9, 0x90, 0x54, 0x21, 0xbd, 0xab, 0x1d, 0xc3, 0x23, + 0xaf, 0xb3, 0x94, 0xd7, 0xcb, 0xe4, 0x62, 0xe7, 0xbc, 0xda, 0xe4, 0x4b, 0x0a, 0x0c, 0x7a, 0x9f, + 0x77, 0x21, 0xa7, 0xda, 0x92, 0x15, 0xf1, 0xec, 0x4d, 0xf6, 0x74, 0x4a, 0x28, 0x64, 0x21, 0x4f, + 0x59, 0xb8, 0x44, 0x2e, 0x48, 0xb1, 0xe0, 0x7b, 0xb8, 0x26, 0xf7, 0x88, 0xfe, 0x7c, 0x4c, 0xbe, + 0xa0, 0xc0, 0x90, 0xef, 0x81, 0x1a, 0x92, 0x8e, 0x18, 0x21, 0x90, 0x33, 0x69, 0xc1, 0x90, 0x89, + 0x8b, 0x94, 0x89, 0xd3, 0xe4, 0x64, 0x7a, 0x26, 0x6c, 0xf2, 0xfb, 0x0a, 0x0c, 0x78, 0xde, 0x4b, + 0x20, 0x27, 0xdb, 0xbb, 0x8d, 0xd0, 0x3b, 0x0f, 0xd9, 0x53, 0xe9, 0x80, 0x90, 0xee, 0xe3, 0x94, + 0xee, 0xa3, 0xe4, 0x48, 0xdb, 0x10, 0x06, 0x0f, 0xea, 0xc8, 0xe7, 0x14, 0x00, 0xcf, 0xdb, 0x18, + 0xd3, 0x29, 0x86, 0xe5, 0xa4, 0x9e, 0x4c, 0x05, 0x83, 0x94, 0x5e, 0xa2, 0x94, 0x9e, 0x21, 0xa7, + 0x64, 0x29, 0xf5, 0xad, 0xe1, 0x2f, 0x28, 0x30, 0x12, 0x78, 0x96, 0x42, 0xc2, 0x89, 0x44, 0x3f, + 0xa9, 0x21, 0xe1, 0x44, 0x62, 0x5e, 0xc0, 0x50, 0x4f, 0x53, 0x26, 0x72, 0xe4, 0x58, 0x5b, 0x26, + 0xd6, 0x9a, 0xa6, 0x59, 0xe4, 0x73, 0xfe, 0x95, 0xf0, 0x9b, 0x24, 0x67, 0x52, 0xd2, 0x20, 0x1f, + 0x21, 0x46, 0x3f, 0x74, 0x91, 0x22, 0xd8, 0xf5, 0x90, 0xee, 0x93, 0xc1, 0x17, 0x15, 0x18, 0xf2, + 0x05, 0xd2, 0x12, 0x8b, 0x34, 0x32, 0x66, 0x3f, 0x93, 0x16, 0x2c, 0x4d, 0x48, 0x45, 0x59, 0xb0, + 0x38, 0xac, 0x8f, 0x81, 0xb7, 0x15, 0x18, 0x0d, 0xd6, 0xf7, 0x4a, 0xb8, 0xee, 0x98, 0x07, 0x2e, + 0x24, 0x5c, 0x77, 0xdc, 0x63, 0x09, 0xea, 0x2d, 0xca, 0xc9, 0x75, 0x32, 0x2b, 0xc7, 0x89, 0x6f, + 0x2d, 0xe4, 0x1e, 0xf9, 0xce, 0x8f, 0x1e, 0x93, 0xff, 0x52, 0x60, 0x32, 0xee, 0xa9, 0x04, 0xd2, + 0x7e, 0xe3, 0xd7, 0xe6, 0x75, 0x8d, 0xec, 0xcc, 0x16, 0x30, 0x20, 0xbb, 0xf7, 0x28, 0xbb, 0x77, + 0xc8, 0x52, 0x27, 0xec, 0x22, 0xab, 0x22, 0x04, 0xe3, 0xf7, 0x8f, 0x8f, 0xc9, 0xb7, 0xdd, 0x0d, + 0x4c, 0xe8, 0xad, 0x13, 0x99, 0x0d, 0x4c, 0xdc, 0x3b, 0x2d, 0x32, 0x1b, 0x98, 0xd8, 0xc7, 0x55, + 0x52, 0xb3, 0x59, 0x5c, 0xdd, 0xc4, 0x32, 0xbe, 0x44, 0xf9, 0x7e, 0x45, 0x81, 0xd1, 0xe0, 0xe3, + 0xaa, 0x12, 0x6a, 0x1b, 0xf3, 0xe4, 0x6b, 0xf6, 0x7c, 0x07, 0x90, 0xc8, 0xe0, 0x05, 0xca, 0xe0, + 0x29, 0x32, 0x9d, 0xc4, 0x20, 0x17, 0x61, 0x80, 0x8b, 0xef, 0x28, 0xb0, 0xb7, 0xb5, 0x1e, 0x56, + 0x1a, 0x5a, 0xcd, 0x36, 0xf4, 0xda, 0x13, 0x5d, 0x85, 0xf2, 0xf2, 0x72, 0x38, 0xb9, 0x45, 0x89, + 0xf5, 0xf8, 0xf7, 0xa8, 0x96, 0xfe, 0x1a, 0x2d, 0x49, 0xb5, 0x8c, 0x7c, 0x38, 0x43, 0x52, 0x2d, + 0xa3, 0x9f, 0xcb, 0x90, 0xdb, 0xf9, 0x30, 0xcf, 0x1b, 0x2c, 0x45, 0xf3, 0x99, 0xcf, 0xff, 0x50, + 0x60, 0x32, 0xee, 0x6d, 0x0e, 0x09, 0x3b, 0xd3, 0xe6, 0x71, 0x10, 0x09, 0x3b, 0xd3, 0xee, 0x61, + 0x10, 0x75, 0x91, 0x72, 0x3a, 0x4f, 0xe6, 0x24, 0xcf, 0xa8, 0x92, 0xf9, 0xfd, 0x86, 0x02, 0x63, + 0x11, 0x27, 0x62, 0xe4, 0x62, 0x0a, 0x42, 0x43, 0xbe, 0xef, 0x52, 0x67, 0xc0, 0xc8, 0xe0, 0x1c, + 0x65, 0xf0, 0x0a, 0xb9, 0x24, 0xc9, 0x60, 0xb4, 0x1f, 0xfc, 0x77, 0x05, 0x26, 0xa2, 0x4b, 0xb4, + 0x25, 0x36, 0x44, 0x89, 0x6f, 0x04, 0x48, 0x6c, 0x88, 0x92, 0x6b, 0xc3, 0xd5, 0x97, 0x28, 0x87, + 0xb7, 0xc8, 0x42, 0x1a, 0x0e, 0x93, 0xd7, 0xe3, 0x2f, 0x66, 0x60, 0x5f, 0x72, 0x65, 0x38, 0x99, + 0x4f, 0xe9, 0xe3, 0xe2, 0xd8, 0xbf, 0xb1, 0x65, 0x3c, 0x38, 0x0d, 0x1f, 0xa7, 0xd3, 0x70, 0x8f, + 0x2c, 0x77, 0x3e, 0x0d, 0xf1, 0x7e, 0xf3, 0x7f, 0x7d, 0x0b, 0x39, 0xe0, 0x3d, 0xaf, 0xa5, 0x55, + 0xd0, 0x90, 0x0f, 0x9d, 0xd9, 0x02, 0x86, 0x2d, 0xb1, 0x2f, 0xe9, 0x4f, 0xbf, 0xaf, 0xc0, 0xfe, + 0xa0, 0x16, 0x06, 0xfd, 0xd1, 0x13, 0x5f, 0x07, 0x69, 0x67, 0x20, 0x95, 0x87, 0xfa, 0x33, 0x05, + 0x76, 0x85, 0x8a, 0x81, 0x25, 0x0e, 0x4a, 0xe3, 0xca, 0xfa, 0x25, 0x0e, 0x4a, 0x63, 0x6b, 0x8f, + 0xd5, 0x33, 0x94, 0xd3, 0xe3, 0x64, 0x4a, 0xd6, 0x68, 0x23, 0xb9, 0x5f, 0x53, 0x60, 0x34, 0x54, + 0x8e, 0x7e, 0x2e, 0x35, 0x21, 0xf2, 0x71, 0x44, 0x5c, 0x4d, 0xb2, 0xdc, 0x09, 0x48, 0x98, 0x03, + 0x9f, 0x4d, 0xfe, 0x8e, 0x02, 0x7b, 0x62, 0xaa, 0x88, 0x25, 0x6e, 0x7f, 0x92, 0x6b, 0x98, 0xb3, + 0xd7, 0x3a, 0x47, 0x80, 0x2c, 0x2e, 0x50, 0x16, 0x67, 0xc9, 0x4c, 0x2a, 0x16, 0xb9, 0xc9, 0xf1, + 0x71, 0xfa, 0xb7, 0x0a, 0x8c, 0x47, 0x95, 0x7d, 0x91, 0x4b, 0x29, 0x02, 0xd3, 0x50, 0xfd, 0x73, + 0xf6, 0x72, 0x87, 0xd0, 0x69, 0x8e, 0x27, 0x44, 0x43, 0x70, 0x41, 0xfd, 0x91, 0x02, 0x63, 0xfc, + 0xfc, 0xdc, 0x53, 0x7c, 0x26, 0x71, 0x12, 0x14, 0xae, 0x62, 0x93, 0x38, 0x09, 0x8a, 0xa8, 0x6f, + 0x93, 0x3b, 0x09, 0xaa, 0x52, 0xc0, 0x22, 0x2d, 0x29, 0x23, 0xbf, 0xa3, 0x40, 0xbf, 0x28, 0x5a, + 0x23, 0x27, 0xda, 0x8e, 0x1a, 0xac, 0x7c, 0xcb, 0x4e, 0xa7, 0x01, 0x41, 0x32, 0x8f, 0x51, 0x32, + 0x9f, 0x23, 0x87, 0x93, 0xc8, 0xac, 0x0b, 0xaa, 0xfe, 0x46, 0x81, 0xb1, 0x88, 0xba, 0x69, 0x92, + 0xe6, 0xa2, 0x29, 0x44, 0xf7, 0xa5, 0xce, 0x80, 0xd3, 0x1c, 0xbb, 0x0b, 0x0e, 0x42, 0xaa, 0xf2, + 0x9f, 0x0a, 0x64, 0xe3, 0x2b, 0xb3, 0x49, 0xbe, 0x03, 0xda, 0x02, 0xe5, 0xef, 0xd9, 0xd9, 0x2d, + 0xe1, 0x48, 0xb3, 0xe2, 0x63, 0xd9, 0xf4, 0xad, 0xf8, 0x5f, 0xc9, 0xc0, 0x21, 0x89, 0xca, 0x68, + 0x72, 0x2b, 0x05, 0xdd, 0xed, 0xde, 0x00, 0xc8, 0x2e, 0x6e, 0x0f, 0x32, 0x9c, 0x8d, 0x65, 0x3a, + 0x1b, 0x4b, 0xe4, 0x56, 0xa2, 0x79, 0x10, 0x09, 0x25, 0x72, 0xf3, 0xf2, 0x0f, 0x0a, 0x8c, 0x45, + 0xd4, 0x4a, 0x4b, 0x28, 0x77, 0x7c, 0xa1, 0xb7, 0x84, 0x72, 0x27, 0x54, 0x79, 0xab, 0xd7, 0x29, + 0x9f, 0x57, 0xc9, 0xe5, 0x44, 0xa9, 0x8b, 0xa7, 0x5a, 0x3c, 0x8f, 0xd7, 0xf8, 0x38, 0xfb, 0x96, + 0x02, 0x7b, 0x62, 0xca, 0xa9, 0x25, 0xbc, 0x59, 0x72, 0x5d, 0xb8, 0x84, 0x37, 0x6b, 0x53, 0x14, + 0x2e, 0x7b, 0x65, 0xe1, 0x22, 0x89, 0x65, 0xf1, 0x3d, 0x05, 0x26, 0xa2, 0xeb, 0xae, 0x25, 0x82, + 0xc7, 0xc4, 0xf2, 0x71, 0x89, 0xe0, 0x31, 0xb9, 0x76, 0x5c, 0xbd, 0x49, 0xf9, 0xcb, 0x93, 0x6b, + 0xa9, 0xa4, 0x88, 0xef, 0xfd, 0x84, 0x04, 0x19, 0x53, 0x30, 0x2e, 0x21, 0xc8, 0xe4, 0xd7, 0x33, + 0x24, 0x04, 0xd9, 0xa6, 0x56, 0x5d, 0x4e, 0x90, 0x2c, 0x1b, 0x8f, 0xa7, 0x75, 0x47, 0x1d, 0xaf, + 0xed, 0x0a, 0x97, 0xb4, 0x4a, 0x1e, 0x2b, 0x45, 0x54, 0x62, 0x4b, 0x04, 0xc3, 0xb1, 0x05, 0xd5, + 0xea, 0x59, 0xca, 0xd0, 0x09, 0x92, 0x4b, 0x62, 0x28, 0xa2, 0x96, 0x95, 0xfc, 0x9d, 0x02, 0x93, + 0x77, 0x5b, 0xd5, 0xb1, 0x1f, 0x0a, 0x66, 0xa4, 0x12, 0x3a, 0xbc, 0x75, 0xc3, 0x41, 0xa6, 0xbe, + 0xc6, 0xab, 0x2a, 0xfc, 0x65, 0xd5, 0x12, 0x06, 0x32, 0xbe, 0x58, 0x5c, 0xc2, 0x40, 0x26, 0x54, + 0x91, 0xab, 0xe7, 0x29, 0x4f, 0x27, 0xc9, 0x09, 0x69, 0x01, 0xf1, 0xe2, 0x67, 0xf2, 0xae, 0x02, + 0x13, 0xd1, 0xd5, 0xae, 0x12, 0x16, 0x23, 0xb1, 0xce, 0x56, 0xc2, 0x62, 0x24, 0x97, 0xd9, 0xaa, + 0x37, 0x28, 0x5b, 0x33, 0xe4, 0x6a, 0x12, 0x5b, 0xbe, 0xe2, 0x53, 0x6f, 0xd9, 0xad, 0x27, 0x3d, + 0xc2, 0x15, 0x59, 0x44, 0xad, 0xa9, 0x84, 0xc8, 0xe2, 0xab, 0x63, 0x25, 0x44, 0x96, 0x50, 0x36, + 0x2b, 0x27, 0xb2, 0xc8, 0xc2, 0x5a, 0xf2, 0x96, 0x02, 0xbb, 0x42, 0x15, 0x92, 0x12, 0xcb, 0x29, + 0xae, 0x78, 0x56, 0x62, 0x39, 0xc5, 0x16, 0x64, 0xca, 0x1d, 0xfe, 0x85, 0x4b, 0x36, 0x73, 0x8f, + 0x3c, 0xe5, 0xba, 0x8f, 0xc9, 0x3f, 0x2b, 0xb0, 0x27, 0xa6, 0x68, 0x50, 0xc2, 0xa2, 0x27, 0x17, + 0x6c, 0x4a, 0x58, 0xf4, 0x36, 0xf5, 0x8a, 0x72, 0x36, 0x83, 0xff, 0xe7, 0x53, 0x11, 0x25, 0x8d, + 0xe4, 0x5f, 0x14, 0xd8, 0x1b, 0x5b, 0x18, 0x48, 0x66, 0xd2, 0x68, 0x52, 0x64, 0xe1, 0x62, 0x36, + 0xbf, 0x15, 0x14, 0x69, 0xd2, 0x0d, 0x7c, 0x2a, 0x49, 0x8b, 0xe0, 0xdd, 0x7d, 0x9b, 0x4d, 0x3e, + 0xab, 0xc0, 0xb0, 0xbf, 0xe0, 0x30, 0x79, 0xf3, 0x16, 0x59, 0xb6, 0x98, 0xbc, 0x79, 0x8b, 0xae, + 0x67, 0x54, 0x4f, 0x51, 0xb2, 0xa7, 0xc8, 0x0b, 0x89, 0x7b, 0x4c, 0xc3, 0xb1, 0x8a, 0xac, 0x52, + 0xd0, 0xa0, 0xc4, 0xbd, 0xad, 0xe0, 0x0b, 0x29, 0xa1, 0xa2, 0x40, 0x89, 0x95, 0x14, 0x57, 0x8e, + 0x28, 0xb1, 0x92, 0x62, 0x6b, 0x10, 0xe5, 0xb2, 0x6e, 0x18, 0x0b, 0x22, 0x16, 0xca, 0x3d, 0xf2, + 0x55, 0x3f, 0xd2, 0xe8, 0x7d, 0x22, 0xba, 0xc8, 0x50, 0xc2, 0x9c, 0x27, 0x16, 0x38, 0x4a, 0x98, + 0xf3, 0xe4, 0xea, 0x46, 0xb9, 0xd3, 0x8c, 0x75, 0x81, 0xa3, 0xe8, 0x2b, 0x85, 0xa4, 0xfb, 0x92, + 0x88, 0xc7, 0x28, 0x24, 0x6c, 0x78, 0xfc, 0xfb, 0x17, 0x12, 0x36, 0x3c, 0xe1, 0xfd, 0x0b, 0xb9, + 0x7d, 0x89, 0xf7, 0x85, 0x8c, 0xa2, 0xb5, 0x86, 0x0e, 0xd8, 0xf6, 0x78, 0xa7, 0x7f, 0x55, 0x60, + 0x6f, 0xec, 0xbb, 0x17, 0x12, 0xc6, 0xa1, 0xdd, 0xe3, 0x1a, 0x12, 0xc6, 0xa1, 0xed, 0xb3, 0x1b, + 0xea, 0x0c, 0xe5, 0xf5, 0x22, 0x39, 0x9f, 0x18, 0xd4, 0x46, 0x30, 0x5a, 0x14, 0x0f, 0xfe, 0xbc, + 0xa9, 0xc0, 0x68, 0xb0, 0x58, 0x52, 0xe2, 0x6c, 0x34, 0xa6, 0x04, 0x34, 0x7b, 0xbe, 0x03, 0xc8, + 0x34, 0xcc, 0xb4, 0xfe, 0x4f, 0x3a, 0x04, 0xf7, 0xed, 0x41, 0xbe, 0xac, 0xc0, 0x78, 0x44, 0xed, + 0xa1, 0x4c, 0x8e, 0x58, 0x54, 0xad, 0xa4, 0x44, 0xfa, 0x49, 0x64, 0xb5, 0xa4, 0xdc, 0xed, 0xf7, + 0x2a, 0x05, 0xe5, 0x65, 0xb0, 0xe2, 0xb0, 0xfa, 0xd7, 0x33, 0x70, 0xb0, 0x6d, 0x15, 0x1c, 0x59, + 0x48, 0x7d, 0x6b, 0x10, 0x57, 0x5e, 0x99, 0x7d, 0x71, 0x3b, 0x50, 0x21, 0xe3, 0x3f, 0x4a, 0x19, + 0x7f, 0x85, 0xdc, 0x4b, 0x77, 0x19, 0x55, 0x6a, 0x21, 0x4c, 0xbc, 0x8d, 0xf8, 0x9e, 0x02, 0x6a, + 0xfb, 0xca, 0x24, 0xf2, 0xa2, 0xa4, 0x12, 0x4a, 0x54, 0x4b, 0x65, 0x6f, 0x6d, 0x0b, 0xae, 0x34, + 0x21, 0x8b, 0x46, 0x31, 0xb1, 0xcb, 0x99, 0xa2, 0xeb, 0xd9, 0x5b, 0x65, 0x52, 0xe4, 0x2f, 0x15, + 0x18, 0x0d, 0xd6, 0x39, 0xc9, 0xa4, 0x14, 0x47, 0x57, 0x55, 0xc9, 0xa4, 0x14, 0xc7, 0x14, 0x55, + 0xc9, 0x25, 0x89, 0x69, 0xec, 0x8c, 0xcb, 0x76, 0xc1, 0x59, 0x5d, 0x4f, 0xee, 0x11, 0xd6, 0x2a, + 0x3d, 0x26, 0xdf, 0x54, 0x80, 0x84, 0x4b, 0x6f, 0x24, 0x92, 0x1f, 0x62, 0x6b, 0xa6, 0x24, 0x92, + 0x1f, 0xe2, 0x2b, 0xa3, 0xe4, 0x32, 0xad, 0xb0, 0x38, 0xc9, 0x8b, 0x80, 0xb3, 0xd4, 0x78, 0xec, + 0x61, 0xee, 0x6d, 0x05, 0xc6, 0x22, 0xaa, 0x9d, 0x48, 0x27, 0x14, 0xa6, 0x70, 0x8c, 0x09, 0x05, + 0x56, 0x72, 0x27, 0x20, 0x11, 0xfc, 0xd9, 0x2d, 0x06, 0xf3, 0xeb, 0x5f, 0x7d, 0x77, 0x9f, 0xf2, + 0xd6, 0xbb, 0xfb, 0x94, 0x6f, 0xbd, 0xbb, 0x4f, 0xf9, 0xe5, 0xf7, 0xf6, 0xed, 0x78, 0xeb, 0xbd, + 0x7d, 0x3b, 0xfe, 0xf1, 0xbd, 0x7d, 0x3b, 0x5e, 0xbb, 0x5d, 0x31, 0x9c, 0xf5, 0xe6, 0xea, 0x54, + 0xc9, 0xaa, 0xe6, 0x16, 0x38, 0xfe, 0x45, 0x6d, 0xd5, 0x6e, 0x8d, 0x76, 0xac, 0x64, 0x35, 0x74, + 0xef, 0xcf, 0x75, 0xcd, 0xa8, 0xe1, 0x45, 0x83, 0xdd, 0x22, 0xc5, 0xd9, 0xac, 0xeb, 0xf6, 0x6a, + 0x2f, 0xfd, 0x6f, 0xae, 0x4f, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0xe4, 0x86, 0x01, + 0xdc, 0x7b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7159,6 +7423,8 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { + L3DerivativeOrderBook(ctx context.Context, in *QueryFullDerivativeOrderbookRequest, opts ...grpc.CallOption) (*QueryFullDerivativeOrderbookResponse, error) + L3SpotOrderBook(ctx context.Context, in *QueryFullSpotOrderbookRequest, opts ...grpc.CallOption) (*QueryFullSpotOrderbookResponse, error) // Retrieves exchange params QueryExchangeParams(ctx context.Context, in *QueryExchangeParamsRequest, opts ...grpc.CallOption) (*QueryExchangeParamsResponse, error) // Retrieves a Subaccount's Deposits @@ -7293,6 +7559,24 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } +func (c *queryClient) L3DerivativeOrderBook(ctx context.Context, in *QueryFullDerivativeOrderbookRequest, opts ...grpc.CallOption) (*QueryFullDerivativeOrderbookResponse, error) { + out := new(QueryFullDerivativeOrderbookResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/L3DerivativeOrderBook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) L3SpotOrderBook(ctx context.Context, in *QueryFullSpotOrderbookRequest, opts ...grpc.CallOption) (*QueryFullSpotOrderbookResponse, error) { + out := new(QueryFullSpotOrderbookResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/L3SpotOrderBook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) QueryExchangeParams(ctx context.Context, in *QueryExchangeParamsRequest, opts ...grpc.CallOption) (*QueryExchangeParamsResponse, error) { out := new(QueryExchangeParamsResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/QueryExchangeParams", in, out, opts...) @@ -7835,6 +8119,8 @@ func (c *queryClient) GrantAuthorizations(ctx context.Context, in *QueryGrantAut // QueryServer is the server API for Query service. type QueryServer interface { + L3DerivativeOrderBook(context.Context, *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) + L3SpotOrderBook(context.Context, *QueryFullSpotOrderbookRequest) (*QueryFullSpotOrderbookResponse, error) // Retrieves exchange params QueryExchangeParams(context.Context, *QueryExchangeParamsRequest) (*QueryExchangeParamsResponse, error) // Retrieves a Subaccount's Deposits @@ -7965,6 +8251,12 @@ type QueryServer interface { type UnimplementedQueryServer struct { } +func (*UnimplementedQueryServer) L3DerivativeOrderBook(ctx context.Context, req *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method L3DerivativeOrderBook not implemented") +} +func (*UnimplementedQueryServer) L3SpotOrderBook(ctx context.Context, req *QueryFullSpotOrderbookRequest) (*QueryFullSpotOrderbookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method L3SpotOrderBook not implemented") +} func (*UnimplementedQueryServer) QueryExchangeParams(ctx context.Context, req *QueryExchangeParamsRequest) (*QueryExchangeParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method QueryExchangeParams not implemented") } @@ -8150,6 +8442,42 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } +func _Query_L3DerivativeOrderBook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFullDerivativeOrderbookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).L3DerivativeOrderBook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/L3DerivativeOrderBook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).L3DerivativeOrderBook(ctx, req.(*QueryFullDerivativeOrderbookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_L3SpotOrderBook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFullSpotOrderbookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).L3SpotOrderBook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/L3SpotOrderBook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).L3SpotOrderBook(ctx, req.(*QueryFullSpotOrderbookRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_QueryExchangeParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryExchangeParamsRequest) if err := dec(in); err != nil { @@ -9234,6 +9562,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.exchange.v1beta1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "L3DerivativeOrderBook", + Handler: _Query_L3DerivativeOrderBook_Handler, + }, + { + MethodName: "L3SpotOrderBook", + Handler: _Query_L3SpotOrderBook_Handler, + }, { MethodName: "QueryExchangeParams", Handler: _Query_QueryExchangeParams_Handler, @@ -14394,7 +14730,7 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryFullSpotOrderbookRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14404,12 +14740,12 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, return dAtA[:n], nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14424,7 +14760,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryFullSpotOrderbookResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14434,30 +14770,48 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte return dAtA[:n], nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - { - size := m.Multiplier.Size() - i -= size - if _, err := m.Multiplier.MarshalTo(dAtA[i:]); err != nil { - return 0, err + if len(m.Asks) > 0 { + for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Asks[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Bids) > 0 { + for iNdEx := len(m.Bids) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Bids[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa } - i = encodeVarintQuery(dAtA, i, uint64(size)) } - i-- - dAtA[i] = 0xa return len(dAtA) - i, nil } -func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryFullDerivativeOrderbookRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14467,22 +14821,223 @@ func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryActiveStakeGrantRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullDerivativeOrderbookRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryActiveStakeGrantRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullDerivativeOrderbookRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Grantee) > 0 { - i -= len(m.Grantee) - copy(dAtA[i:], m.Grantee) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) - i-- - dAtA[i] = 0xa + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryFullDerivativeOrderbookResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryFullDerivativeOrderbookResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryFullDerivativeOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Asks) > 0 { + for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Asks[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Bids) > 0 { + for iNdEx := len(m.Bids) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Bids[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TrimmedLimitOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TrimmedLimitOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TrimmedLimitOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.SubaccountId) > 0 { + i -= len(m.SubaccountId) + copy(dAtA[i:], m.SubaccountId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.SubaccountId))) + i-- + dAtA[i] = 0x22 + } + if len(m.OrderHash) > 0 { + i -= len(m.OrderHash) + copy(dAtA[i:], m.OrderHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.OrderHash))) + i-- + dAtA[i] = 0x1a + } + { + size := m.Quantity.Size() + i -= size + if _, err := m.Quantity.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.Price.Size() + i -= size + if _, err := m.Price.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Multiplier.Size() + i -= size + if _, err := m.Multiplier.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActiveStakeGrantRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActiveStakeGrantRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -16683,7 +17238,7 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Size() (n int) { return n } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { +func (m *QueryFullSpotOrderbookRequest) Size() (n int) { if m == nil { return 0 } @@ -16696,95 +17251,184 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { return n } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Size() (n int) { +func (m *QueryFullSpotOrderbookResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.Multiplier.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Bids) > 0 { + for _, e := range m.Bids { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if len(m.Asks) > 0 { + for _, e := range m.Asks { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } return n } -func (m *QueryActiveStakeGrantRequest) Size() (n int) { +func (m *QueryFullDerivativeOrderbookRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Grantee) + l = len(m.MarketId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryActiveStakeGrantResponse) Size() (n int) { +func (m *QueryFullDerivativeOrderbookResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Grant != nil { - l = m.Grant.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Bids) > 0 { + for _, e := range m.Bids { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } } - if m.EffectiveGrant != nil { - l = m.EffectiveGrant.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Asks) > 0 { + for _, e := range m.Asks { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } } return n } -func (m *QueryGrantAuthorizationRequest) Size() (n int) { +func (m *TrimmedLimitOrder) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) + l = m.Price.Size() + n += 1 + l + sovQuery(uint64(l)) + l = m.Quantity.Size() + n += 1 + l + sovQuery(uint64(l)) + l = len(m.OrderHash) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - l = len(m.Grantee) + l = len(m.SubaccountId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryGrantAuthorizationResponse) Size() (n int) { +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.Amount.Size() + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Multiplier.Size() n += 1 + l + sovQuery(uint64(l)) return n } -func (m *QueryGrantAuthorizationsRequest) Size() (n int) { +func (m *QueryActiveStakeGrantRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) + l = len(m.Grantee) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryGrantAuthorizationsResponse) Size() (n int) { +func (m *QueryActiveStakeGrantResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.TotalGrantAmount.Size() + if m.Grant != nil { + l = m.Grant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + if m.EffectiveGrant != nil { + l = m.EffectiveGrant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Amount.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryGrantAuthorizationsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.TotalGrantAmount.Size() n += 1 + l + sovQuery(uint64(l)) if len(m.Grants) > 0 { for _, e := range m.Grants { @@ -29814,6 +30458,588 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) } return nil } +func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TrimmedLimitOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TrimmedLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/reclamation.go b/chain/exchange/types/reclamation.go deleted file mode 100644 index e1d7d3f0..00000000 --- a/chain/exchange/types/reclamation.go +++ /dev/null @@ -1,41 +0,0 @@ -package types - -import ( - "fmt" - - sdksecp256k1 "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - - "github.com/InjectiveLabs/sdk-go/chain/crypto/ethsecp256k1" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func ValidateFundsReclaimSignature( - lockedAccountPubKey, signature []byte, -) error { - // validate the signature of the locked account - lockedPubKey := sdksecp256k1.PubKey{ - Key: lockedAccountPubKey, - } - - correctPubKey := ethsecp256k1.PubKey{ - Key: lockedAccountPubKey, - } - - lockedAddress := sdk.AccAddress(lockedPubKey.Address()) - recipient := sdk.AccAddress(correctPubKey.Address()) - - signMessage := ConstructFundsReclaimMessage(recipient, lockedAddress) - - if !lockedPubKey.VerifySignature(signMessage, signature) { - return ErrInvalidSignature - } - return nil -} - -func ConstructFundsReclaimMessage( - recipient, signer sdk.AccAddress, -) []byte { - message := fmt.Sprintf("I authorize %s to reclaim my funds from locked account %s on Injective", recipient.String(), signer.String()) - return []byte(message) -} diff --git a/chain/exchange/types/spot_orders.go b/chain/exchange/types/spot_orders.go index ac5b243e..f7e34d45 100644 --- a/chain/exchange/types/spot_orders.go +++ b/chain/exchange/types/spot_orders.go @@ -24,6 +24,14 @@ func (o *SpotOrder) ToSpotMarketOrder(sender sdk.AccAddress, balanceHold math.Le TriggerPrice: o.TriggerPrice, } } +func (m *SpotLimitOrder) ToStandardized() *TrimmedLimitOrder { + return &TrimmedLimitOrder{ + Price: m.OrderInfo.Price, + Quantity: m.OrderInfo.Quantity, + OrderHash: common.BytesToHash(m.OrderHash).Hex(), + SubaccountId: m.OrderInfo.SubaccountId, + } +} func (o *SpotOrder) GetNewSpotLimitOrder(sender sdk.AccAddress, orderHash common.Hash) *SpotLimitOrder { if o.OrderInfo.FeeRecipient == "" { @@ -143,7 +151,9 @@ func (m *SpotLimitOrder) GetUnfilledFeeAmount(fee math.LegacyDec) math.LegacyDec return m.GetUnfilledNotional().Mul(fee) } -func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (balanceHold math.LegacyDec, denom string) { +func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (math.LegacyDec, string) { + var denom string + var balanceHold math.LegacyDec if m.IsBuy() { denom = market.QuoteDenom if m.OrderType.IsPostOnly() { @@ -165,7 +175,9 @@ func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (balanceHol return balanceHold, denom } -func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (balanceHold math.LegacyDec, denom string) { +func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (math.LegacyDec, string) { + var denom string + var balanceHold math.LegacyDec if m.IsBuy() { var tradeFeeRate math.LegacyDec diff --git a/chain/exchange/types/tx.pb.go b/chain/exchange/types/tx.pb.go index 4a78fb8f..fb3514dd 100644 --- a/chain/exchange/types/tx.pb.go +++ b/chain/exchange/types/tx.pb.go @@ -638,6 +638,10 @@ type MsgInstantSpotMarketLaunch struct { // min_notional defines the minimum notional (in quote asset) required for // orders in the market MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,8,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,9,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *MsgInstantSpotMarketLaunch) Reset() { *m = MsgInstantSpotMarketLaunch{} } @@ -3674,254 +3678,256 @@ func init() { } var fileDescriptor_bd45b74cb6d81462 = []byte{ - // 3942 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0xc7, - 0x95, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x29, 0x89, 0x6a, 0x52, 0xe2, 0x70, 0xf8, 0x93, 0x9a, 0x92, - 0xf5, 0x27, 0xf5, 0xff, 0x8c, 0x56, 0x96, 0xf8, 0x91, 0x6c, 0xae, 0x45, 0x4b, 0x1e, 0xca, 0xbb, - 0xde, 0x85, 0xbd, 0x83, 0x66, 0x4f, 0x71, 0xd8, 0xe6, 0x4c, 0xf7, 0xa8, 0xbb, 0x47, 0x12, 0x8d, - 0x05, 0xd6, 0xeb, 0xc3, 0x42, 0xfb, 0xc1, 0x62, 0x17, 0x58, 0x60, 0x81, 0x05, 0x0c, 0x18, 0x58, - 0x20, 0x06, 0x9c, 0x20, 0x91, 0x83, 0x20, 0xf0, 0x21, 0x3f, 0x04, 0x39, 0x18, 0x3e, 0x29, 0x01, - 0x02, 0x04, 0x39, 0x28, 0x81, 0x7d, 0xb0, 0xe1, 0x53, 0x90, 0x4b, 0x80, 0xe4, 0x12, 0x74, 0x55, - 0x75, 0x4d, 0x7f, 0xaa, 0xba, 0x7b, 0x46, 0xa4, 0x2d, 0x07, 0xbe, 0x48, 0xec, 0xaa, 0xf7, 0x5e, - 0xbd, 0xf7, 0xea, 0x7d, 0xaa, 0x5e, 0x55, 0x0d, 0x4c, 0xe9, 0xc6, 0xeb, 0x48, 0x73, 0xf4, 0xbb, - 0x68, 0x06, 0xdd, 0xd7, 0xd6, 0x54, 0xa3, 0x82, 0x66, 0xee, 0x9e, 0x5c, 0x41, 0x8e, 0x7a, 0x72, - 0xc6, 0xb9, 0x3f, 0x5d, 0xb7, 0x4c, 0xc7, 0x94, 0xf3, 0x0c, 0x68, 0xda, 0x03, 0x9a, 0xa6, 0x40, - 0xf9, 0x09, 0xcd, 0xb4, 0x6b, 0xa6, 0x3d, 0xb3, 0xa2, 0xda, 0x4d, 0x4c, 0xcd, 0xd4, 0x0d, 0x82, - 0x9b, 0x9f, 0xa6, 0xfd, 0x65, 0xdd, 0x76, 0x2c, 0x7d, 0xa5, 0xe1, 0xe8, 0xa6, 0xc1, 0xe0, 0xfc, - 0x8d, 0x14, 0x7e, 0x98, 0xc2, 0xd7, 0xec, 0xca, 0xcc, 0xdd, 0x93, 0xee, 0x7f, 0xb4, 0x63, 0x84, - 0x74, 0x94, 0xf0, 0xd7, 0x0c, 0xf9, 0xa0, 0x5d, 0x43, 0x15, 0xb3, 0x62, 0x92, 0x76, 0xf7, 0x2f, - 0xda, 0x7a, 0x38, 0x46, 0x34, 0x26, 0x06, 0x01, 0x3d, 0xd0, 0x04, 0x35, 0x2d, 0x55, 0xab, 0x36, - 0x01, 0xc9, 0x27, 0x05, 0xdb, 0xa5, 0xd6, 0x74, 0xc3, 0x9c, 0xc1, 0xff, 0x92, 0x26, 0xe5, 0xdd, - 0x0c, 0x0c, 0x2e, 0xd9, 0x95, 0x97, 0xeb, 0x65, 0xd5, 0x41, 0xcb, 0x75, 0xd3, 0x59, 0x52, 0xad, - 0x75, 0xe4, 0xc8, 0x43, 0xd0, 0xa5, 0x96, 0x6b, 0xba, 0x91, 0x93, 0xf6, 0x4a, 0x87, 0x7a, 0x8b, - 0xe4, 0x43, 0x1e, 0x85, 0xde, 0x1a, 0xee, 0x2f, 0xe9, 0xe5, 0x5c, 0x07, 0xee, 0xe9, 0x21, 0x0d, - 0x8b, 0x65, 0x79, 0x1c, 0xc0, 0x40, 0xf7, 0x4a, 0x8e, 0xae, 0xad, 0x23, 0x2b, 0x97, 0xc1, 0xbd, - 0xbd, 0x06, 0xba, 0x77, 0x1b, 0x37, 0xc8, 0x7f, 0x07, 0xc3, 0x6e, 0x77, 0x4d, 0x37, 0x4a, 0x75, - 0x4b, 0xd7, 0x10, 0x06, 0x2c, 0xd9, 0xfa, 0x1b, 0x28, 0xd7, 0xe9, 0xc2, 0xce, 0x4d, 0x7d, 0xf8, - 0x78, 0x72, 0xdb, 0xaf, 0x1f, 0x4f, 0x8e, 0x12, 0xdd, 0xd8, 0xe5, 0xf5, 0x69, 0xdd, 0x9c, 0xa9, - 0xa9, 0xce, 0xda, 0xf4, 0x0d, 0x54, 0x51, 0xb5, 0x8d, 0x05, 0xa4, 0x15, 0x07, 0x0d, 0x74, 0x6f, - 0x49, 0x37, 0x6e, 0xb9, 0x14, 0x5c, 0xc2, 0xcb, 0xfa, 0x1b, 0x48, 0x2e, 0x41, 0xde, 0x23, 0x7d, - 0xa7, 0xa1, 0x1a, 0x8e, 0xee, 0x6c, 0xf8, 0xa8, 0x77, 0xa5, 0xa7, 0xbe, 0x87, 0x50, 0x7f, 0x89, - 0x12, 0x61, 0x03, 0x2c, 0xc1, 0x80, 0x37, 0x80, 0x61, 0xba, 0x93, 0xad, 0x56, 0x73, 0xd9, 0xf4, - 0x64, 0x77, 0x10, 0xb2, 0x2f, 0x52, 0xd4, 0xc2, 0xe9, 0x07, 0xef, 0x4c, 0x6e, 0xfb, 0xec, 0x9d, - 0xc9, 0x6d, 0x6f, 0x7d, 0xfa, 0xf0, 0x08, 0x51, 0xed, 0xbf, 0x7d, 0xfa, 0xf0, 0xc8, 0x18, 0x9b, - 0x66, 0xce, 0x8c, 0x28, 0xe3, 0x30, 0xca, 0x69, 0x2e, 0x22, 0xbb, 0x6e, 0x1a, 0x36, 0x52, 0xfe, - 0xd0, 0x09, 0x23, 0xac, 0x7f, 0x01, 0x59, 0xfa, 0x5d, 0xd5, 0xb5, 0x87, 0xaf, 0xa7, 0x73, 0xcb, - 0xa7, 0x53, 0x7e, 0x15, 0x72, 0x2e, 0x39, 0xdd, 0xd0, 0x1d, 0x5d, 0xad, 0x96, 0x6a, 0xaa, 0x55, - 0xd1, 0x8d, 0x92, 0xa5, 0x3a, 0xba, 0x99, 0xeb, 0x4e, 0x4f, 0x76, 0xb7, 0x81, 0xee, 0x2d, 0x12, - 0x1a, 0x4b, 0x98, 0x44, 0xd1, 0xa5, 0x20, 0x97, 0x61, 0x0c, 0x33, 0xab, 0xea, 0x86, 0x83, 0x0c, - 0xd5, 0xd0, 0x50, 0x70, 0x84, 0x9e, 0xf4, 0x23, 0x8c, 0xb8, 0x8c, 0x37, 0xe9, 0xf8, 0x46, 0x29, - 0x5c, 0xe4, 0x9b, 0xa4, 0x12, 0x35, 0xc9, 0xb0, 0x6d, 0x29, 0x53, 0xb0, 0x4f, 0xd8, 0xc9, 0xcc, - 0xf3, 0x03, 0x09, 0x76, 0x32, 0xa8, 0x5b, 0xaa, 0xa5, 0xd6, 0x6c, 0xf9, 0x1c, 0xf4, 0xaa, 0x0d, - 0x67, 0xcd, 0xb4, 0x74, 0x67, 0x83, 0x18, 0xe6, 0x5c, 0xee, 0x17, 0xdf, 0x3b, 0x3e, 0x44, 0x63, - 0xe3, 0x6c, 0xb9, 0x6c, 0x21, 0xdb, 0x5e, 0x76, 0x2c, 0xdd, 0xa8, 0x14, 0x9b, 0xa0, 0xf2, 0x55, - 0xc8, 0xd6, 0x31, 0x05, 0x6c, 0xb3, 0x7d, 0xa7, 0x94, 0x69, 0x71, 0x7c, 0x9f, 0x26, 0x63, 0xcd, - 0x75, 0xba, 0xfa, 0x29, 0x52, 0xbc, 0xc2, 0x51, 0x57, 0xca, 0x26, 0x45, 0x57, 0xd2, 0x5c, 0x54, - 0x52, 0x82, 0xaa, 0x8c, 0xc0, 0x70, 0xa8, 0x89, 0x49, 0xf5, 0x1d, 0x09, 0x60, 0xc9, 0xae, 0x2c, - 0xa0, 0xba, 0x69, 0xeb, 0x8e, 0xbc, 0x07, 0xb2, 0x36, 0x32, 0xca, 0xc8, 0xa2, 0x6e, 0x46, 0xbf, - 0xe4, 0x29, 0xd8, 0x6e, 0x37, 0x56, 0x54, 0x4d, 0x33, 0x1b, 0x86, 0xcf, 0xd7, 0xfa, 0x9b, 0x8d, - 0x8b, 0x65, 0xf9, 0x3c, 0x64, 0xd5, 0x9a, 0xfb, 0x37, 0xf6, 0xb5, 0xbe, 0x53, 0x23, 0x34, 0xf3, - 0x4c, 0xbb, 0x99, 0x89, 0x89, 0x33, 0x6f, 0xea, 0x86, 0x27, 0x0c, 0x01, 0x2f, 0x1c, 0xf5, 0x4f, - 0x1d, 0x1d, 0xd2, 0x95, 0x68, 0xd0, 0x2f, 0x11, 0x65, 0x51, 0x19, 0x02, 0xb9, 0xf9, 0xc5, 0xe4, - 0x78, 0x5f, 0x82, 0xbe, 0x25, 0xbb, 0xf2, 0xb7, 0xba, 0xb3, 0x56, 0xb6, 0xd4, 0x7b, 0x5f, 0x92, - 0x20, 0xc7, 0x04, 0x82, 0x0c, 0xf9, 0x05, 0xf1, 0x78, 0x54, 0x76, 0xe3, 0xc4, 0xe5, 0x7d, 0x32, - 0x51, 0xbe, 0x2d, 0xe1, 0xe9, 0x9a, 0xb7, 0x10, 0x8d, 0x93, 0x37, 0xf4, 0x9a, 0xee, 0xdc, 0xb4, - 0x5c, 0xf6, 0x45, 0x62, 0xcd, 0x42, 0x97, 0xe9, 0x02, 0x50, 0x7b, 0x3a, 0x10, 0x67, 0x4f, 0x2e, - 0x49, 0x4c, 0x8d, 0x32, 0x4f, 0x30, 0x0b, 0x17, 0x04, 0xbc, 0xef, 0xf5, 0xf3, 0xce, 0x63, 0x4a, - 0x79, 0x15, 0x26, 0x05, 0x5d, 0x9e, 0x4c, 0x6e, 0x28, 0xc6, 0xa3, 0x94, 0xd6, 0x54, 0x7b, 0x8d, - 0xf2, 0xde, 0x8b, 0x5b, 0x9e, 0x57, 0xed, 0x35, 0x79, 0x00, 0x32, 0x1a, 0x9b, 0x0b, 0xf7, 0xcf, - 0x42, 0x8f, 0xc7, 0x8d, 0xf2, 0x03, 0x09, 0xc6, 0x97, 0xec, 0xca, 0x9c, 0xea, 0x68, 0x6b, 0xbc, - 0x31, 0x6c, 0xa1, 0x52, 0xe6, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, - 0xe1, 0x59, 0x81, 0x5a, 0x9e, 0xf1, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x5d, 0x09, 0x0e, 0xc4, 0x42, - 0x30, 0x1d, 0xed, 0x83, 0xfe, 0xa6, 0x8e, 0x90, 0x9d, 0x93, 0xf6, 0x66, 0x0e, 0xf5, 0x16, 0xfb, - 0x98, 0x96, 0x90, 0x2d, 0x4f, 0xc3, 0xa0, 0x86, 0x69, 0x94, 0x4b, 0x84, 0xbd, 0x92, 0xa6, 0x97, - 0x89, 0x78, 0xbd, 0xc5, 0x5d, 0xb4, 0x8b, 0x90, 0x9d, 0xd7, 0xcb, 0xb6, 0x7c, 0x0c, 0xe4, 0x55, - 0x55, 0xaf, 0x86, 0xc0, 0x33, 0x18, 0x7c, 0x80, 0xf4, 0x34, 0xa1, 0x7d, 0x3a, 0xff, 0x71, 0x06, - 0xf2, 0x4b, 0x76, 0x65, 0xd1, 0xb0, 0x1d, 0xd5, 0x70, 0x9a, 0xb9, 0xfa, 0x86, 0xda, 0x30, 0xb4, - 0x35, 0xa1, 0xc2, 0xf7, 0x40, 0x96, 0x26, 0x5b, 0x32, 0x93, 0xf4, 0xcb, 0x9d, 0x7d, 0xd7, 0x73, - 0x4a, 0x65, 0x64, 0x98, 0x35, 0x2f, 0x11, 0xbb, 0x2d, 0x0b, 0x6e, 0x83, 0x3c, 0x09, 0x7d, 0x77, - 0x1a, 0xa6, 0xe3, 0xf5, 0xe3, 0xe4, 0x5b, 0x04, 0xdc, 0x44, 0x00, 0x8a, 0x30, 0xc8, 0xcb, 0xd2, - 0x2d, 0xe4, 0xd1, 0x81, 0x5a, 0x38, 0x45, 0xbf, 0x02, 0x7b, 0x04, 0xe9, 0xb9, 0x85, 0x3c, 0xea, - 0xb2, 0x15, 0xc9, 0xcd, 0xd7, 0xa1, 0x3f, 0x90, 0x97, 0x5b, 0x48, 0xa0, 0x7d, 0x35, 0xdf, 0x1a, - 0xeb, 0x92, 0xc0, 0xf2, 0xa6, 0xfc, 0x96, 0x27, 0x98, 0x22, 0x65, 0x3f, 0x28, 0xe2, 0xde, 0x66, - 0xd4, 0xec, 0xc6, 0xae, 0x4b, 0xc1, 0x6e, 0x21, 0xab, 0x8e, 0x9c, 0x06, 0x4e, 0xde, 0xed, 0x4f, - 0x76, 0x68, 0x36, 0x33, 0x91, 0xd9, 0x9c, 0x84, 0x3e, 0xb2, 0xa6, 0x2f, 0xb9, 0x26, 0xe0, 0x4d, - 0x37, 0x69, 0x9a, 0x53, 0x3d, 0x47, 0xc0, 0x00, 0x18, 0x8b, 0xcc, 0x73, 0x91, 0x22, 0xbd, 0xe4, - 0x36, 0xb9, 0x8e, 0x40, 0x41, 0x6c, 0x4d, 0xad, 0xa2, 0xd2, 0xaa, 0xaa, 0x39, 0xa6, 0x85, 0xa7, - 0x6e, 0x7b, 0x71, 0x17, 0xe9, 0x5a, 0x76, 0x7b, 0xae, 0xe3, 0x0e, 0xf9, 0x1a, 0x1b, 0xd3, 0xd9, - 0xa8, 0x23, 0x3c, 0x25, 0x3b, 0x4e, 0xed, 0xf7, 0xc5, 0x03, 0xba, 0xcb, 0xf0, 0xa2, 0xc1, 0x4d, - 0xfc, 0x79, 0x7b, 0xa3, 0x8e, 0x3c, 0xce, 0xdc, 0xbf, 0xe5, 0x45, 0xd8, 0x51, 0x53, 0xd7, 0x91, - 0x55, 0x5a, 0x45, 0xc8, 0x5d, 0xbc, 0xa0, 0x56, 0xd6, 0x2e, 0xfd, 0x18, 0xf5, 0x3a, 0x42, 0x45, - 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0x2f, 0xc3, 0x10, 0x77, - 0xe5, 0x06, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0xd9, 0xf6, 0x1a, 0xe4, 0x84, 0x4b, 0xb6, 0xbe, 0x16, - 0x96, 0xb0, 0x35, 0xee, 0x7a, 0x4d, 0xe4, 0xd4, 0xfd, 0x5b, 0xe3, 0xd4, 0xdb, 0x37, 0xd9, 0xa9, - 0x77, 0xb4, 0xe9, 0xd4, 0x57, 0x05, 0x4e, 0x7d, 0x88, 0xe3, 0xd4, 0x5c, 0x7f, 0x54, 0x0e, 0xc3, - 0xc1, 0x04, 0x10, 0xe6, 0xde, 0xff, 0xda, 0x0d, 0x53, 0x4d, 0xd8, 0x39, 0xdd, 0x50, 0xad, 0x8d, - 0x9b, 0x75, 0x97, 0x13, 0xfb, 0x89, 0x5c, 0x7c, 0x0a, 0xb6, 0x7b, 0xde, 0xb7, 0x51, 0x5b, 0x31, - 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0x2e, 0xe3, 0x36, 0xf9, 0x20, 0xec, 0xa4, 0x40, 0x75, 0xcb, 0xbc, - 0xab, 0xbb, 0xd4, 0x89, 0xab, 0xef, 0x20, 0xcd, 0xb7, 0x68, 0x6b, 0xd8, 0x37, 0xbb, 0xda, 0xf4, - 0xcd, 0x56, 0x43, 0x42, 0xd4, 0x97, 0xbb, 0x37, 0xcf, 0x97, 0x7b, 0xda, 0xf5, 0xe5, 0x93, 0x30, - 0x84, 0xee, 0xd7, 0x75, 0xec, 0x65, 0x46, 0xc9, 0xd1, 0x6b, 0xc8, 0x76, 0xd4, 0x5a, 0x1d, 0x07, - 0x87, 0x4c, 0x71, 0xb0, 0xd9, 0x77, 0xdb, 0xeb, 0x72, 0x51, 0x6c, 0xe4, 0x38, 0x55, 0x54, 0x43, - 0x86, 0xe3, 0x43, 0x01, 0x82, 0xd2, 0xec, 0x6b, 0xa2, 0xb0, 0xcd, 0x74, 0x9f, 0x7f, 0x33, 0x1d, - 0x8a, 0xdc, 0xfd, 0x69, 0xf3, 0xf0, 0xf6, 0xad, 0x71, 0xd9, 0x1d, 0x9b, 0xec, 0xb2, 0x3b, 0xdb, - 0x74, 0xd9, 0x05, 0x81, 0xcb, 0x1e, 0xe3, 0xb8, 0xac, 0xd0, 0xc7, 0x94, 0xe3, 0x70, 0x34, 0x05, - 0x18, 0x73, 0xdd, 0x9f, 0x07, 0x5c, 0xf7, 0x9a, 0x3b, 0xed, 0x1b, 0xd7, 0x1b, 0x4e, 0xc3, 0x42, - 0xf6, 0xd3, 0x9f, 0x9d, 0x43, 0x1e, 0x9d, 0xdd, 0x5c, 0x8f, 0xee, 0x16, 0x79, 0xf4, 0x1e, 0xc8, - 0x62, 0xff, 0xd8, 0xc0, 0xee, 0x97, 0x29, 0xd2, 0x2f, 0x8e, 0xa7, 0xf7, 0x6e, 0x9e, 0xa7, 0xc3, - 0x66, 0x67, 0xed, 0xbe, 0xad, 0xcb, 0xda, 0xfd, 0x5b, 0x96, 0xb5, 0xbf, 0x0e, 0x01, 0xc9, 0xbe, - 0x1a, 0x0c, 0x01, 0x42, 0x30, 0x16, 0x02, 0x1e, 0x4a, 0x90, 0x0b, 0xec, 0xab, 0x09, 0xd4, 0x96, - 0x17, 0x02, 0x2e, 0x0a, 0x84, 0xdd, 0xc7, 0x2f, 0x04, 0xf8, 0xb8, 0x52, 0xde, 0x97, 0x60, 0xaf, - 0xa8, 0x33, 0x6d, 0x2d, 0xa0, 0x08, 0xdd, 0x16, 0xb2, 0x1b, 0x55, 0xc7, 0x2b, 0x8e, 0x9d, 0x4a, - 0x92, 0x21, 0x38, 0x88, 0x8b, 0x89, 0x05, 0x92, 0x8a, 0x1e, 0x21, 0xaf, 0xbe, 0x90, 0xe1, 0xd5, - 0x17, 0x7e, 0x29, 0xc1, 0x1e, 0x3e, 0x15, 0xf9, 0x0a, 0xf4, 0x78, 0x46, 0x49, 0xab, 0x7b, 0xa9, - 0x4c, 0x87, 0x21, 0xc9, 0x17, 0xa1, 0x0b, 0x7b, 0x0a, 0x09, 0xc2, 0xe9, 0xb0, 0x09, 0x86, 0x7c, - 0x16, 0x32, 0xab, 0x08, 0x11, 0x96, 0xd3, 0x21, 0xba, 0xf0, 0xd1, 0xba, 0x09, 0x99, 0x8b, 0x66, - 0x55, 0x33, 0x45, 0x31, 0xe9, 0xb9, 0xa0, 0x0d, 0x1d, 0x8d, 0xd3, 0x7f, 0x93, 0x30, 0xc7, 0x92, - 0x0a, 0x0f, 0x12, 0xea, 0x26, 0x62, 0xe6, 0x94, 0x15, 0x5c, 0x36, 0x11, 0x03, 0x6c, 0x46, 0x69, - 0xe9, 0xa7, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x2f, 0x52, 0x4b, 0x97, 0x39, 0x5a, 0x3a, 0x1c, 0xd5, - 0x92, 0x80, 0x3f, 0x05, 0xc1, 0xa1, 0x24, 0x98, 0xcd, 0xd0, 0xd5, 0x47, 0x12, 0x5e, 0x90, 0xf8, - 0xea, 0x58, 0xbc, 0x59, 0x11, 0x17, 0xe3, 0x16, 0x43, 0xc5, 0xb8, 0x36, 0xf4, 0xe5, 0x95, 0xe4, - 0xae, 0x3e, 0x48, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x1f, 0x48, 0x38, 0x14, 0x27, 0xc1, 0x3d, 0x8d, - 0xa5, 0xb9, 0x47, 0x12, 0xae, 0x7f, 0xcf, 0xbb, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, 0xed, 0xb1, - 0x07, 0x64, 0x91, 0x62, 0x78, 0x86, 0x53, 0x0c, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, 0xba, 0x9a, - 0x36, 0x33, 0xc3, 0x99, 0x9e, 0xd1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0xc6, 0x70, 0xb1, 0x31, 0xd4, - 0xca, 0xd2, 0xe0, 0x7b, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x0a, 0x74, 0x96, - 0x55, 0x47, 0x4d, 0x53, 0xf8, 0xc5, 0x94, 0x16, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, 0x0b, 0x67, - 0x1f, 0x24, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x75, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, 0x72, 0xd0, - 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0xef, 0x0b, 0x12, - 0x0a, 0xb8, 0xf6, 0x56, 0x4b, 0xff, 0x2c, 0x47, 0xfa, 0x23, 0x02, 0xe9, 0x39, 0x8c, 0x29, 0x37, - 0xe1, 0x70, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x7d, 0x37, 0x0c, 0x79, 0x14, 0xc9, 0x39, 0x56, 0x82, - 0x0a, 0x52, 0x9d, 0xf3, 0x5c, 0x81, 0x71, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, 0xc9, 0x31, - 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, 0x96, 0xed, - 0xdb, 0x26, 0x11, 0x69, 0xb6, 0x5a, 0x95, 0x5f, 0x80, 0xa9, 0x32, 0x0b, 0x1c, 0x62, 0x32, 0x9d, - 0x98, 0xcc, 0x44, 0x39, 0x74, 0xb4, 0x18, 0x22, 0xf6, 0x0f, 0xb0, 0x1b, 0x73, 0x43, 0xe3, 0x01, - 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, 0x5f, 0x87, - 0x51, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, 0x2c, 0x8e, - 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0x89, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, 0x91, 0x2c, - 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x1d, 0x98, 0x5c, 0xc1, 0x46, 0x5c, - 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0x47, 0x57, 0xa2, 0x8e, 0xc1, 0x94, 0x58, - 0x84, 0x83, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0xf6, 0xad, 0x44, 0xeb, 0x0a, 0x21, 0x23, - 0xbb, 0x17, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, 0x4e, 0x72, - 0x42, 0xca, 0x78, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x90, 0x85, 0x31, 0x5e, 0x07, 0x8b, 0x1c, - 0xd3, 0x30, 0x88, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0x76, 0xb9, 0x5d, 0x34, 0x08, 0x93, 0x0e, - 0xb9, 0x00, 0x23, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xe1, 0x26, 0x40, 0x10, 0xf7, 0x08, - 0xec, 0x6a, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x27, 0x33, 0x50, 0xba, 0x16, 0x38, 0x07, - 0xc3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1d, 0x32, 0x33, 0x8a, 0x37, 0x0b, 0xe3, 0xa1, - 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x32, 0x8c, 0xf2, 0xe6, - 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0xe7, 0x21, 0xe7, 0xad, 0x62, 0xfc, - 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, 0x16, 0x86, - 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x86, 0x48, 0x77, 0x08, 0x6d, 0x1e, 0x26, 0xbc, 0xf1, - 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x28, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, 0x0b, 0xe3, - 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xd7, 0xa0, 0x78, 0x7c, 0xf0, - 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x3c, 0xec, 0xa3, - 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x23, 0x09, 0x26, - 0x38, 0xdb, 0xa1, 0x34, 0x15, 0x81, 0x4d, 0xdb, 0xa7, 0x5c, 0xe2, 0x78, 0xf0, 0xc1, 0xb8, 0xdd, - 0x9c, 0xbf, 0x32, 0xf0, 0x43, 0x09, 0x9e, 0x89, 0x07, 0x49, 0xbb, 0x49, 0x79, 0x25, 0x5c, 0x1f, - 0xb8, 0x90, 0x4e, 0xa2, 0x27, 0xab, 0x12, 0xfc, 0xae, 0x03, 0xc6, 0xe2, 0x68, 0x7d, 0x05, 0x6b, - 0x05, 0xf2, 0xdf, 0xc0, 0x0e, 0x7c, 0x89, 0x46, 0x37, 0x8d, 0x52, 0x19, 0x55, 0x1d, 0x15, 0xaf, - 0xee, 0xfb, 0x4e, 0x1d, 0x8e, 0xbd, 0x8d, 0x44, 0x31, 0x16, 0x5c, 0x04, 0x6a, 0x20, 0xdb, 0xeb, - 0xfe, 0x46, 0xf9, 0x12, 0x64, 0xeb, 0xea, 0x86, 0xd9, 0x70, 0x5a, 0x39, 0xa1, 0xa7, 0x28, 0x3e, - 0x95, 0xff, 0x8c, 0xac, 0x81, 0x39, 0x3b, 0xdb, 0x2f, 0xd4, 0xec, 0x13, 0xd7, 0xc2, 0xf1, 0x0c, - 0x2a, 0x3f, 0x91, 0xf0, 0x62, 0x38, 0x1e, 0xea, 0xe9, 0x36, 0xfe, 0x3f, 0xd1, 0x4a, 0x24, 0xce, - 0x34, 0x21, 0x65, 0x7d, 0x79, 0x3b, 0x4f, 0xd6, 0x5d, 0x53, 0xed, 0x75, 0x6c, 0x6a, 0x5d, 0xb4, - 0x7b, 0x49, 0xb5, 0xd7, 0x3d, 0x81, 0xb2, 0x4d, 0x81, 0x12, 0xf7, 0x74, 0x5c, 0x01, 0x15, 0x85, - 0x14, 0x89, 0x78, 0x7d, 0x6c, 0x93, 0xfa, 0xcf, 0x1d, 0xf8, 0x6e, 0xab, 0x68, 0xb3, 0xf3, 0x15, - 0x52, 0xd2, 0x05, 0x8e, 0x92, 0xf6, 0x47, 0x95, 0x14, 0x95, 0x51, 0x39, 0x80, 0x0b, 0x44, 0xa2, - 0x6e, 0xa6, 0xaa, 0xb7, 0x25, 0xe8, 0x65, 0xcb, 0xe0, 0xa0, 0x02, 0xa4, 0x24, 0x05, 0x74, 0x24, - 0x2a, 0x20, 0x13, 0xaf, 0x80, 0x4e, 0x81, 0x02, 0x9a, 0xe5, 0x0b, 0xe5, 0xfb, 0x24, 0xd5, 0xfa, - 0x36, 0xaf, 0xe1, 0x15, 0xc3, 0xd6, 0xed, 0xbb, 0x13, 0x53, 0x6c, 0x0c, 0x57, 0xca, 0x0d, 0x9c, - 0x61, 0x63, 0x20, 0x5a, 0xda, 0x71, 0xff, 0x4b, 0x07, 0xec, 0x5e, 0xb2, 0x2b, 0xcb, 0x4c, 0xd5, - 0xb7, 0x2d, 0xd5, 0xb0, 0x57, 0x63, 0x6c, 0xf9, 0x04, 0x0c, 0xd9, 0x66, 0xc3, 0xd2, 0x50, 0x89, - 0x37, 0x69, 0x32, 0xe9, 0x5b, 0xf6, 0x4f, 0x1d, 0x5e, 0x8f, 0xdb, 0x8e, 0x6e, 0x90, 0xd3, 0x6e, - 0x9e, 0xb1, 0x0f, 0xfb, 0x00, 0x96, 0xf9, 0x77, 0x34, 0x3b, 0x5b, 0xbb, 0xa3, 0x39, 0x1d, 0xd2, - 0xef, 0x84, 0x5f, 0xbf, 0x51, 0x71, 0x95, 0x49, 0x5c, 0x46, 0x8f, 0x76, 0x30, 0x83, 0x7e, 0xab, - 0x03, 0xdf, 0xe3, 0xbc, 0x76, 0xdf, 0x41, 0x96, 0xa1, 0x56, 0xff, 0x52, 0xf4, 0x74, 0x2c, 0xa4, - 0xa7, 0xc0, 0xdd, 0xfe, 0xb0, 0xb0, 0xf4, 0x6e, 0x7f, 0xb8, 0x99, 0xe9, 0xe8, 0x33, 0x09, 0xd7, - 0x6f, 0x6e, 0xe8, 0x77, 0x1a, 0x3a, 0xbe, 0x85, 0x4c, 0x17, 0x0c, 0x4f, 0x56, 0xbf, 0x09, 0x04, - 0x8f, 0x4c, 0x28, 0x78, 0xb0, 0x05, 0x40, 0x67, 0x7b, 0x0b, 0x00, 0xc9, 0x5b, 0x00, 0x1c, 0x8f, - 0xdb, 0xb5, 0x46, 0x24, 0x52, 0x26, 0xf0, 0xa6, 0x35, 0xd2, 0xce, 0x54, 0xf1, 0x2e, 0x49, 0xa6, - 0xd7, 0x6a, 0xc8, 0xaa, 0x20, 0x43, 0xdb, 0x58, 0xc6, 0xf7, 0x33, 0xe8, 0x2b, 0x87, 0x2d, 0x53, - 0x47, 0xe1, 0x64, 0x5c, 0xe2, 0xe3, 0x32, 0x43, 0x13, 0x1f, 0xb7, 0xaf, 0x79, 0x7f, 0xbc, 0x03, - 0x3f, 0xda, 0x58, 0x34, 0xdc, 0x4d, 0x91, 0xcd, 0xa4, 0x25, 0x47, 0xc6, 0x4f, 0x89, 0x0b, 0x04, - 0xf4, 0xd2, 0x19, 0x32, 0x93, 0x4b, 0xcc, 0x3f, 0x5a, 0x59, 0xac, 0x52, 0x1f, 0x39, 0x15, 0x52, - 0xaa, 0x12, 0x3c, 0x0f, 0xe6, 0xe9, 0x84, 0x3e, 0x36, 0xe0, 0x77, 0x86, 0xd5, 0xba, 0x80, 0xbe, - 0x56, 0x6b, 0x58, 0xad, 0x7c, 0x9d, 0x50, 0xb5, 0xf2, 0x3b, 0x99, 0x5a, 0x3f, 0x92, 0xb0, 0x73, - 0xde, 0xb2, 0xf4, 0xbb, 0x7a, 0x15, 0x55, 0x50, 0xf9, 0xda, 0x7d, 0xa4, 0x35, 0x1c, 0x34, 0x6f, - 0x1a, 0x8e, 0xa5, 0x6a, 0x62, 0xff, 0x1b, 0x82, 0xae, 0xd5, 0x86, 0x51, 0xb6, 0xa9, 0x2a, 0xc9, - 0x87, 0x7c, 0x18, 0x06, 0x34, 0x8a, 0x59, 0x52, 0xc9, 0x5b, 0x0f, 0xaa, 0xb4, 0x9d, 0x5e, 0x3b, - 0x7d, 0x02, 0x22, 0xcb, 0x74, 0x69, 0x40, 0xf4, 0x44, 0xb2, 0xfd, 0x65, 0xc1, 0x41, 0xfb, 0x01, - 0xbf, 0xb8, 0x42, 0x5e, 0xdd, 0x40, 0xb2, 0x3f, 0x0e, 0x80, 0xa5, 0xfb, 0xd7, 0x01, 0x30, 0xbf, - 0xa5, 0xb2, 0xbe, 0xba, 0x8a, 0x33, 0x7e, 0x6c, 0x1a, 0x38, 0xe1, 0x4e, 0xd5, 0x7b, 0xbf, 0x99, - 0x3c, 0x54, 0xd1, 0x9d, 0xb5, 0xc6, 0xca, 0xb4, 0x66, 0xd6, 0xe8, 0x63, 0x3f, 0xfa, 0xdf, 0x71, - 0xbb, 0xbc, 0x3e, 0xe3, 0x6c, 0xd4, 0x91, 0x8d, 0x11, 0xec, 0x62, 0x2f, 0x26, 0xbf, 0xa0, 0xaf, - 0xae, 0x16, 0x06, 0x39, 0x32, 0x29, 0xaf, 0xc1, 0xc0, 0x92, 0x5d, 0x29, 0xa2, 0x7b, 0xaa, 0x55, - 0xb6, 0x6f, 0xd6, 0x9d, 0x9b, 0x0d, 0xa1, 0xa6, 0x49, 0x9d, 0x90, 0xa3, 0x94, 0x11, 0xbf, 0x52, - 0x02, 0xa4, 0x94, 0x3c, 0x0e, 0xa8, 0x81, 0x36, 0xff, 0xfb, 0x96, 0xdd, 0xb8, 0x53, 0xab, 0xaa, - 0x7a, 0xed, 0x86, 0xa9, 0xad, 0xa3, 0xf2, 0x75, 0x3c, 0x79, 0x62, 0x27, 0x1a, 0xac, 0x62, 0xb0, - 0x59, 0x62, 0xe9, 0xb7, 0x1a, 0x2b, 0x2f, 0xa0, 0x0d, 0x3c, 0xf1, 0xfd, 0x45, 0x5e, 0x97, 0x3c, - 0x06, 0xbd, 0xb6, 0x5e, 0x31, 0x54, 0xa7, 0x61, 0x91, 0x4d, 0x78, 0x7f, 0xb1, 0xd9, 0x10, 0xbf, - 0xde, 0x88, 0xf2, 0x45, 0xd7, 0x1b, 0xd1, 0x0e, 0x26, 0xd2, 0x9b, 0xe4, 0xa9, 0xcb, 0xb2, 0x5e, - 0x31, 0xf0, 0x12, 0x7a, 0x19, 0xb2, 0xee, 0xdf, 0x54, 0x90, 0xfe, 0xb9, 0x4b, 0x9f, 0x3f, 0x9e, - 0xcc, 0xda, 0xb8, 0xe5, 0x8f, 0x8f, 0x27, 0x8f, 0xa7, 0x98, 0xc5, 0x59, 0x4d, 0xa3, 0x76, 0x5a, - 0xa4, 0xa4, 0xe4, 0x31, 0xe8, 0x5c, 0x20, 0x4b, 0x59, 0x97, 0x64, 0xcf, 0xe7, 0x8f, 0x27, 0xb1, - 0xcd, 0x16, 0x71, 0xab, 0x72, 0x1f, 0x3f, 0x1a, 0xc2, 0x1c, 0x98, 0x9a, 0x7c, 0x80, 0xc8, 0x4f, - 0x2e, 0x7b, 0x91, 0xda, 0x07, 0x46, 0x70, 0xbf, 0x8b, 0x3d, 0x6e, 0x17, 0xbe, 0xce, 0x35, 0x0f, - 0x5d, 0x77, 0xd5, 0x6a, 0x03, 0xd1, 0x9d, 0xeb, 0xc1, 0xb8, 0x84, 0xec, 0x93, 0xcf, 0xdb, 0x8d, - 0x63, 0x5c, 0xe5, 0x3f, 0x32, 0xd8, 0xcf, 0x67, 0xcb, 0x35, 0xdd, 0x20, 0x35, 0x61, 0xce, 0x96, - 0xba, 0xbd, 0xed, 0xd6, 0x8b, 0x30, 0xe0, 0xbb, 0x47, 0x49, 0x6a, 0x31, 0xcd, 0x92, 0x8a, 0x94, - 0x14, 0xbc, 0x76, 0x36, 0x91, 0xf1, 0xf5, 0x26, 0xe1, 0x55, 0xce, 0xce, 0xd6, 0xaf, 0x72, 0x76, - 0x89, 0xaf, 0x72, 0x5e, 0x85, 0xac, 0xed, 0xa8, 0x4e, 0xc3, 0xa6, 0xd7, 0xec, 0x0e, 0xc5, 0xaa, - 0x15, 0xcb, 0xba, 0x8c, 0xe1, 0x8b, 0x14, 0xaf, 0x50, 0x88, 0x2b, 0x6e, 0xc4, 0x2b, 0x5a, 0x39, - 0x8a, 0x6b, 0x1b, 0xf1, 0x40, 0xcc, 0x70, 0xbf, 0x49, 0x1e, 0x36, 0xcd, 0x92, 0x47, 0x6b, 0x6f, - 0xa0, 0x65, 0x47, 0x5d, 0x47, 0xcf, 0x59, 0xaa, 0xe1, 0x88, 0xbd, 0xf1, 0x3a, 0x64, 0x2b, 0x18, - 0x82, 0x6e, 0xaa, 0xa6, 0xe3, 0xc4, 0xc3, 0xb4, 0x3c, 0xf2, 0x58, 0xb5, 0x45, 0x8a, 0x5d, 0x38, - 0x11, 0xf7, 0xaa, 0x89, 0xc7, 0x91, 0xb2, 0x0f, 0x3f, 0x8d, 0xe0, 0x75, 0x31, 0x81, 0x36, 0x70, - 0x6c, 0x99, 0x75, 0xb9, 0x51, 0x1d, 0x1f, 0x84, 0x50, 0x9a, 0x1c, 0x74, 0x63, 0x7e, 0xd8, 0xb5, - 0x4c, 0xef, 0x33, 0x3e, 0x4a, 0x44, 0x47, 0xa0, 0x51, 0x22, 0xda, 0xe1, 0xf1, 0x76, 0xea, 0xd1, - 0x41, 0xc8, 0x2c, 0xd9, 0x15, 0x59, 0x85, 0x6e, 0xef, 0x71, 0xdf, 0x33, 0x09, 0x1e, 0x47, 0xe1, - 0xf2, 0xd3, 0xe9, 0xe0, 0x58, 0x7e, 0x29, 0x43, 0x0f, 0x7b, 0x77, 0x97, 0xe4, 0xd5, 0x1e, 0x60, - 0x7e, 0x26, 0x25, 0x20, 0x1b, 0xe5, 0xbf, 0x25, 0x18, 0x16, 0x3d, 0x48, 0x3a, 0x97, 0x40, 0x4c, - 0x80, 0x97, 0x7f, 0xb6, 0x3d, 0x3c, 0xc6, 0xd3, 0x3b, 0x12, 0x8c, 0xc5, 0x3e, 0x9e, 0xb9, 0x94, - 0x6e, 0x00, 0x2e, 0x72, 0x7e, 0xfe, 0x09, 0x90, 0x19, 0x8b, 0xdf, 0x92, 0x60, 0x6f, 0xe2, 0x2d, - 0xe2, 0x2b, 0xe9, 0x46, 0x12, 0x12, 0xc8, 0x3f, 0xf7, 0x84, 0x04, 0x18, 0xbb, 0x0f, 0x24, 0x18, - 0xe2, 0xbe, 0x7c, 0x3c, 0x9d, 0x30, 0x02, 0x0f, 0x29, 0x7f, 0xa9, 0x0d, 0x24, 0xc6, 0xca, 0xff, - 0x49, 0x90, 0x8f, 0x79, 0x75, 0x78, 0x31, 0x81, 0xb6, 0x18, 0x35, 0x3f, 0xdb, 0x36, 0x2a, 0x63, - 0xee, 0xdf, 0x25, 0xd8, 0xcd, 0xbf, 0x19, 0x7a, 0x26, 0xb5, 0xcc, 0x3e, 0xac, 0xfc, 0x5f, 0xb5, - 0x83, 0xc5, 0xb8, 0xd9, 0x80, 0x9d, 0xe1, 0x0b, 0x49, 0x49, 0x41, 0x24, 0x04, 0x9f, 0x3f, 0xd7, - 0x1a, 0x7c, 0x40, 0x11, 0xfc, 0xbb, 0x41, 0x67, 0x52, 0x69, 0x39, 0x84, 0x95, 0xa8, 0x88, 0xf8, - 0xbb, 0x3d, 0xff, 0x04, 0xbb, 0xa2, 0x77, 0x54, 0x4e, 0xa4, 0x21, 0xe9, 0xc7, 0xc8, 0x5f, 0x68, - 0x15, 0x83, 0x31, 0xf0, 0xbf, 0x12, 0x8c, 0x88, 0xb7, 0x37, 0x49, 0x74, 0x85, 0x98, 0xf9, 0xab, - 0xed, 0x62, 0x06, 0xdc, 0x29, 0xe6, 0x32, 0xea, 0xc5, 0x54, 0x06, 0xc8, 0x43, 0x4d, 0x74, 0xa7, - 0x14, 0x97, 0x48, 0xdd, 0x28, 0x99, 0x78, 0xb5, 0xf1, 0x4a, 0x7a, 0xb7, 0xe5, 0x12, 0x48, 0x8c, - 0x92, 0xa9, 0xef, 0x23, 0xbe, 0x2d, 0xc1, 0x68, 0xdc, 0x59, 0x70, 0xa1, 0x45, 0x8d, 0xf8, 0x23, - 0xc1, 0x5c, 0xfb, 0xb8, 0xc1, 0xe8, 0xc4, 0x3d, 0x2d, 0x3a, 0x93, 0xca, 0xcd, 0x43, 0x58, 0xc9, - 0xd1, 0x29, 0xee, 0x70, 0x06, 0x6b, 0x2b, 0xae, 0x9c, 0x5f, 0x48, 0xef, 0xf2, 0x61, 0xdc, 0x44, - 0x6d, 0xa5, 0x29, 0xc7, 0xfb, 0x52, 0xb4, 0xf8, 0x8d, 0x5e, 0xca, 0x14, 0x2d, 0x24, 0x90, 0x36, - 0x45, 0x27, 0x3e, 0x4d, 0x92, 0xff, 0x5f, 0x82, 0xf1, 0xf8, 0x2b, 0xd3, 0xe9, 0x92, 0x89, 0x00, - 0x3b, 0xbf, 0xf0, 0x24, 0xd8, 0x8c, 0xcb, 0x6f, 0x48, 0x30, 0x91, 0x70, 0x74, 0x7c, 0xb9, 0xf5, - 0x81, 0xfc, 0x8e, 0x72, 0xed, 0x89, 0xd0, 0x19, 0xa3, 0xff, 0x23, 0x41, 0x4e, 0x78, 0x6e, 0x78, - 0x3e, 0x95, 0xe1, 0x47, 0x11, 0xf3, 0x57, 0xda, 0x44, 0x0c, 0xe8, 0x2f, 0xe1, 0xfa, 0xe9, 0xe5, - 0xf4, 0xb6, 0xcf, 0x41, 0x4f, 0xd4, 0x5f, 0xca, 0xeb, 0xa3, 0x6f, 0x49, 0x20, 0x73, 0x4e, 0xa9, - 0x4e, 0x26, 0x95, 0x17, 0x22, 0x28, 0xf9, 0x8b, 0x2d, 0xa3, 0x30, 0x26, 0xfe, 0x11, 0x06, 0x22, - 0xe7, 0x3f, 0x49, 0x3b, 0x9c, 0x30, 0x42, 0xfe, 0x7c, 0x8b, 0x08, 0xfe, 0x55, 0x47, 0xf4, 0x64, - 0x25, 0x69, 0xd5, 0x11, 0xc1, 0x48, 0x5c, 0x75, 0x08, 0xcf, 0x34, 0x70, 0xbc, 0xe7, 0x1f, 0x68, - 0x24, 0xc5, 0x7b, 0x2e, 0x56, 0x62, 0xbc, 0x8f, 0x3d, 0x93, 0x90, 0xff, 0x53, 0x82, 0x3d, 0x82, - 0x03, 0x89, 0xb3, 0x89, 0x41, 0x90, 0x87, 0x96, 0xbf, 0xdc, 0x16, 0x5a, 0x80, 0x21, 0x41, 0x29, - 0xff, 0x6c, 0xe2, 0x5e, 0xbb, 0x2d, 0x86, 0xe2, 0xeb, 0xe0, 0xb2, 0x0d, 0xdb, 0x83, 0xd5, 0xd8, - 0x63, 0x09, 0xf4, 0x02, 0xd0, 0xf9, 0x33, 0xad, 0x40, 0x07, 0x22, 0x4a, 0x42, 0xdd, 0x2e, 0x49, - 0xac, 0x78, 0xf4, 0xc4, 0x88, 0x92, 0xae, 0x4e, 0x25, 0xd7, 0xa1, 0x3f, 0xf0, 0x2b, 0x4f, 0x47, - 0x13, 0xc8, 0xfa, 0x81, 0xf3, 0xa7, 0x5b, 0x00, 0xf6, 0x87, 0x8f, 0xc8, 0xef, 0xd7, 0xcd, 0xa4, - 0x22, 0xd4, 0x44, 0x48, 0x0c, 0x1f, 0xa2, 0x1f, 0x5e, 0xc3, 0xe6, 0x29, 0xf8, 0xd5, 0xb5, 0xb3, - 0xa9, 0x68, 0x86, 0xd1, 0x12, 0xcd, 0x33, 0xfe, 0xa7, 0xb6, 0x70, 0x11, 0x80, 0x5b, 0x25, 0x4c, - 0x52, 0x2e, 0x0f, 0x29, 0xb1, 0x08, 0x10, 0x57, 0xe2, 0xc3, 0xd9, 0x85, 0x53, 0xe0, 0x4b, 0xca, - 0x2e, 0x51, 0x94, 0xc4, 0xec, 0x22, 0xae, 0xe5, 0xe5, 0xbb, 0xde, 0xfc, 0xf4, 0xe1, 0x11, 0x69, - 0x6e, 0xed, 0xc3, 0x8f, 0x27, 0xa4, 0x47, 0x1f, 0x4f, 0x48, 0xbf, 0xfd, 0x78, 0x42, 0xfa, 0xaf, - 0x4f, 0x26, 0xb6, 0x3d, 0xfa, 0x64, 0x62, 0xdb, 0xaf, 0x3e, 0x99, 0xd8, 0xf6, 0xf7, 0x2f, 0xfa, - 0x8a, 0xfc, 0x8b, 0xde, 0x28, 0x37, 0xd4, 0x15, 0x7b, 0x86, 0x8d, 0x79, 0x5c, 0x33, 0x2d, 0xe4, - 0xff, 0x5c, 0x53, 0x75, 0x63, 0xa6, 0x66, 0x96, 0x1b, 0x55, 0x64, 0x37, 0x7f, 0x9e, 0x11, 0x1f, - 0x08, 0xac, 0x64, 0xf1, 0x4f, 0x2b, 0x9e, 0xfe, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x05, - 0xa8, 0x24, 0x9c, 0x52, 0x00, 0x00, + // 3976 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0x47, + 0x76, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x3f, 0xa2, 0x9a, 0x94, 0x38, 0x1c, 0xfe, 0xa4, 0xa6, 0x64, + 0xfd, 0x49, 0xfd, 0x3f, 0xa3, 0xc8, 0x12, 0x3f, 0x92, 0xcd, 0x58, 0xb4, 0xe4, 0xa1, 0x9c, 0x38, + 0x81, 0x9d, 0x41, 0xb3, 0xa7, 0x38, 0x6c, 0x73, 0xa6, 0x7b, 0xd4, 0xdd, 0x23, 0x89, 0x46, 0x80, + 0x38, 0x3e, 0x04, 0x4a, 0x1c, 0x04, 0x09, 0x10, 0x20, 0x40, 0x00, 0x03, 0x06, 0x02, 0xc4, 0x80, + 0x13, 0x24, 0x72, 0x10, 0x04, 0x3e, 0x24, 0x41, 0x10, 0xe4, 0x60, 0xf8, 0xa4, 0x04, 0x08, 0xb0, + 0xd8, 0x83, 0x76, 0x61, 0x1f, 0x6c, 0xf8, 0xb4, 0xd8, 0xcb, 0x02, 0xbb, 0x97, 0x45, 0x57, 0x55, + 0xd7, 0xf4, 0xa7, 0xaa, 0xbb, 0x67, 0x44, 0xda, 0xf2, 0xc2, 0x17, 0x89, 0x5d, 0xf5, 0xde, 0xab, + 0xf7, 0x5e, 0xbd, 0x4f, 0xd5, 0xab, 0xaa, 0x81, 0x19, 0xdd, 0x78, 0x1b, 0x69, 0x8e, 0x7e, 0x1f, + 0xcd, 0xa1, 0x87, 0xda, 0x86, 0x6a, 0x54, 0xd0, 0xdc, 0xfd, 0xd3, 0x6b, 0xc8, 0x51, 0x4f, 0xcf, + 0x39, 0x0f, 0x67, 0xeb, 0x96, 0xe9, 0x98, 0x72, 0x9e, 0x01, 0xcd, 0x7a, 0x40, 0xb3, 0x14, 0x28, + 0x3f, 0xa5, 0x99, 0x76, 0xcd, 0xb4, 0xe7, 0xd6, 0x54, 0xbb, 0x89, 0xa9, 0x99, 0xba, 0x41, 0x70, + 0xf3, 0xb3, 0xb4, 0xbf, 0xac, 0xdb, 0x8e, 0xa5, 0xaf, 0x35, 0x1c, 0xdd, 0x34, 0x18, 0x9c, 0xbf, + 0x91, 0xc2, 0x8f, 0x52, 0xf8, 0x9a, 0x5d, 0x99, 0xbb, 0x7f, 0xda, 0xfd, 0x8f, 0x76, 0x8c, 0x91, + 0x8e, 0x12, 0xfe, 0x9a, 0x23, 0x1f, 0xb4, 0x6b, 0xa4, 0x62, 0x56, 0x4c, 0xd2, 0xee, 0xfe, 0x45, + 0x5b, 0x8f, 0xc6, 0x88, 0xc6, 0xc4, 0x20, 0xa0, 0x87, 0x9a, 0xa0, 0xa6, 0xa5, 0x6a, 0xd5, 0x26, + 0x20, 0xf9, 0xa4, 0x60, 0x7b, 0xd4, 0x9a, 0x6e, 0x98, 0x73, 0xf8, 0x5f, 0xd2, 0xa4, 0x7c, 0x94, + 0x81, 0xe1, 0x15, 0xbb, 0xf2, 0x7a, 0xbd, 0xac, 0x3a, 0x68, 0xb5, 0x6e, 0x3a, 0x2b, 0xaa, 0xb5, + 0x89, 0x1c, 0x79, 0x04, 0xba, 0xd4, 0x72, 0x4d, 0x37, 0x72, 0xd2, 0x7e, 0xe9, 0x48, 0x6f, 0x91, + 0x7c, 0xc8, 0xe3, 0xd0, 0x5b, 0xc3, 0xfd, 0x25, 0xbd, 0x9c, 0xeb, 0xc0, 0x3d, 0x3d, 0xa4, 0x61, + 0xb9, 0x2c, 0x4f, 0x02, 0x18, 0xe8, 0x41, 0xc9, 0xd1, 0xb5, 0x4d, 0x64, 0xe5, 0x32, 0xb8, 0xb7, + 0xd7, 0x40, 0x0f, 0xee, 0xe2, 0x06, 0xf9, 0xf7, 0x60, 0xd4, 0xed, 0xae, 0xe9, 0x46, 0xa9, 0x6e, + 0xe9, 0x1a, 0xc2, 0x80, 0x25, 0x5b, 0x7f, 0x07, 0xe5, 0x3a, 0x5d, 0xd8, 0x85, 0x99, 0xcf, 0x9e, + 0x4e, 0xef, 0xfa, 0xf1, 0xd3, 0xe9, 0x71, 0xa2, 0x1b, 0xbb, 0xbc, 0x39, 0xab, 0x9b, 0x73, 0x35, + 0xd5, 0xd9, 0x98, 0xbd, 0x85, 0x2a, 0xaa, 0xb6, 0xb5, 0x84, 0xb4, 0xe2, 0xb0, 0x81, 0x1e, 0xac, + 0xe8, 0xc6, 0x1d, 0x97, 0x82, 0x4b, 0x78, 0x55, 0x7f, 0x07, 0xc9, 0x25, 0xc8, 0x7b, 0xa4, 0xef, + 0x35, 0x54, 0xc3, 0xd1, 0x9d, 0x2d, 0x1f, 0xf5, 0xae, 0xf4, 0xd4, 0xf7, 0x11, 0xea, 0xaf, 0x51, + 0x22, 0x6c, 0x80, 0x15, 0x18, 0xf2, 0x06, 0x30, 0x4c, 0x77, 0xb2, 0xd5, 0x6a, 0x2e, 0x9b, 0x9e, + 0xec, 0x20, 0x21, 0xfb, 0x2a, 0x45, 0x2d, 0x9c, 0x7d, 0xf4, 0xe1, 0xf4, 0xae, 0xaf, 0x3f, 0x9c, + 0xde, 0xf5, 0xde, 0x57, 0x8f, 0x8f, 0x11, 0xd5, 0xfe, 0xd9, 0x57, 0x8f, 0x8f, 0x4d, 0xb0, 0x69, + 0xe6, 0xcc, 0x88, 0x32, 0x09, 0xe3, 0x9c, 0xe6, 0x22, 0xb2, 0xeb, 0xa6, 0x61, 0x23, 0xe5, 0x17, + 0x9d, 0x30, 0xc6, 0xfa, 0x97, 0x90, 0xa5, 0xdf, 0x57, 0x5d, 0x7b, 0xf8, 0x61, 0x3a, 0x77, 0x7c, + 0x3a, 0xe5, 0x37, 0x21, 0xe7, 0x92, 0xd3, 0x0d, 0xdd, 0xd1, 0xd5, 0x6a, 0xa9, 0xa6, 0x5a, 0x15, + 0xdd, 0x28, 0x59, 0xaa, 0xa3, 0x9b, 0xb9, 0xee, 0xf4, 0x64, 0xf7, 0x1a, 0xe8, 0xc1, 0x32, 0xa1, + 0xb1, 0x82, 0x49, 0x14, 0x5d, 0x0a, 0x72, 0x19, 0x26, 0x30, 0xb3, 0xaa, 0x6e, 0x38, 0xc8, 0x50, + 0x0d, 0x0d, 0x05, 0x47, 0xe8, 0x49, 0x3f, 0xc2, 0x98, 0xcb, 0x78, 0x93, 0x8e, 0x6f, 0x94, 0xc2, + 0x65, 0xbe, 0x49, 0x2a, 0x51, 0x93, 0x0c, 0xdb, 0x96, 0x32, 0x03, 0x07, 0x84, 0x9d, 0xcc, 0x3c, + 0x3f, 0x95, 0x60, 0x37, 0x83, 0xba, 0xa3, 0x5a, 0x6a, 0xcd, 0x96, 0x2f, 0x40, 0xaf, 0xda, 0x70, + 0x36, 0x4c, 0x4b, 0x77, 0xb6, 0x88, 0x61, 0x2e, 0xe4, 0xfe, 0xef, 0x5f, 0x4f, 0x8e, 0xd0, 0xd8, + 0x38, 0x5f, 0x2e, 0x5b, 0xc8, 0xb6, 0x57, 0x1d, 0x4b, 0x37, 0x2a, 0xc5, 0x26, 0xa8, 0x7c, 0x1d, + 0xb2, 0x75, 0x4c, 0x01, 0xdb, 0x6c, 0xdf, 0x19, 0x65, 0x56, 0x1c, 0xdf, 0x67, 0xc9, 0x58, 0x0b, + 0x9d, 0xae, 0x7e, 0x8a, 0x14, 0xaf, 0x70, 0xdc, 0x95, 0xb2, 0x49, 0xd1, 0x95, 0x34, 0x17, 0x95, + 0x94, 0xa0, 0x2a, 0x63, 0x30, 0x1a, 0x6a, 0x62, 0x52, 0xfd, 0xb3, 0x04, 0xb0, 0x62, 0x57, 0x96, + 0x50, 0xdd, 0xb4, 0x75, 0x47, 0xde, 0x07, 0x59, 0x1b, 0x19, 0x65, 0x64, 0x51, 0x37, 0xa3, 0x5f, + 0xf2, 0x0c, 0x0c, 0xd8, 0x8d, 0x35, 0x55, 0xd3, 0xcc, 0x86, 0xe1, 0xf3, 0xb5, 0xfe, 0x66, 0xe3, + 0x72, 0x59, 0xbe, 0x08, 0x59, 0xb5, 0xe6, 0xfe, 0x8d, 0x7d, 0xad, 0xef, 0xcc, 0x18, 0xcd, 0x3c, + 0xb3, 0x6e, 0x66, 0x62, 0xe2, 0x2c, 0x9a, 0xba, 0xe1, 0x09, 0x43, 0xc0, 0x0b, 0xc7, 0xfd, 0x53, + 0x47, 0x87, 0x74, 0x25, 0x1a, 0xf6, 0x4b, 0x44, 0x59, 0x54, 0x46, 0x40, 0x6e, 0x7e, 0x31, 0x39, + 0x3e, 0x91, 0xa0, 0x6f, 0xc5, 0xae, 0xfc, 0xae, 0xee, 0x6c, 0x94, 0x2d, 0xf5, 0xc1, 0x77, 0x24, + 0xc8, 0x09, 0x81, 0x20, 0x23, 0x7e, 0x41, 0x3c, 0x1e, 0x95, 0xbd, 0x38, 0x71, 0x79, 0x9f, 0x4c, + 0x94, 0x7f, 0x92, 0xf0, 0x74, 0x2d, 0x5a, 0x88, 0xc6, 0xc9, 0x5b, 0x7a, 0x4d, 0x77, 0x6e, 0x5b, + 0x2e, 0xfb, 0x22, 0xb1, 0xe6, 0xa1, 0xcb, 0x74, 0x01, 0xa8, 0x3d, 0x1d, 0x8a, 0xb3, 0x27, 0x97, + 0x24, 0xa6, 0x46, 0x99, 0x27, 0x98, 0x85, 0x4b, 0x02, 0xde, 0xf7, 0xfb, 0x79, 0xe7, 0x31, 0xa5, + 0xbc, 0x09, 0xd3, 0x82, 0x2e, 0x4f, 0x26, 0x37, 0x14, 0xe3, 0x51, 0x4a, 0x1b, 0xaa, 0xbd, 0x41, + 0x79, 0xef, 0xc5, 0x2d, 0x2f, 0xab, 0xf6, 0x86, 0x3c, 0x04, 0x19, 0x8d, 0xcd, 0x85, 0xfb, 0x67, + 0xa1, 0xc7, 0xe3, 0x46, 0xf9, 0x77, 0x09, 0x26, 0x57, 0xec, 0xca, 0x82, 0xea, 0x68, 0x1b, 0xbc, + 0x31, 0x6c, 0xa1, 0x52, 0x16, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, + 0xe1, 0x45, 0x81, 0x5a, 0x5e, 0xf0, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x2f, 0x12, 0x1c, 0x8a, 0x85, + 0x60, 0x3a, 0x3a, 0x00, 0xfd, 0x4d, 0x1d, 0x21, 0x3b, 0x27, 0xed, 0xcf, 0x1c, 0xe9, 0x2d, 0xf6, + 0x31, 0x2d, 0x21, 0x5b, 0x9e, 0x85, 0x61, 0x0d, 0xd3, 0x28, 0x97, 0x08, 0x7b, 0x25, 0x4d, 0x2f, + 0x13, 0xf1, 0x7a, 0x8b, 0x7b, 0x68, 0x17, 0x21, 0xbb, 0xa8, 0x97, 0x6d, 0xf9, 0x04, 0xc8, 0xeb, + 0xaa, 0x5e, 0x0d, 0x81, 0x67, 0x30, 0xf8, 0x10, 0xe9, 0x69, 0x42, 0xfb, 0x74, 0xfe, 0x7e, 0x27, + 0xe4, 0x57, 0xec, 0xca, 0xb2, 0x61, 0x3b, 0xaa, 0xe1, 0x34, 0x73, 0xf5, 0x2d, 0xb5, 0x61, 0x68, + 0x1b, 0x42, 0x85, 0xef, 0x83, 0x2c, 0x4d, 0xb6, 0x64, 0x26, 0xe9, 0x97, 0x3b, 0xfb, 0xae, 0xe7, + 0x94, 0xca, 0xc8, 0x30, 0x6b, 0x5e, 0x22, 0x76, 0x5b, 0x96, 0xdc, 0x06, 0x79, 0x1a, 0xfa, 0xee, + 0x35, 0x4c, 0xc7, 0xeb, 0xc7, 0xc9, 0xb7, 0x08, 0xb8, 0x89, 0x00, 0x14, 0x61, 0x98, 0x97, 0xa5, + 0x5b, 0xc8, 0xa3, 0x43, 0xb5, 0x70, 0x8a, 0x7e, 0x03, 0xf6, 0x09, 0xd2, 0x73, 0x0b, 0x79, 0xd4, + 0x65, 0x2b, 0x92, 0x9b, 0x6f, 0x42, 0x7f, 0x20, 0x2f, 0xb7, 0x90, 0x40, 0xfb, 0x6a, 0xbe, 0xa4, + 0x3c, 0x03, 0x03, 0x54, 0x6b, 0x9a, 0x5e, 0x53, 0xab, 0x36, 0xce, 0x93, 0x03, 0xc5, 0x7e, 0xa2, + 0x38, 0xd2, 0x26, 0x1f, 0x82, 0x41, 0x4f, 0x77, 0x14, 0xaa, 0x17, 0x43, 0x0d, 0x50, 0xf5, 0x91, + 0xc6, 0xc2, 0x15, 0x81, 0x15, 0xcf, 0xf8, 0xad, 0x58, 0x30, 0xdd, 0xca, 0x41, 0x50, 0xc4, 0xbd, + 0xcd, 0x08, 0xdc, 0x8d, 0xc3, 0x00, 0x05, 0xbb, 0x83, 0xac, 0x3a, 0x72, 0x1a, 0x78, 0x21, 0xd0, + 0xbe, 0xe1, 0x84, 0x2c, 0x23, 0x13, 0xb1, 0x8c, 0x69, 0xe8, 0x23, 0xfb, 0x83, 0x92, 0xab, 0x15, + 0xcf, 0x74, 0x48, 0xd3, 0x82, 0xea, 0x39, 0x15, 0x06, 0xc0, 0x58, 0xc4, 0x66, 0x8a, 0x14, 0xe9, + 0x35, 0xb7, 0xc9, 0x75, 0x2a, 0x0a, 0x62, 0x6b, 0x6a, 0x15, 0x95, 0xd6, 0x55, 0xcd, 0x31, 0x2d, + 0x6c, 0x06, 0x03, 0xc5, 0x3d, 0xa4, 0x6b, 0xd5, 0xed, 0xb9, 0x89, 0x3b, 0xe4, 0x1b, 0x6c, 0x4c, + 0x67, 0xab, 0x8e, 0xf0, 0xf4, 0x0e, 0x9e, 0x39, 0xe8, 0x8b, 0x2d, 0x74, 0xc7, 0xe2, 0x45, 0x96, + 0xdb, 0xf8, 0xf3, 0xee, 0x56, 0x1d, 0x79, 0x9c, 0xb9, 0x7f, 0xcb, 0xcb, 0x30, 0x58, 0x53, 0x37, + 0x91, 0x55, 0x5a, 0x47, 0xc8, 0x5d, 0x08, 0xa1, 0x56, 0xd6, 0x41, 0xfd, 0x18, 0xf5, 0x26, 0x42, + 0x45, 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0xaf, 0xc3, 0x08, + 0x77, 0x15, 0x08, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0x09, 0xf8, 0x16, 0xe4, 0x84, 0xcb, 0xbf, 0xbe, + 0x16, 0x96, 0xc3, 0x35, 0xee, 0xda, 0x4f, 0x14, 0x20, 0xfa, 0x77, 0x26, 0x40, 0x0c, 0x6c, 0x73, + 0x80, 0x18, 0x6c, 0x2f, 0x40, 0x14, 0xae, 0x0b, 0x9c, 0xfa, 0x08, 0xc7, 0xa9, 0xb9, 0xfe, 0xa8, + 0x1c, 0x85, 0xc3, 0x09, 0x20, 0xcc, 0xbd, 0xff, 0xb4, 0x1b, 0x66, 0x9a, 0xb0, 0x0b, 0xba, 0xa1, + 0x5a, 0x5b, 0xb7, 0xeb, 0x2e, 0x27, 0xf6, 0x33, 0xb9, 0xf8, 0x0c, 0x0c, 0x78, 0xde, 0xb7, 0x55, + 0x5b, 0x33, 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0xae, 0xe2, 0x36, 0xf9, 0x30, 0xec, 0xa6, 0x40, 0x75, + 0xcb, 0xbc, 0xaf, 0xbb, 0xd4, 0x89, 0xab, 0x0f, 0x92, 0xe6, 0x3b, 0xb4, 0x35, 0xec, 0x9b, 0x5d, + 0x6d, 0xfa, 0x66, 0xab, 0x21, 0x21, 0xea, 0xcb, 0xdd, 0xdb, 0xe7, 0xcb, 0x3d, 0xed, 0xfa, 0xf2, + 0x69, 0x18, 0x41, 0x0f, 0xeb, 0x3a, 0xf6, 0x32, 0xa3, 0xe4, 0xe8, 0x35, 0x64, 0x3b, 0x6a, 0xad, + 0x8e, 0x83, 0x43, 0xa6, 0x38, 0xdc, 0xec, 0xbb, 0xeb, 0x75, 0xb9, 0x28, 0x36, 0x72, 0x9c, 0x2a, + 0xaa, 0x21, 0xc3, 0xf1, 0xa1, 0x00, 0x41, 0x69, 0xf6, 0x35, 0x51, 0xd8, 0xc6, 0xbc, 0xcf, 0xbf, + 0x31, 0x0f, 0x45, 0xee, 0xfe, 0xb4, 0x39, 0x7d, 0x60, 0x67, 0x5c, 0x76, 0x70, 0x9b, 0x5d, 0x76, + 0x77, 0x9b, 0x2e, 0xbb, 0x24, 0x70, 0xd9, 0x13, 0x1c, 0x97, 0x15, 0xfa, 0x98, 0x72, 0x12, 0x8e, + 0xa7, 0x00, 0x63, 0xae, 0xfb, 0xbf, 0x01, 0xd7, 0xbd, 0xe1, 0x4e, 0xfb, 0xd6, 0xcd, 0x86, 0xd3, + 0xb0, 0x90, 0xfd, 0xfc, 0x67, 0xe7, 0x90, 0x47, 0x67, 0xb7, 0xd7, 0xa3, 0xbb, 0x45, 0x1e, 0xbd, + 0x0f, 0xb2, 0xd8, 0x3f, 0xb6, 0xb0, 0xfb, 0x65, 0x8a, 0xf4, 0x8b, 0xe3, 0xe9, 0xbd, 0xdb, 0xe7, + 0xe9, 0xb0, 0xdd, 0x59, 0xbb, 0x6f, 0xe7, 0xb2, 0x76, 0xff, 0x8e, 0x65, 0xed, 0x1f, 0x42, 0x40, + 0xb2, 0xaf, 0x06, 0x43, 0x80, 0x10, 0x8c, 0x85, 0x80, 0xc7, 0x12, 0xe4, 0x02, 0x7b, 0x74, 0x02, + 0xb5, 0xe3, 0x45, 0x85, 0xcb, 0x02, 0x61, 0x0f, 0xf0, 0x8b, 0x0a, 0x3e, 0xae, 0x94, 0x4f, 0x24, + 0xd8, 0x2f, 0xea, 0x4c, 0x5b, 0x57, 0x28, 0x42, 0xb7, 0x85, 0xec, 0x46, 0xd5, 0xf1, 0x0a, 0x6d, + 0x67, 0x92, 0x64, 0x08, 0x0e, 0xe2, 0x62, 0x62, 0x81, 0xa4, 0xa2, 0x47, 0xc8, 0xab, 0x55, 0x64, + 0x78, 0xb5, 0x8a, 0xff, 0x97, 0x60, 0x1f, 0x9f, 0x8a, 0x7c, 0x0d, 0x7a, 0x3c, 0xa3, 0xa4, 0x95, + 0xc2, 0x54, 0xa6, 0xc3, 0x90, 0xe4, 0xcb, 0xd0, 0x85, 0x3d, 0x85, 0x04, 0xe1, 0x74, 0xd8, 0x04, + 0x43, 0x3e, 0x0f, 0x99, 0x75, 0x84, 0x08, 0xcb, 0xe9, 0x10, 0x5d, 0xf8, 0x68, 0x0d, 0x86, 0xcc, + 0x45, 0xb3, 0x42, 0x9a, 0xa2, 0x30, 0xf5, 0x52, 0xd0, 0x86, 0x8e, 0xc7, 0xe9, 0xbf, 0x49, 0x98, + 0x63, 0x49, 0x85, 0x47, 0x09, 0x35, 0x18, 0x31, 0x73, 0xca, 0x1a, 0x2e, 0xc1, 0x88, 0x01, 0xb6, + 0xa3, 0x4c, 0xf5, 0xdf, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x6f, 0x53, 0x4b, 0x57, 0x39, 0x5a, 0x3a, + 0x1a, 0xd5, 0x92, 0x80, 0x3f, 0x05, 0xc1, 0x91, 0x24, 0x98, 0xed, 0xd0, 0xd5, 0xe7, 0x12, 0x5e, + 0x90, 0xf8, 0x6a, 0x62, 0xbc, 0x59, 0x11, 0x17, 0xf6, 0x96, 0x43, 0x85, 0xbd, 0x36, 0xf4, 0xe5, + 0x95, 0xf7, 0xae, 0x3f, 0x4a, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x9f, 0x4a, 0x38, 0x14, 0x27, 0xc1, + 0x3d, 0x8f, 0x65, 0xbe, 0x27, 0x12, 0xae, 0xa5, 0x2f, 0xba, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, + 0xed, 0xb1, 0x87, 0x6d, 0x91, 0xc2, 0x7a, 0x86, 0x53, 0x58, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, + 0xba, 0x9a, 0x36, 0x33, 0xc7, 0x99, 0x9e, 0xf1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0x26, 0x70, 0xe1, + 0x32, 0xd4, 0xca, 0xd2, 0xe0, 0xc7, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x1a, + 0x74, 0x96, 0x55, 0x47, 0x4d, 0x53, 0x44, 0xc6, 0x94, 0x96, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, + 0x0b, 0xe7, 0x1f, 0x25, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x4d, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, + 0x72, 0xd0, 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0x1f, + 0x08, 0x12, 0x0a, 0xb8, 0xf6, 0x4e, 0x4b, 0xff, 0x22, 0x47, 0xfa, 0x63, 0x02, 0xe9, 0x39, 0x8c, + 0x29, 0xb7, 0xe1, 0x68, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x79, 0x37, 0x8c, 0x78, 0x14, 0xc9, 0x99, + 0x58, 0x82, 0x0a, 0x52, 0x9d, 0x19, 0x5d, 0x83, 0x49, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, + 0xc9, 0x31, 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, + 0x97, 0xed, 0xbb, 0x26, 0x11, 0x69, 0xbe, 0x5a, 0x95, 0x5f, 0x81, 0x99, 0x32, 0x0b, 0x1c, 0x62, + 0x32, 0x9d, 0x98, 0xcc, 0x54, 0x39, 0x74, 0x4c, 0x19, 0x22, 0xf6, 0x07, 0xb0, 0x17, 0x73, 0x43, + 0xe3, 0x01, 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, + 0xdf, 0x86, 0x71, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, + 0x2c, 0x8e, 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0xd5, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, + 0x91, 0x2c, 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x3d, 0x98, 0x5e, 0xc3, + 0x46, 0x5c, 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0xc7, 0xd7, 0xa2, 0x8e, 0xc1, + 0x94, 0x58, 0x84, 0xc3, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0x0e, 0xac, 0x45, 0xeb, 0x0a, + 0x21, 0x23, 0x7b, 0x10, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, + 0x4e, 0x73, 0x42, 0xca, 0x64, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x94, 0x85, 0x09, 0x5e, 0x07, + 0x8b, 0x1c, 0xb3, 0x30, 0x8c, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0xf6, 0xb8, 0x5d, 0x34, 0x08, + 0x93, 0x0e, 0xb9, 0x00, 0x63, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xd1, 0x26, 0x40, 0x10, + 0xf7, 0x18, 0xec, 0x69, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x37, 0x33, 0x50, 0xba, 0x16, + 0xb8, 0x00, 0xa3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1b, 0x32, 0x33, 0x8a, 0x37, 0x0f, + 0x93, 0xa1, 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x2a, 0x8c, + 0xf3, 0xe6, 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0x17, 0x21, 0xe7, 0xad, + 0x62, 0xfc, 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, + 0x1e, 0x46, 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x46, 0x48, 0x77, 0x08, 0x6d, 0x11, 0xa6, + 0xbc, 0xf1, 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x38, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, + 0x0f, 0x93, 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xdb, 0xa0, 0x78, + 0x7c, 0xf0, 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x32, + 0x1c, 0xa0, 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x9f, + 0x12, 0x4c, 0x71, 0xb6, 0x43, 0x69, 0x2a, 0x02, 0xdb, 0xb6, 0x4f, 0xb9, 0xc2, 0xf1, 0xe0, 0xc3, + 0x71, 0xbb, 0x39, 0x7f, 0x65, 0xe0, 0x3f, 0x24, 0x78, 0x21, 0x1e, 0x24, 0xed, 0x26, 0xe5, 0x8d, + 0x70, 0x7d, 0xe0, 0x52, 0x3a, 0x89, 0x9e, 0xad, 0x4a, 0xf0, 0xb3, 0x0e, 0x98, 0x88, 0xa3, 0xf5, + 0x3d, 0xac, 0x15, 0xc8, 0xbf, 0x03, 0x83, 0xf8, 0x42, 0x8e, 0x6e, 0x1a, 0xa5, 0x32, 0xaa, 0x3a, + 0x2a, 0x5e, 0xdd, 0xf7, 0x9d, 0x39, 0x1a, 0x7b, 0xb3, 0x89, 0x62, 0x2c, 0xb9, 0x08, 0xd4, 0x40, + 0x06, 0xea, 0xfe, 0x46, 0xf9, 0x0a, 0x64, 0xeb, 0xea, 0x96, 0xd9, 0x70, 0x5a, 0x39, 0xed, 0xa7, + 0x28, 0x3e, 0x95, 0xff, 0x0f, 0x59, 0x03, 0x73, 0x76, 0xb6, 0xdf, 0xaa, 0xd9, 0x27, 0xae, 0x85, + 0xe3, 0x19, 0x54, 0xfe, 0x4b, 0xc2, 0x8b, 0xe1, 0x78, 0xa8, 0xe7, 0xdb, 0xf8, 0x7f, 0x45, 0x2b, + 0x91, 0x38, 0xd3, 0x84, 0x94, 0xf5, 0xdd, 0xed, 0x3c, 0x59, 0x77, 0x4d, 0xb5, 0x37, 0xb1, 0xa9, + 0x75, 0xd1, 0xee, 0x15, 0xd5, 0xde, 0xf4, 0x04, 0xca, 0x36, 0x05, 0x4a, 0xdc, 0xd3, 0x71, 0x05, + 0x54, 0x14, 0x52, 0x24, 0xe2, 0xf5, 0xb1, 0x4d, 0xea, 0x1f, 0x77, 0xe0, 0x7b, 0xb2, 0xa2, 0xcd, + 0xce, 0xf7, 0x48, 0x49, 0x97, 0x38, 0x4a, 0x3a, 0x18, 0x55, 0x52, 0x54, 0x46, 0xe5, 0x10, 0x2e, + 0x10, 0x89, 0xba, 0x99, 0xaa, 0x3e, 0x90, 0xa0, 0x97, 0x2d, 0x83, 0x83, 0x0a, 0x90, 0x92, 0x14, + 0xd0, 0x91, 0xa8, 0x80, 0x4c, 0xbc, 0x02, 0x3a, 0x05, 0x0a, 0x68, 0x96, 0x2f, 0x94, 0x7f, 0x23, + 0xa9, 0xd6, 0xb7, 0x79, 0x0d, 0xaf, 0x18, 0x76, 0x6e, 0xdf, 0x9d, 0x98, 0x62, 0x63, 0xb8, 0x52, + 0x6e, 0xe1, 0x0c, 0x1b, 0x03, 0xd1, 0xd2, 0x8e, 0xfb, 0x4f, 0x3a, 0x60, 0xef, 0x8a, 0x5d, 0x59, + 0x65, 0xaa, 0xbe, 0x6b, 0xa9, 0x86, 0xbd, 0x1e, 0x63, 0xcb, 0xa7, 0x60, 0xc4, 0x36, 0x1b, 0x96, + 0x86, 0x4a, 0xbc, 0x49, 0x93, 0x49, 0xdf, 0xaa, 0x7f, 0xea, 0xf0, 0x7a, 0xdc, 0x76, 0x74, 0x83, + 0x9c, 0x76, 0xf3, 0x8c, 0x7d, 0xd4, 0x07, 0xb0, 0xca, 0xbf, 0xef, 0xd9, 0xd9, 0xda, 0x7d, 0xcf, + 0xd9, 0x90, 0x7e, 0xa7, 0xfc, 0xfa, 0x8d, 0x8a, 0xab, 0x4c, 0xe3, 0x32, 0x7a, 0xb4, 0x83, 0x19, + 0xf4, 0x7b, 0x1d, 0xf8, 0x4e, 0xe8, 0x8d, 0x87, 0x0e, 0xb2, 0x0c, 0xb5, 0xfa, 0x9b, 0xa2, 0xa7, + 0x13, 0x21, 0x3d, 0x05, 0xde, 0x09, 0x84, 0x85, 0xa5, 0xef, 0x04, 0xc2, 0xcd, 0x4c, 0x47, 0x5f, + 0x4b, 0xb8, 0x7e, 0x73, 0x4b, 0xbf, 0xd7, 0xd0, 0xf1, 0x8d, 0x66, 0xba, 0x60, 0x78, 0xb6, 0xfa, + 0x4d, 0x20, 0x78, 0x64, 0x42, 0xc1, 0x83, 0x2d, 0x00, 0x3a, 0xdb, 0x5b, 0x00, 0x48, 0xde, 0x02, + 0xe0, 0x64, 0xdc, 0xae, 0x35, 0x22, 0x91, 0x32, 0x85, 0x37, 0xad, 0x91, 0x76, 0xa6, 0x8a, 0x8f, + 0x48, 0x32, 0xbd, 0x51, 0x43, 0x56, 0x05, 0x19, 0xda, 0xd6, 0x2a, 0xbe, 0x9f, 0x41, 0x5f, 0x4c, + 0xec, 0x98, 0x3a, 0x0a, 0xa7, 0xe3, 0x12, 0x1f, 0x97, 0x19, 0x9a, 0xf8, 0xb8, 0x7d, 0xcd, 0xbb, + 0xe8, 0x1d, 0xf8, 0x01, 0xc8, 0xb2, 0xe1, 0x6e, 0x8a, 0x6c, 0x26, 0x2d, 0x39, 0x32, 0x7e, 0x4e, + 0x5c, 0x20, 0xa0, 0x97, 0xce, 0x90, 0x99, 0x5c, 0x61, 0xfe, 0xd1, 0xca, 0x62, 0x95, 0xfa, 0xc8, + 0x99, 0x90, 0x52, 0x95, 0xe0, 0x79, 0x30, 0x4f, 0x27, 0xf4, 0xe1, 0x02, 0xbf, 0x33, 0xac, 0xd6, + 0x25, 0xf4, 0x83, 0x5a, 0xc3, 0x6a, 0xe5, 0xeb, 0x84, 0xaa, 0x95, 0xdf, 0xc9, 0xd4, 0xfa, 0xb9, + 0x84, 0x9d, 0xf3, 0x8e, 0xa5, 0xdf, 0xd7, 0xab, 0xa8, 0x82, 0xca, 0x37, 0x1e, 0x22, 0xad, 0xe1, + 0xa0, 0x45, 0xd3, 0x70, 0x2c, 0x55, 0x13, 0xfb, 0xdf, 0x08, 0x74, 0xad, 0x37, 0x8c, 0xb2, 0x4d, + 0x55, 0x49, 0x3e, 0xe4, 0xa3, 0x30, 0xa4, 0x51, 0xcc, 0x92, 0x4a, 0xde, 0x8d, 0x50, 0xa5, 0xed, + 0xf6, 0xda, 0xe9, 0x73, 0x12, 0x59, 0xa6, 0x4b, 0x03, 0xa2, 0x27, 0x92, 0xed, 0xaf, 0x0a, 0x0e, + 0xda, 0x0f, 0xf9, 0xc5, 0x15, 0xf2, 0xea, 0x06, 0x92, 0x83, 0x71, 0x00, 0x2c, 0xdd, 0xbf, 0x0d, + 0x80, 0xf9, 0x2d, 0x95, 0xf5, 0xf5, 0x75, 0x9c, 0xf1, 0x63, 0xd3, 0xc0, 0x29, 0x77, 0xaa, 0x3e, + 0xfe, 0xc9, 0xf4, 0x91, 0x8a, 0xee, 0x6c, 0x34, 0xd6, 0x66, 0x35, 0xb3, 0x46, 0x1f, 0x0e, 0xd2, + 0xff, 0x4e, 0xda, 0xe5, 0xcd, 0x39, 0x67, 0xab, 0x8e, 0x6c, 0x8c, 0x60, 0x17, 0x7b, 0x31, 0xf9, + 0x25, 0x7d, 0x7d, 0xbd, 0x30, 0xcc, 0x91, 0x49, 0x79, 0x0b, 0x86, 0x56, 0xec, 0x4a, 0x11, 0x3d, + 0x50, 0xad, 0xb2, 0x7d, 0xbb, 0xee, 0xdc, 0x6e, 0x08, 0x35, 0x4d, 0xea, 0x84, 0x1c, 0xa5, 0x8c, + 0xf9, 0x95, 0x12, 0x20, 0xa5, 0xe4, 0x71, 0x40, 0x0d, 0xb4, 0xf9, 0xdf, 0xca, 0xec, 0xc5, 0x9d, + 0x5a, 0x55, 0xd5, 0x6b, 0xb7, 0x4c, 0x6d, 0x13, 0x95, 0x6f, 0xe2, 0xc9, 0x13, 0x3b, 0xd1, 0x70, + 0x15, 0x83, 0xcd, 0x13, 0x4b, 0xbf, 0xd3, 0x58, 0x7b, 0x05, 0x6d, 0xe1, 0x89, 0xef, 0x2f, 0xf2, + 0xba, 0xe4, 0x09, 0xe8, 0xb5, 0xf5, 0x8a, 0xa1, 0x3a, 0x0d, 0x8b, 0x6c, 0xc2, 0xfb, 0x8b, 0xcd, + 0x86, 0xf8, 0xf5, 0x46, 0x94, 0x2f, 0xba, 0xde, 0x88, 0x76, 0x30, 0x91, 0xde, 0x25, 0xcf, 0x66, + 0x56, 0xf5, 0x8a, 0x81, 0x97, 0xd0, 0xab, 0x90, 0x75, 0xff, 0xa6, 0x82, 0xf4, 0x2f, 0x5c, 0xf9, + 0xe6, 0xe9, 0x74, 0xd6, 0xc6, 0x2d, 0xbf, 0x7c, 0x3a, 0x7d, 0x32, 0xc5, 0x2c, 0xce, 0x6b, 0x1a, + 0xb5, 0xd3, 0x22, 0x25, 0x25, 0x4f, 0x40, 0xe7, 0x12, 0x59, 0xca, 0xba, 0x24, 0x7b, 0xbe, 0x79, + 0x3a, 0x8d, 0x6d, 0xb6, 0x88, 0x5b, 0x95, 0x87, 0xf8, 0x01, 0x12, 0xe6, 0xc0, 0xd4, 0xe4, 0x43, + 0x44, 0x7e, 0x72, 0xd9, 0x8b, 0xd4, 0x3e, 0x30, 0x82, 0xfb, 0x5d, 0xec, 0x71, 0xbb, 0xf0, 0x75, + 0xae, 0x45, 0xe8, 0xba, 0xaf, 0x56, 0x1b, 0x88, 0xee, 0x5c, 0x0f, 0xc7, 0x25, 0x64, 0x9f, 0x7c, + 0xde, 0x6e, 0x1c, 0xe3, 0x2a, 0x7f, 0x9e, 0xc1, 0x7e, 0x3e, 0x5f, 0xae, 0xe9, 0x06, 0xa9, 0x09, + 0x73, 0xb6, 0xd4, 0xed, 0x6d, 0xb7, 0x5e, 0x85, 0x21, 0xdf, 0x3d, 0x4a, 0x52, 0x8b, 0x69, 0x96, + 0x54, 0xa4, 0xa4, 0xe0, 0xb5, 0xbb, 0x89, 0x8c, 0xaf, 0x37, 0x09, 0xaf, 0x72, 0x76, 0xb6, 0x7e, + 0x95, 0xb3, 0x4b, 0x7c, 0x95, 0xf3, 0x3a, 0x64, 0x6d, 0x47, 0x75, 0x1a, 0x36, 0xbd, 0x66, 0x77, + 0x24, 0x56, 0xad, 0x58, 0xd6, 0x55, 0x0c, 0x5f, 0xa4, 0x78, 0x85, 0x42, 0x5c, 0x71, 0x23, 0x5e, + 0xd1, 0xca, 0x71, 0x5c, 0xdb, 0x88, 0x07, 0x62, 0x86, 0xfb, 0x0f, 0xe4, 0x91, 0xd4, 0x3c, 0x79, + 0x00, 0xf7, 0x0e, 0x5a, 0x75, 0xd4, 0x4d, 0xf4, 0x92, 0xa5, 0x1a, 0x8e, 0xd8, 0x1b, 0x6f, 0x42, + 0xb6, 0x82, 0x21, 0xe8, 0xa6, 0x6a, 0x36, 0x4e, 0x3c, 0x4c, 0xcb, 0x23, 0x8f, 0x55, 0x5b, 0xa4, + 0xd8, 0x85, 0x53, 0x71, 0x2f, 0xa4, 0x78, 0x1c, 0x29, 0x07, 0xf0, 0xd3, 0x08, 0x5e, 0x17, 0x13, + 0x68, 0x0b, 0xc7, 0x96, 0x79, 0x97, 0x1b, 0xd5, 0xf1, 0x41, 0x08, 0xa5, 0xc9, 0x41, 0x37, 0xe6, + 0x87, 0x5d, 0xcb, 0xf4, 0x3e, 0xe3, 0xa3, 0x44, 0x74, 0x04, 0x1a, 0x25, 0xa2, 0x1d, 0x1e, 0x6f, + 0x67, 0x9e, 0x1c, 0x86, 0xcc, 0x8a, 0x5d, 0x91, 0x55, 0xe8, 0xf6, 0x1e, 0x0a, 0xbe, 0x90, 0xe0, + 0x71, 0x14, 0x2e, 0x3f, 0x9b, 0x0e, 0x8e, 0xe5, 0x97, 0x32, 0xf4, 0xb0, 0x37, 0x7c, 0x49, 0x5e, + 0xed, 0x01, 0xe6, 0xe7, 0x52, 0x02, 0xb2, 0x51, 0xfe, 0x4a, 0x82, 0x51, 0xd1, 0xe3, 0xa6, 0x0b, + 0x09, 0xc4, 0x04, 0x78, 0xf9, 0x17, 0xdb, 0xc3, 0x63, 0x3c, 0x7d, 0x28, 0xc1, 0x44, 0xec, 0xe3, + 0x99, 0x2b, 0xe9, 0x06, 0xe0, 0x22, 0xe7, 0x17, 0x9f, 0x01, 0x99, 0xb1, 0xf8, 0x8f, 0x12, 0xec, + 0x4f, 0xbc, 0x45, 0x7c, 0x2d, 0xdd, 0x48, 0x42, 0x02, 0xf9, 0x97, 0x9e, 0x91, 0x00, 0x63, 0xf7, + 0x91, 0x04, 0x23, 0xdc, 0x57, 0x94, 0x67, 0x13, 0x46, 0xe0, 0x21, 0xe5, 0xaf, 0xb4, 0x81, 0xc4, + 0x58, 0xf9, 0x5b, 0x09, 0xf2, 0x31, 0x2f, 0x18, 0x2f, 0x27, 0xd0, 0x16, 0xa3, 0xe6, 0xe7, 0xdb, + 0x46, 0x65, 0xcc, 0xbd, 0x2f, 0xc1, 0x5e, 0xfe, 0xcd, 0xd0, 0x73, 0xa9, 0x65, 0xf6, 0x61, 0xe5, + 0x7f, 0xab, 0x1d, 0x2c, 0xc6, 0xcd, 0x16, 0xec, 0x0e, 0x5f, 0x48, 0x4a, 0x0a, 0x22, 0x21, 0xf8, + 0xfc, 0x85, 0xd6, 0xe0, 0x03, 0x8a, 0xe0, 0xdf, 0x0d, 0x3a, 0x97, 0x4a, 0xcb, 0x21, 0xac, 0x44, + 0x45, 0xc4, 0xdf, 0xed, 0xf9, 0x23, 0xd8, 0x13, 0xbd, 0xa3, 0x72, 0x2a, 0x0d, 0x49, 0x3f, 0x46, + 0xfe, 0x52, 0xab, 0x18, 0x8c, 0x81, 0xbf, 0x91, 0x60, 0x4c, 0xbc, 0xbd, 0x49, 0xa2, 0x2b, 0xc4, + 0xcc, 0x5f, 0x6f, 0x17, 0x33, 0xe0, 0x4e, 0x31, 0x97, 0x51, 0x2f, 0xa7, 0x32, 0x40, 0x1e, 0x6a, + 0xa2, 0x3b, 0xa5, 0xb8, 0x44, 0xea, 0x46, 0xc9, 0xc4, 0xab, 0x8d, 0xd7, 0xd2, 0xbb, 0x2d, 0x97, + 0x40, 0x62, 0x94, 0x4c, 0x7d, 0x1f, 0xf1, 0x03, 0x09, 0xc6, 0xe3, 0xce, 0x82, 0x0b, 0x2d, 0x6a, + 0xc4, 0x1f, 0x09, 0x16, 0xda, 0xc7, 0x0d, 0x46, 0x27, 0xee, 0x69, 0xd1, 0xb9, 0x54, 0x6e, 0x1e, + 0xc2, 0x4a, 0x8e, 0x4e, 0x71, 0x87, 0x33, 0x58, 0x5b, 0x71, 0xe5, 0xfc, 0x42, 0x7a, 0x97, 0x0f, + 0xe3, 0x26, 0x6a, 0x2b, 0x4d, 0x39, 0xde, 0x97, 0xa2, 0xc5, 0x6f, 0xf4, 0x52, 0xa6, 0x68, 0x21, + 0x81, 0xb4, 0x29, 0x3a, 0xf1, 0x69, 0x92, 0xfc, 0x77, 0x12, 0x4c, 0xc6, 0x5f, 0x99, 0x4e, 0x97, + 0x4c, 0x04, 0xd8, 0xf9, 0xa5, 0x67, 0xc1, 0x66, 0x5c, 0xfe, 0xbd, 0x04, 0x53, 0x09, 0x47, 0xc7, + 0x57, 0x5b, 0x1f, 0xc8, 0xef, 0x28, 0x37, 0x9e, 0x09, 0x9d, 0x31, 0xfa, 0xd7, 0x12, 0xe4, 0x84, + 0xe7, 0x86, 0x17, 0x53, 0x19, 0x7e, 0x14, 0x31, 0x7f, 0xad, 0x4d, 0xc4, 0x80, 0xfe, 0x12, 0xae, + 0x9f, 0x5e, 0x4d, 0x6f, 0xfb, 0x1c, 0xf4, 0x44, 0xfd, 0xa5, 0xbc, 0x3e, 0xfa, 0x9e, 0x04, 0x32, + 0xe7, 0x94, 0xea, 0x74, 0x52, 0x79, 0x21, 0x82, 0x92, 0xbf, 0xdc, 0x32, 0x0a, 0x63, 0xe2, 0x0f, + 0x61, 0x28, 0x72, 0xfe, 0x93, 0xb4, 0xc3, 0x09, 0x23, 0xe4, 0x2f, 0xb6, 0x88, 0xe0, 0x5f, 0x75, + 0x44, 0x4f, 0x56, 0x92, 0x56, 0x1d, 0x11, 0x8c, 0xc4, 0x55, 0x87, 0xf0, 0x4c, 0x03, 0xc7, 0x7b, + 0xfe, 0x81, 0x46, 0x52, 0xbc, 0xe7, 0x62, 0x25, 0xc6, 0xfb, 0xd8, 0x33, 0x09, 0xf9, 0x2f, 0x24, + 0xd8, 0x27, 0x38, 0x90, 0x38, 0x9f, 0x18, 0x04, 0x79, 0x68, 0xf9, 0xab, 0x6d, 0xa1, 0x05, 0x18, + 0x12, 0x94, 0xf2, 0xcf, 0x27, 0xee, 0xb5, 0xdb, 0x62, 0x28, 0xbe, 0x0e, 0x2e, 0xdb, 0x30, 0x10, + 0xac, 0xc6, 0x9e, 0x48, 0xa0, 0x17, 0x80, 0xce, 0x9f, 0x6b, 0x05, 0x3a, 0x10, 0x51, 0x12, 0xea, + 0x76, 0x49, 0x62, 0xc5, 0xa3, 0x27, 0x46, 0x94, 0x74, 0x75, 0x2a, 0xb9, 0x0e, 0xfd, 0x81, 0x5f, + 0x8c, 0x3a, 0x9e, 0x40, 0xd6, 0x0f, 0x9c, 0x3f, 0xdb, 0x02, 0xb0, 0x3f, 0x7c, 0x44, 0x7e, 0x0b, + 0x6f, 0x2e, 0x15, 0xa1, 0x26, 0x42, 0x62, 0xf8, 0x10, 0xfd, 0x88, 0x1b, 0x36, 0x4f, 0xc1, 0x2f, + 0xb8, 0x9d, 0x4f, 0x45, 0x33, 0x8c, 0x96, 0x68, 0x9e, 0xf1, 0x3f, 0xdb, 0x85, 0x8b, 0x00, 0xdc, + 0x2a, 0x61, 0x92, 0x72, 0x79, 0x48, 0x89, 0x45, 0x80, 0xb8, 0x12, 0x1f, 0xce, 0x2e, 0x9c, 0x02, + 0x5f, 0x52, 0x76, 0x89, 0xa2, 0x24, 0x66, 0x17, 0x71, 0x2d, 0x2f, 0xdf, 0xf5, 0xee, 0x57, 0x8f, + 0x8f, 0x49, 0x0b, 0x1b, 0x9f, 0x7d, 0x31, 0x25, 0x3d, 0xf9, 0x62, 0x4a, 0xfa, 0xe9, 0x17, 0x53, + 0xd2, 0x5f, 0x7e, 0x39, 0xb5, 0xeb, 0xc9, 0x97, 0x53, 0xbb, 0x7e, 0xf4, 0xe5, 0xd4, 0xae, 0xdf, + 0x7f, 0xd5, 0x57, 0xe4, 0x5f, 0xf6, 0x46, 0xb9, 0xa5, 0xae, 0xd9, 0x73, 0x6c, 0xcc, 0x93, 0x9a, + 0x69, 0x21, 0xff, 0xe7, 0x86, 0xaa, 0x1b, 0x73, 0x35, 0xb3, 0xdc, 0xa8, 0x22, 0xbb, 0xf9, 0x53, + 0x8f, 0xf8, 0x40, 0x60, 0x2d, 0x8b, 0x7f, 0xa6, 0xf1, 0xec, 0xaf, 0x03, 0x00, 0x00, 0xff, 0xff, + 0xcf, 0xe6, 0x59, 0x86, 0xe8, 0x52, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5942,6 +5948,16 @@ func (m *MsgInstantSpotMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x48 + } + if m.BaseDecimals != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x40 + } { size := m.MinNotional.Size() i -= size @@ -9232,6 +9248,12 @@ func (m *MsgInstantSpotMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinNotional.Size() n += 1 + l + sovTx(uint64(l)) + if m.BaseDecimals != 0 { + n += 1 + sovTx(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovTx(uint64(m.QuoteDecimals)) + } return n } @@ -12459,6 +12481,44 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/chain/exchange/types/wasm_maker_contract.go b/chain/exchange/types/wasm_maker_contract.go deleted file mode 100644 index 8b75eb9f..00000000 --- a/chain/exchange/types/wasm_maker_contract.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" -) - -type MintToUser struct { - SubaccountIDSender string `json:"subaccount_id_sender"` - Amount string `json:"amount"` -} - -type MintToUserMsg struct { - MintToUser MintToUser `json:"mint_to_user"` -} - -func NewMintToUserMsg(subaccountIDSender string, amount math.Int) MintToUserMsg { - return MintToUserMsg{ - MintToUser: MintToUser{ - SubaccountIDSender: subaccountIDSender, - Amount: amount.String(), - }, - } -} diff --git a/chain/helpers/common.go b/chain/helpers/common.go new file mode 100644 index 00000000..2254ea53 --- /dev/null +++ b/chain/helpers/common.go @@ -0,0 +1,27 @@ +package helpers + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func HasDuplicate[T comparable](elements []T) bool { + seen := make(map[T]struct{}) + for idx := range elements { + if _, ok := seen[elements[idx]]; ok { + return true // Duplicate found + } + seen[elements[idx]] = struct{}{} + } + return false +} + +func HasDuplicateCoins(slice []sdk.Coin) bool { + seen := make(map[string]struct{}) + for _, item := range slice { + if _, ok := seen[item.Denom]; ok { + return true + } + seen[item.Denom] = struct{}{} + } + return false +} diff --git a/chain/insurance/types/errors.go b/chain/insurance/types/errors.go deleted file mode 100644 index fb934756..00000000 --- a/chain/insurance/types/errors.go +++ /dev/null @@ -1,20 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" -) - -var ( - ErrInsuranceFundAlreadyExists = errors.Register(ModuleName, 1, "insurance fund already exists") - ErrInsuranceFundNotFound = errors.Register(ModuleName, 2, "insurance fund not found") - ErrRedemptionAlreadyExists = errors.Register(ModuleName, 3, "redemption already exists") - ErrInvalidDepositAmount = errors.Register(ModuleName, 4, "invalid deposit amount") - ErrInvalidDepositDenom = errors.Register(ModuleName, 5, "invalid deposit denom") - ErrPayoutTooLarge = errors.Register(ModuleName, 6, "insurance payout exceeds deposits") - ErrInvalidTicker = errors.Register(ModuleName, 7, "invalid ticker") - ErrInvalidQuoteDenom = errors.Register(ModuleName, 8, "invalid quote denom") - ErrInvalidOracle = errors.Register(ModuleName, 9, "invalid oracle") - ErrInvalidExpirationTime = errors.Register(ModuleName, 10, "invalid expiration time") - ErrInvalidMarketID = errors.Register(ModuleName, 11, "invalid marketID") - ErrInvalidShareDenom = errors.Register(ModuleName, 12, "invalid share denom") -) diff --git a/chain/insurance/types/events.go b/chain/insurance/types/events.go deleted file mode 100644 index ab1254f4..00000000 --- a/chain/insurance/types/events.go +++ /dev/null @@ -1 +0,0 @@ -package types diff --git a/chain/insurance/types/expected_keepers.go b/chain/insurance/types/expected_keepers.go deleted file mode 100644 index 0e5195ef..00000000 --- a/chain/insurance/types/expected_keepers.go +++ /dev/null @@ -1,20 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx context.Context, denomMeta banktypes.Metadata) -} diff --git a/chain/insurance/types/genesis.go b/chain/insurance/types/genesis.go deleted file mode 100644 index 701f339e..00000000 --- a/chain/insurance/types/genesis.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - "errors" -) - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if gs.NextRedemptionScheduleId == 0 { - return errors.New("NextRedemptionScheduleId should NOT be zero") - } - if gs.NextShareDenomId == 0 { - return errors.New("NextShareDenomId should NOT be zero") - } - - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - NextShareDenomId: 1, - NextRedemptionScheduleId: 1, - RedemptionSchedule: []RedemptionSchedule{}, - InsuranceFunds: []InsuranceFund{}, - } -} diff --git a/chain/insurance/types/insurance.go b/chain/insurance/types/insurance.go deleted file mode 100644 index de861276..00000000 --- a/chain/insurance/types/insurance.go +++ /dev/null @@ -1,56 +0,0 @@ -package types - -import ( - "fmt" - "time" - - "cosmossdk.io/math" - "github.com/ethereum/go-ethereum/common" - - oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" -) - -var ( - InsuranceFundInitialSupply = math.NewIntWithDecimal(1, 18) - InsuranceFundProtocolOwnedLiquiditySupply = math.NewIntWithDecimal(1, 16) - InsuranceFundCreatorSupply = InsuranceFundInitialSupply.Sub(InsuranceFundProtocolOwnedLiquiditySupply) -) - -func NewInsuranceFund( - marketID common.Hash, - depositDenom, poolTokenDenom string, - redemptionNoticePeriodDuration time.Duration, - ticker, oracleBase, oracleQuote string, oracleType oracletypes.OracleType, expiry int64, -) *InsuranceFund { - - return &InsuranceFund{ - DepositDenom: depositDenom, - InsurancePoolTokenDenom: poolTokenDenom, - RedemptionNoticePeriodDuration: redemptionNoticePeriodDuration, - Balance: math.ZeroInt(), - TotalShare: math.ZeroInt(), - MarketId: marketID.Hex(), - MarketTicker: ticker, - OracleBase: oracleBase, - OracleQuote: oracleQuote, - OracleType: oracleType, - Expiry: expiry, - } - -} - -func (fund InsuranceFund) ShareDenom() string { - return fund.InsurancePoolTokenDenom -} - -func (fund *InsuranceFund) AddTotalShare(shares math.Int) { - fund.TotalShare = fund.TotalShare.Add(shares) -} - -func (fund *InsuranceFund) SubTotalShare(shares math.Int) { - fund.TotalShare = fund.TotalShare.Sub(shares) -} - -func ShareDenomFromId(id uint64) string { - return fmt.Sprintf("share%d", id) -} diff --git a/chain/insurance/types/key.go b/chain/insurance/types/key.go deleted file mode 100644 index 1dd40c09..00000000 --- a/chain/insurance/types/key.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "time" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const ( - ModuleName = "insurance" - StoreKey = ModuleName -) - -var ( - // Key for insurance prefixes - InsuranceFundPrefixKey = []byte{0x02} - - // Key for insurance redemption prefixes - RedemptionSchedulePrefixKey = []byte{0x03} - - GlobalShareDenomIdPrefixKey = []byte{0x04, 0x00} - GlobalRedemptionScheduleIdPrefixKey = []byte{0x05, 0x00} - - ParamsKey = []byte{0x10} -) - -// GetRedemptionScheduleKey provides the key to store a single pending redemption -func GetRedemptionScheduleKey(redemptionID uint64, claimTime time.Time) []byte { - key := RedemptionSchedulePrefixKey - key = append(key, sdk.FormatTimeBytes(claimTime)...) - key = append(key, sdk.Uint64ToBigEndian(redemptionID)...) - return key -} - -// GetRedemptionScheduleKey provides the key to store a single pending redemption -func (sh RedemptionSchedule) GetRedemptionScheduleKey() []byte { - return GetRedemptionScheduleKey(sh.Id, sh.ClaimableRedemptionTime) -} diff --git a/chain/insurance/types/msgs.go b/chain/insurance/types/msgs.go deleted file mode 100644 index 689f01f8..00000000 --- a/chain/insurance/types/msgs.go +++ /dev/null @@ -1,184 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" -) - -const RouterKey = ModuleName - -var ( - _ sdk.Msg = &MsgCreateInsuranceFund{} - _ sdk.Msg = &MsgUnderwrite{} - _ sdk.Msg = &MsgRequestRedemption{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return "updateParams" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgCreateInsuranceFund) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgCreateInsuranceFund) Type() string { return "createInsuranceFund" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgCreateInsuranceFund) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.Ticker == "" || len(msg.Ticker) > 40 { - return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed 40 characters") - } - if msg.QuoteDenom == "" { - return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") - } - if msg.OracleBase == "" { - return errors.Wrap(ErrInvalidOracle, "oracle base should not be empty") - } - if msg.OracleQuote == "" { - return errors.Wrap(ErrInvalidOracle, "oracle quote should not be empty") - } - if msg.OracleType == oracletypes.OracleType_Unspecified { - return errors.Wrap(ErrInvalidOracle, "oracle type should not be unspecified") - } - if msg.QuoteDenom != msg.InitialDeposit.Denom { - return errors.Wrapf(ErrInvalidDepositDenom, "oracle quote denom %s does not match deposit denom %s", msg.QuoteDenom, msg.InitialDeposit.Denom) - } - - if msg.OracleType == oracletypes.OracleType_Provider && msg.Expiry != BinaryOptionsExpiryFlag && msg.Expiry != PerpetualExpiryFlag { - return errors.Wrap(ErrInvalidExpirationTime, "oracle expiration time should be -2 or -1 for OracleType_Provider") - } - - if !msg.InitialDeposit.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) - } - if !msg.InitialDeposit.IsPositive() || msg.InitialDeposit.Amount.GT(MaxUnderwritingAmount) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgCreateInsuranceFund) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgCreateInsuranceFund) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUnderwrite) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUnderwrite) Type() string { return "underwrite" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUnderwrite) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.MarketId == "" { - return errors.Wrap(ErrInvalidMarketID, msg.MarketId) - } - if !msg.Deposit.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Deposit.String()) - } - if !msg.Deposit.IsPositive() || msg.Deposit.Amount.GT(MaxUnderwritingAmount) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Deposit.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUnderwrite) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUnderwrite) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgRequestRedemption) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgRequestRedemption) Type() string { return "requestRedemption" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgRequestRedemption) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.MarketId == "" { - return errors.Wrap(ErrInvalidMarketID, msg.MarketId) - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - if !msg.Amount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgRequestRedemption) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgRequestRedemption) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} diff --git a/chain/insurance/types/params.go b/chain/insurance/types/params.go deleted file mode 100644 index 7cd8f19a..00000000 --- a/chain/insurance/types/params.go +++ /dev/null @@ -1,78 +0,0 @@ -package types - -import ( - "fmt" - "time" - - "cosmossdk.io/math" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -var _ paramtypes.ParamSet = &Params{} - -// insurance params default values -const ( - // DefaultInsurancePeriodDurationSeconds represents the number of seconds in two weeks - DefaultInsurancePeriod = time.Hour * 24 * 14 - DefaultBinaryOptionsInsurancePeriod = time.Minute -) - -// MaxUnderwritingAmount equals 1 trillion * 1e18 -var MaxUnderwritingAmount, _ = math.NewIntFromString("1000000000000000000000000000") -var PerpetualExpiryFlag int64 = -1 -var BinaryOptionsExpiryFlag int64 = -2 - -// Parameter keys -var ( - KeyDefaultRedemptionNoticePeriodDuration = []byte("defaultRedemptionNoticePeriodDuration") -) - -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// NewParams creates a new Params instance -func NewParams( - defaultRedemptionNoticePeriodDuration time.Duration, -) Params { - return Params{ - DefaultRedemptionNoticePeriodDuration: defaultRedemptionNoticePeriodDuration, - } -} - -// ParamSetPairs returns the parameter set pairs. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyDefaultRedemptionNoticePeriodDuration, &p.DefaultRedemptionNoticePeriodDuration, validateNoticePeriodDuration), - } -} - -// DefaultParams returns a default set of parameters. -func DefaultParams() Params { - return Params{ - DefaultRedemptionNoticePeriodDuration: DefaultInsurancePeriod, - } -} - -// Validate performs basic validation on insurance parameters. -func (p Params) Validate() error { - if err := validateNoticePeriodDuration(p.DefaultRedemptionNoticePeriodDuration); err != nil { - return err - } - - return nil -} - -func validateNoticePeriodDuration(i interface{}) error { - v, ok := i.(time.Duration) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v == 0 { - return fmt.Errorf("DefaultRedemptionNoticePeriodDuration must be positive: %d", v) - } - - return nil -} diff --git a/chain/insurance/types/paramset.go b/chain/insurance/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/insurance/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/ocr/types/expected_keepers.go b/chain/ocr/types/expected_keepers.go deleted file mode 100644 index feb64c63..00000000 --- a/chain/ocr/types/expected_keepers.go +++ /dev/null @@ -1,29 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - bank "github.com/cosmos/cosmos-sdk/x/bank/types" - params "github.com/cosmos/cosmos-sdk/x/params/types" -) - -// ParamSubspace defines the expected Subspace interfacace -type ParamSubspace interface { - WithKeyTable(table params.KeyTable) params.Subspace - Get(ctx sdk.Context, key []byte, ptr interface{}) - GetParamSet(ctx sdk.Context, ps params.ParamSet) - SetParamSet(ctx sdk.Context, ps params.ParamSet) -} - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx context.Context, denomMeta bank.Metadata) -} diff --git a/chain/ocr/types/genesis.go b/chain/ocr/types/genesis.go deleted file mode 100644 index 3739aca4..00000000 --- a/chain/ocr/types/genesis.go +++ /dev/null @@ -1,18 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/ocr/types/hooks.go b/chain/ocr/types/hooks.go deleted file mode 100644 index 5bec4b95..00000000 --- a/chain/ocr/types/hooks.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -type OcrHooks interface { - AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) - AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) - AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) -} - -var _ OcrHooks = MultiOcrHooks{} - -type MultiOcrHooks []OcrHooks - -func NewMultiOcrHooks(hooks ...OcrHooks) MultiOcrHooks { - return hooks -} - -func (h MultiOcrHooks) AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) { - for i := range h { - h[i].AfterSetFeedConfig(ctx, feedConfig) - } -} - -func (h MultiOcrHooks) AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) { - for i := range h { - h[i].AfterTransmit(ctx, feedId, answer, timestamp) - } -} - -func (h MultiOcrHooks) AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) { - for i := range h { - h[i].AfterFundFeedRewardPool(ctx, feedId, newPoolAmount) - } -} diff --git a/chain/ocr/types/msgs.go b/chain/ocr/types/msgs.go deleted file mode 100644 index 836a1c4a..00000000 --- a/chain/ocr/types/msgs.go +++ /dev/null @@ -1,470 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -) - -const ( - TypeMsgCreateFeed = "createFeed" - TypeMsgUpdateFeed = "updateFeed" - TypeMsgTransmit = "transmit" - TypeMsgFundFeedRewardPool = "fundFeedRewardPool" - TypeMsgWithdrawFeedRewardPool = "withdrawFeedRewardPool" - TypeMsgSetPayees = "setPayees" - TypeMsgTransferPayeeship = "transferPayeeship" - TypeMsgAcceptPayeeship = "acceptPayeeship" - TypeMsgUpdateParams = "updateParams" -) - -var ( - _ sdk.Msg = &MsgCreateFeed{} - _ sdk.Msg = &MsgUpdateFeed{} - _ sdk.Msg = &MsgTransmit{} - _ sdk.Msg = &MsgFundFeedRewardPool{} - _ sdk.Msg = &MsgWithdrawFeedRewardPool{} - _ sdk.Msg = &MsgSetPayees{} - _ sdk.Msg = &MsgTransferPayeeship{} - _ sdk.Msg = &MsgAcceptPayeeship{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -// ValidateBasic implements the sdk.Msg interface for MsgUpdateParams. -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgCreateFeed) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgCreateFeed) Type() string { return TypeMsgCreateFeed } - -// ValidateBasic implements the sdk.Msg interface for MsgCreateFeed. -func (msg MsgCreateFeed) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if err := msg.Config.ValidateBasic(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgCreateFeed) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgCreateFeed) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateFeed) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateFeed) Type() string { return TypeMsgUpdateFeed } - -// ValidateBasic implements the sdk.Msg interface for MsgUpdateFeed. -func (msg MsgUpdateFeed) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - seenTransmitters := make(map[string]struct{}, len(msg.Transmitters)) - for _, transmitter := range msg.Transmitters { - addr, err := sdk.AccAddressFromBech32(transmitter) - if err != nil { - return err - } - - if _, ok := seenTransmitters[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenTransmitters[addr.String()] = struct{}{} - } - } - - seenSigners := make(map[string]struct{}, len(msg.Signers)) - for _, signer := range msg.Signers { - addr, err := sdk.AccAddressFromBech32(signer) - if err != nil { - return err - } - - if _, ok := seenSigners[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenSigners[addr.String()] = struct{}{} - } - } - - if msg.LinkPerTransmission != nil { - if msg.LinkPerTransmission.IsNil() || !msg.LinkPerTransmission.IsPositive() { - return errors.Wrap(ErrIncorrectConfig, "LinkPerTransmission must be positive") - } - } - - if msg.LinkPerObservation != nil { - if msg.LinkPerObservation.IsNil() || !msg.LinkPerObservation.IsPositive() { - return errors.Wrap(ErrIncorrectConfig, "LinkPerObservation must be positive") - } - } - - if msg.LinkDenom == "" { - return sdkerrors.ErrInvalidCoins - } - - if msg.FeedAdmin != "" { - if _, err := sdk.AccAddressFromBech32(msg.FeedAdmin); err != nil { - return err - } - } - - if msg.BillingAdmin != "" { - if _, err := sdk.AccAddressFromBech32(msg.BillingAdmin); err != nil { - return err - } - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateFeed) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateFeed) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgTransmit) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgTransmit) Type() string { return TypeMsgTransmit } - -// ValidateBasic implements the sdk.Msg interface for MsgTransmit. -func (msg MsgTransmit) ValidateBasic() error { - if msg.Transmitter == "" { - return ErrNoTransmitter - } - - switch { - case len(msg.ConfigDigest) == 0: - return errors.Wrap(ErrIncorrectTransmissionData, "missing config digest") - case msg.FeedId == "": - return errors.Wrap(ErrIncorrectTransmissionData, "missing feed hash") - case msg.Report == nil: - return errors.Wrap(ErrIncorrectTransmissionData, "missing report") - } - - if len(msg.Report.Observers) > MaxNumOracles { - return errors.Wrap(ErrIncorrectTransmissionData, "too many observers") - } else if len(msg.Report.Observations) != len(msg.Report.Observers) { - return errors.Wrap(ErrIncorrectTransmissionData, "wrong observations count") - } - - if len(msg.Report.Observations) > MaxNumOracles { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "num observations out of bounds") - } - - for i := 0; i < len(msg.Report.Observations)-1; i++ { - inOrder := msg.Report.Observations[i].LTE(msg.Report.Observations[i+1]) - if !inOrder { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "observations not sorted") - } - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgTransmit) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgTransmit) GetSigners() []sdk.AccAddress { - transmitter, err := sdk.AccAddressFromBech32(msg.Transmitter) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{transmitter} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgFundFeedRewardPool) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgFundFeedRewardPool) Type() string { return TypeMsgFundFeedRewardPool } - -// ValidateBasic implements the sdk.Msg interface for MsgFundFeedRewardPool. -func (msg MsgFundFeedRewardPool) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgFundFeedRewardPool) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgFundFeedRewardPool) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgWithdrawFeedRewardPool) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgWithdrawFeedRewardPool) Type() string { return TypeMsgWithdrawFeedRewardPool } - -// ValidateBasic implements the sdk.Msg interface for MsgWithdrawFeedRewardPool. -func (msg MsgWithdrawFeedRewardPool) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgWithdrawFeedRewardPool) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgWithdrawFeedRewardPool) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgSetPayees) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgSetPayees) Type() string { return TypeMsgSetPayees } - -// ValidateBasic implements the sdk.Msg interface for MsgSetPayees. -func (msg MsgSetPayees) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if len(msg.Transmitters) != len(msg.Payees) || len(msg.Payees) == 0 { - return ErrInvalidPayees - } - - seenTransmitters := make(map[string]struct{}, len(msg.Transmitters)) - for _, transmitter := range msg.Transmitters { - addr, err := sdk.AccAddressFromBech32(transmitter) - if err != nil { - return err - } - - if _, ok := seenTransmitters[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenTransmitters[addr.String()] = struct{}{} - } - } - - seenPayees := make(map[string]struct{}, len(msg.Payees)) - for _, payee := range msg.Payees { - addr, err := sdk.AccAddressFromBech32(payee) - if err != nil { - return err - } - - if _, ok := seenPayees[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenPayees[addr.String()] = struct{}{} - } - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgSetPayees) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgSetPayees) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgTransferPayeeship) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgTransferPayeeship) Type() string { return TypeMsgTransferPayeeship } - -// ValidateBasic implements the sdk.Msg interface for MsgTransferPayeeship. -func (msg MsgTransferPayeeship) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if _, err := sdk.AccAddressFromBech32(msg.Transmitter); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Transmitter) - } - - if _, err := sdk.AccAddressFromBech32(msg.Proposed); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Proposed) - } - - if msg.Transmitter == msg.Proposed { - return errors.Wrap(sdkerrors.ErrInvalidAddress, "proposed cannot be the same as transmitter") - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgTransferPayeeship) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgTransferPayeeship) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgAcceptPayeeship) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgAcceptPayeeship) Type() string { return TypeMsgAcceptPayeeship } - -// ValidateBasic implements the sdk.Msg interface for MsgAcceptPayeeship. -func (msg MsgAcceptPayeeship) ValidateBasic() error { - if msg.Payee == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Payee) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if _, err := sdk.AccAddressFromBech32(msg.Transmitter); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Transmitter) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgAcceptPayeeship) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgAcceptPayeeship) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Payee) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} diff --git a/chain/oracle/types/band_ibc.go b/chain/oracle/types/band_ibc.go deleted file mode 100644 index 820053db..00000000 --- a/chain/oracle/types/band_ibc.go +++ /dev/null @@ -1,129 +0,0 @@ -package types - -import ( - "fmt" - - bandobi "github.com/bandprotocol/bandchain-packet/obi" - bandPacket "github.com/bandprotocol/bandchain-packet/packet" - - bandprice "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/hooks/price" -) - -func NewOracleRequestPacketData(clientID string, calldata []byte, r *BandOracleRequest) bandPacket.OracleRequestPacketData { - return bandPacket.OracleRequestPacketData{ - ClientID: clientID, - OracleScriptID: uint64(r.OracleScriptId), - Calldata: calldata, - AskCount: r.AskCount, - MinCount: r.MinCount, - FeeLimit: r.FeeLimit, - PrepareGas: r.PrepareGas, - ExecuteGas: r.ExecuteGas, - } -} - -// GetCalldata gets the Band IBC request call data based on the symbols and multiplier. -func (r *BandOracleRequest) GetCalldata(legacyScheme bool) []byte { - if legacyScheme { - return bandobi.MustEncode(bandprice.Input{ - Symbols: r.Symbols, - Multiplier: BandPriceMultiplier, - }) - } - - return bandobi.MustEncode(bandprice.SymbolInput{ - Symbols: r.Symbols, - MinimumSourceCount: uint8(r.MinSourceCount), - }) -} - -func DecodeOracleInput(data []byte) (OracleInput, error) { - var ( - legacyInput LegacyBandInput - newInput BandInput - err error - ) - - if err = bandobi.Decode(data, &legacyInput); err == nil { - return legacyInput, nil - } - - if err = bandobi.Decode(data, &newInput); err == nil { - return newInput, nil - } - - return nil, fmt.Errorf("failed to decode oracle input: %w", err) -} - -func DecodeOracleOutput(data []byte) (OracleOutput, error) { - var ( - legacyOutput LegacyBandOutput - newOutput BandOutput - err error - ) - - if err = bandobi.Decode(data, &legacyOutput); err == nil { - return legacyOutput, nil - } - - if err = bandobi.Decode(data, &newOutput); err == nil { - return newOutput, nil - } - - return nil, fmt.Errorf("failed to decode oracle output: %w", err) -} - -// it is assumed that the id of a symbol -// within OracleInput exists within OracleOutput - -type OracleInput interface { - PriceSymbols() []string - PriceMultiplier() uint64 -} - -type ( - LegacyBandInput bandprice.Input - BandInput bandprice.SymbolInput -) - -func (in LegacyBandInput) PriceSymbols() []string { - return in.Symbols -} - -func (in LegacyBandInput) PriceMultiplier() uint64 { - return in.Multiplier -} - -func (in BandInput) PriceSymbols() []string { - return in.Symbols -} - -func (in BandInput) PriceMultiplier() uint64 { - return BandPriceMultiplier -} - -type OracleOutput interface { - Rate(id int) uint64 - Valid(id int) bool -} - -type ( - LegacyBandOutput bandprice.Output - BandOutput bandprice.SymbolOutput -) - -func (out LegacyBandOutput) Rate(id int) uint64 { - return out.Pxs[id] -} - -func (out LegacyBandOutput) Valid(id int) bool { - return true -} - -func (out BandOutput) Rate(id int) uint64 { - return out.Responses[id].Rate -} - -func (out BandOutput) Valid(id int) bool { - return out.Responses[id].ResponseCode == 0 -} diff --git a/chain/oracle/types/coinbase_oracle.go b/chain/oracle/types/coinbase_oracle.go deleted file mode 100644 index ab02126b..00000000 --- a/chain/oracle/types/coinbase_oracle.go +++ /dev/null @@ -1,101 +0,0 @@ -package types - -import ( - "bytes" - "strings" - - "cosmossdk.io/errors" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" -) - -const ( - CoinbaseOraclePublicKey = "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" - preamblePrefix = "\x19Ethereum Signed Message:\n32" -) - -const CoinbaseABIJSON = `[{ - "name": "coinbase", - "stateMutability": "pure", - "type": "function", - "inputs": [ - { "internalType": "string", "name": "kind", "type": "string" }, - { "internalType": "uint64", "name": "timestamp", "type": "uint64" }, - { "internalType": "string", "name": "key", "type": "string" }, - { "internalType": "uint64", "name": "value", "type": "uint64" } - ], - "outputs": [] -}]` - -func ValidateCoinbaseSignature(message, signature []byte) error { - hash := crypto.Keccak256Hash(message) - return ValidateEthereumSignature(hash, signature, common.HexToAddress(CoinbaseOraclePublicKey)) -} - -func ParseCoinbaseMessage(message []byte) (*CoinbasePriceState, error) { - contractAbi, abiErr := abi.JSON(strings.NewReader(CoinbaseABIJSON)) - if abiErr != nil { - panic("Bad ABI constant!") - } - - // computed from web3.sha3('coinbase(string,uint64,string,uint64)').substr(0,10) - coinbaseMethod := common.FromHex("0x96f180bf") - method, err := contractAbi.MethodById(coinbaseMethod) - if err != nil { - return nil, err - } - - values, err := method.Inputs.Unpack(message) - if err != nil { - return nil, err - } - - var priceState CoinbasePriceState - if err := method.Inputs.Copy(&priceState, values); err != nil { - return nil, err - } - - if priceState.Kind != "prices" || priceState.Timestamp == 0 || priceState.Key == "" || priceState.Value == 0 { - return nil, ErrBadCoinbaseMessage - } - - return &priceState, nil -} - -// ValidateEthereumSignature takes a message, an associated signature and public key and -// returns an error if the signature isn't valid -// TODO: refactor to shared common dir, copy pasted below code from Peggy -func ValidateEthereumSignature(hash common.Hash, signature []byte, ethAddress common.Address) error { - - // convert malformed coinbase sig in oracle response to 65-byte signature - trimmedSig := signature[:65] - trimmedSig[64] = signature[95] - - if len(trimmedSig) < 65 { - return errors.Wrap(ErrInvalidEthereumSignature, "signature too short") - } - - // calculate recover id - if trimmedSig[64] == 27 || signature[64] == 28 { - trimmedSig[64] -= 27 - } - - // manually build the hash with ethereum prefix - preamblePrefix := []byte(preamblePrefix) - preambleMessage := append(preamblePrefix, hash.Bytes()...) // nolint:gocritic - preambleHash := crypto.Keccak256Hash(preambleMessage) - - // verify signature - pubkey, err := crypto.SigToPub(preambleHash.Bytes(), trimmedSig) - if err != nil { - return errors.Wrap(err, "signature to public key") - } - addr := crypto.PubkeyToAddress(*pubkey) - - if !bytes.Equal(addr.Bytes(), ethAddress.Bytes()) { - return errors.Wrapf(ErrInvalidEthereumSignature, "signature not matching, expected %s but got %s", ethAddress.Hex(), addr.Hex()) - } - - return nil -} diff --git a/chain/oracle/types/events.go b/chain/oracle/types/events.go deleted file mode 100644 index 2789dc3c..00000000 --- a/chain/oracle/types/events.go +++ /dev/null @@ -1,6 +0,0 @@ -package types - -// Auction module event types -const ( - EventTypeNewBid = "new_bid" -) diff --git a/chain/oracle/types/expected_keepers.go b/chain/oracle/types/expected_keepers.go deleted file mode 100644 index dd6e7ed2..00000000 --- a/chain/oracle/types/expected_keepers.go +++ /dev/null @@ -1,46 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - - ocrtypes "github.com/InjectiveLabs/sdk-go/chain/ocr/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error -} - -// ChannelKeeper defines the expected IBC channel keeper -type ChannelKeeper interface { - GetChannel(ctx sdk.Context, srcPort, srcChan string) (channel channeltypes.Channel, found bool) - GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool) - SendPacket( - ctx sdk.Context, - chanCap *capabilitytypes.Capability, - sourcePort string, - sourceChannel string, - timeoutHeight clienttypes.Height, - timeoutTimestamp uint64, - data []byte, - ) (sequence uint64, err error) - ChanCloseInit(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability) error -} - -// PortKeeper defines the expected IBC port keeper -type PortKeeper interface { - BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability -} - -type OcrKeeper interface { - GetTransmission(ctx sdk.Context, feedId string) *ocrtypes.Transmission -} diff --git a/chain/oracle/types/genesis.go b/chain/oracle/types/genesis.go deleted file mode 100644 index 561d04e5..00000000 --- a/chain/oracle/types/genesis.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - // TODO: validate stuff in genesis - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - BandIbcParams: DefaultBandIBCParams(), - } -} diff --git a/chain/oracle/types/paramset.go b/chain/oracle/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/oracle/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/oracle/types/pyth.go b/chain/oracle/types/pyth.go deleted file mode 100644 index 4b986b39..00000000 --- a/chain/oracle/types/pyth.go +++ /dev/null @@ -1,75 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - "github.com/ethereum/go-ethereum/common" -) - -func NewPythPriceState( - priceID common.Hash, - emaPrice, emaConf, conf math.LegacyDec, - publishTime int64, - price math.LegacyDec, - blockTime int64, -) *PythPriceState { - return &PythPriceState{ - PriceId: priceID.Hex(), - EmaPrice: emaPrice, - EmaConf: emaConf, - Conf: conf, - PublishTime: uint64(publishTime), - PriceState: *NewPriceState(price, blockTime), - } -} - -func (p *PythPriceState) Update( - emaPrice, emaConf, conf math.LegacyDec, - publishTime uint64, - price math.LegacyDec, - blockTime int64, -) { - p.EmaPrice = emaPrice - p.EmaConf = emaConf - p.Conf = conf - p.PublishTime = publishTime - p.PriceState.UpdatePrice(price, blockTime) -} - -func (p *PriceAttestation) GetPriceID() string { - return p.PriceId -} - -func (p *PriceAttestation) GetPriceIDHash() common.Hash { - return common.HexToHash(p.PriceId) -} - -func (p *PriceAttestation) Validate() error { - if len(p.GetPriceIDHash().Bytes()) != 32 { - return ErrInvalidPythPriceID - } - - if !(p.Price > 0) { - return ErrBadPrice - } - - if p.Expo > MaxPythExponent || p.Expo < MinPythExponent { - return ErrInvalidPythExponent - } - - if !(p.PublishTime > 0) { - return ErrInvalidPythPublishTime - } - - // validating EMA price/conf is omitted since it's not mission critical and we don't want to block normal price updates - return nil -} - -func GetExponentiatedDec(value, expo int64) math.LegacyDec { - // price * 10^-expo - if expo <= 0 { - return math.LegacyNewDecWithPrec(value, -expo) - } - - // price * 10^expo - return math.LegacyNewDec(value).Power(uint64(expo)) -} diff --git a/chain/oracle/types/stork.go b/chain/oracle/types/stork.go deleted file mode 100644 index 343eb8e8..00000000 --- a/chain/oracle/types/stork.go +++ /dev/null @@ -1,29 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" -) - -func NewStorkPriceState( - price math.LegacyDec, - timestamp uint64, - symbol string, - blockTime int64, -) *StorkPriceState { - return &StorkPriceState{ - Timestamp: timestamp, - Symbol: symbol, - Value: price, - PriceState: *NewPriceState(price, blockTime), - } -} - -func (s *StorkPriceState) Update(price math.LegacyDec, timestamp uint64, blockTime int64) { - s.Value = price - s.Timestamp = timestamp - s.PriceState.UpdatePrice(price, blockTime) -} - -func ScaleStorkPrice(price math.LegacyDec) math.LegacyDec { - return price.QuoTruncate(EighteenDecimals) -} diff --git a/chain/peggy/types/batch.go b/chain/peggy/types/batch.go deleted file mode 100644 index dc1d77da..00000000 --- a/chain/peggy/types/batch.go +++ /dev/null @@ -1,67 +0,0 @@ -package types - -import ( - "fmt" - "math/big" - "strings" - - accountsabi "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" -) - -// GetCheckpoint gets the checkpoint signature from the given outgoing tx batch -func (b OutgoingTxBatch) GetCheckpoint(peggyIDstring string) common.Hash { - - abi, err := accountsabi.JSON(strings.NewReader(OutgoingBatchTxCheckpointABIJSON)) - if err != nil { - panic("Bad ABI constant!") - } - - // the contract argument is not a arbitrary length array but a fixed length 32 byte - // array, therefore we have to utf8 encode the string (the default in this case) and - // then copy the variable length encoded data into a fixed length array. This function - // will panic if peggyId is too long to fit in 32 bytes - peggyID, err := strToFixByteArray(peggyIDstring) - if err != nil { - panic(err) - } - - // Create the methodName argument which salts the signature - methodNameBytes := []uint8("transactionBatch") - var batchMethodName [32]uint8 - copy(batchMethodName[:], methodNameBytes) - - // Run through the elements of the batch and serialize them - txAmounts := make([]*big.Int, len(b.Transactions)) - txDestinations := make([]common.Address, len(b.Transactions)) - txFees := make([]*big.Int, len(b.Transactions)) - for i, tx := range b.Transactions { - txAmounts[i] = tx.Erc20Token.Amount.BigInt() - txDestinations[i] = common.HexToAddress(tx.DestAddress) - txFees[i] = tx.Erc20Fee.Amount.BigInt() - } - - // the methodName needs to be the same as the 'name' above in the checkpointAbiJson - // but other than that it's a constant that has no impact on the output. This is because - // it gets encoded as a function name which we must then discard. - abiEncodedBatch, err := abi.Pack("submitBatch", - peggyID, - batchMethodName, - txAmounts, - txDestinations, - txFees, - big.NewInt(int64(b.BatchNonce)), - common.HexToAddress(b.TokenContract), - big.NewInt(int64(b.BatchTimeout)), - ) - - // this should never happen outside of test since any case that could crash on encoding - // should be filtered above. - if err != nil { - panic(fmt.Sprintf("Error packing checkpoint! %s/n", err)) - } - - hash := crypto.Keccak256Hash(abiEncodedBatch[4:]) - return hash -} diff --git a/chain/peggy/types/events.go b/chain/peggy/types/events.go deleted file mode 100644 index 413735c0..00000000 --- a/chain/peggy/types/events.go +++ /dev/null @@ -1,28 +0,0 @@ -package types - -const ( - EventTypeObservation = "observation" - EventTypeOutgoingBatch = "outgoing_batch" - - EventTypeMultisigUpdateRequest = "multisig_update_request" - EventTypeOutgoingBatchCanceled = "outgoing_batch_canceled" - EventTypeBridgeWithdrawalReceived = "withdrawal_received" - EventTypeBridgeDepositReceived = "deposit_received" - EventTypeBridgeWithdrawCanceled = "withdraw_canceled" - - AttributeKeyAttestationID = "attestation_id" - AttributeKeyBatchConfirmKey = "batch_confirm_key" - AttributeKeyValsetConfirmKey = "valset_confirm_key" - AttributeKeyMultisigID = "multisig_id" - AttributeKeyOutgoingBatchID = "batch_id" - AttributeKeyOutgoingTXID = "outgoing_tx_id" - AttributeKeyAttestationType = "attestation_type" - AttributeKeyContract = "bridge_contract" - AttributeKeyNonce = "nonce" - AttributeKeyValsetNonce = "valset_nonce" - AttributeKeyBatchNonce = "batch_nonce" - AttributeKeyBridgeChainID = "bridge_chain_id" - AttributeKeySetOperatorAddr = "set_operator_address" - AttributeKeyBadEthSignature = "bad_eth_signature" - AttributeKeyBadEthSignatureSubject = "bad_eth_signature_subject" -) diff --git a/chain/peggy/types/expected_keepers.go b/chain/peggy/types/expected_keepers.go deleted file mode 100644 index a76278f5..00000000 --- a/chain/peggy/types/expected_keepers.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - "context" - "time" - - "cosmossdk.io/math" - storetypes "cosmossdk.io/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - bank "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/distribution/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" -) - -// StakingKeeper defines the expected staking keeper methods -type StakingKeeper interface { - GetBondedValidatorsByPower(ctx context.Context) ([]stakingtypes.Validator, error) - GetLastValidatorPower(ctx context.Context, operator sdk.ValAddress) (int64, error) - GetLastTotalPower(ctx context.Context) (power math.Int, err error) - IterateValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - ValidatorQueueIterator(ctx context.Context, endTime time.Time, endHeight int64) (storetypes.Iterator, error) - GetParams(ctx context.Context) (stakingtypes.Params, error) - GetValidator(ctx context.Context, addr sdk.ValAddress) (validator stakingtypes.Validator, err error) - IterateBondedValidatorsByPower(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - IterateLastValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) - ValidatorByConsAddr(context.Context, sdk.ConsAddress) (stakingtypes.ValidatorI, error) - Slash(context.Context, sdk.ConsAddress, int64, int64, math.LegacyDec) (math.Int, error) - Jail(context.Context, sdk.ConsAddress) error - PowerReduction(ctx context.Context) (res math.Int) -} - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, name string, amt sdk.Coins) error - BurnCoins(ctx context.Context, name string, amt sdk.Coins) error - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - GetDenomMetaData(ctx context.Context, denom string) (bank.Metadata, bool) - GetSupply(ctx context.Context, denom string) sdk.Coin -} - -type SlashingKeeper interface { - GetValidatorSigningInfo(ctx context.Context, address sdk.ConsAddress) (info slashingtypes.ValidatorSigningInfo, err error) -} - -type DistributionKeeper interface { - FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error - GetFeePool(ctx context.Context) (feePool types.FeePool) - SetFeePool(ctx context.Context, feePool types.FeePool) -} diff --git a/chain/peggy/types/genesis.go b/chain/peggy/types/genesis.go deleted file mode 100644 index 46fd33ed..00000000 --- a/chain/peggy/types/genesis.go +++ /dev/null @@ -1,19 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -// ValidateBasic validates genesis state by looping through the params and -// calling their validation functions -func (s GenesisState) ValidateBasic() error { - if err := s.Params.ValidateBasic(); err != nil { - return errors.Wrap(err, "params") - } - return nil -} - -// DefaultGenesisState returns empty genesis state -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/peggy/types/params_legacy.go b/chain/peggy/types/params_legacy.go deleted file mode 100644 index f64a9856..00000000 --- a/chain/peggy/types/params_legacy.go +++ /dev/null @@ -1,108 +0,0 @@ -package types - -import paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - -var ( - // ParamsStoreKeyPeggyID stores the peggy id - ParamsStoreKeyPeggyID = []byte("PeggyID") - - // ParamsStoreKeyContractHash stores the contract hash - ParamsStoreKeyContractHash = []byte("ContractHash") - - // ParamsStoreKeyBridgeContractAddress stores the contract address - ParamsStoreKeyBridgeContractAddress = []byte("BridgeContractAddress") - - // ParamsStoreKeyBridgeContractStartHeight stores the bridge contract deployed height - ParamsStoreKeyBridgeContractStartHeight = []byte("BridgeContractChainHeight") - - // ParamsStoreKeyBridgeContractChainID stores the bridge chain id - ParamsStoreKeyBridgeContractChainID = []byte("BridgeChainID") - - // ParamsStoreKeyCosmosCoinDenom stores native cosmos coin denom - ParamsStoreKeyCosmosCoinDenom = []byte("CosmosCoinDenom") - - // ParamsStoreKeyCosmosCoinErc20Contract store L1 erc20 contract address of cosmos native coin - ParamsStoreKeyCosmosCoinErc20Contract = []byte("CosmosCoinErc20Contract") - - // ParamsStoreKeySignedValsetsWindow stores the signed blocks window - ParamsStoreKeySignedValsetsWindow = []byte("SignedValsetsWindow") - - // ParamsStoreKeySignedBatchesWindow stores the signed blocks window - ParamsStoreKeySignedBatchesWindow = []byte("SignedBatchesWindow") - - // ParamsStoreKeySignedClaimsWindow stores the signed blocks window - ParamsStoreKeySignedClaimsWindow = []byte("SignedClaimsWindow") - - // ParamsStoreKeyTargetBatchTimeout stores - ParamsStoreKeyTargetBatchTimeout = []byte("TargetBatchTimeout") - - // ParamsStoreKeyAverageBlockTime stores the average block time of the Injective Chain in milliseconds - ParamsStoreKeyAverageBlockTime = []byte("AverageBlockTime") - - // ParamsStoreKeyAverageEthereumBlockTime stores the average block time of Ethereum in milliseconds - ParamsStoreKeyAverageEthereumBlockTime = []byte("AverageEthereumBlockTime") - - // ParamsStoreSlashFractionValset stores the slash fraction valset - ParamsStoreSlashFractionValset = []byte("SlashFractionValset") - - // ParamsStoreSlashFractionBatch stores the slash fraction Batch - ParamsStoreSlashFractionBatch = []byte("SlashFractionBatch") - - // ParamsStoreSlashFractionClaim stores the slash fraction Claim - ParamsStoreSlashFractionClaim = []byte("SlashFractionClaim") - - // ParamsStoreSlashFractionConflictingClaim stores the slash fraction ConflictingClaim - ParamsStoreSlashFractionConflictingClaim = []byte("SlashFractionConflictingClaim") - - // ParamStoreUnbondSlashingValsetsWindow stores unbond slashing valset window - ParamStoreUnbondSlashingValsetsWindow = []byte("UnbondSlashingValsetsWindow") - - // ParamStoreClaimSlashingEnabled stores ClaimSlashing is enabled or not - ParamStoreClaimSlashingEnabled = []byte("ClaimSlashingEnabled") - - // ParamStoreSlashFractionBadEthSignature stores the amount by which a validator making a fraudulent eth signature will be slashed - ParamStoreSlashFractionBadEthSignature = []byte("SlashFractionBadEthSignature") - - // ParamStoreValsetRewardAmount is the amount of the coin, both denom and amount to issue - // to a relayer when they relay a valset - ParamStoreValsetRewardAmount = []byte("ValsetReward") - - ParamStoreAdmins = []byte("Admins") - - // Ensure that params implements the proper interface - _ paramtypes.ParamSet = &Params{} -) - -// ParamKeyTable for auth module -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// ParamSetPairs implements the ParamSet interface and returns all the key/value pairs -// pairs of auth module's parameters. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(ParamsStoreKeyPeggyID, &p.PeggyId, validatePeggyID), - paramtypes.NewParamSetPair(ParamsStoreKeyContractHash, &p.ContractSourceHash, validateContractHash), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractAddress, &p.BridgeEthereumAddress, validateBridgeContractAddress), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractChainID, &p.BridgeChainId, validateBridgeChainID), - paramtypes.NewParamSetPair(ParamsStoreKeyCosmosCoinDenom, &p.CosmosCoinDenom, validateCosmosCoinDenom), - paramtypes.NewParamSetPair(ParamsStoreKeyCosmosCoinErc20Contract, &p.CosmosCoinErc20Contract, validateCosmosCoinErc20Contract), - paramtypes.NewParamSetPair(ParamsStoreKeySignedValsetsWindow, &p.SignedValsetsWindow, validateSignedValsetsWindow), - paramtypes.NewParamSetPair(ParamsStoreKeySignedBatchesWindow, &p.SignedBatchesWindow, validateSignedBatchesWindow), - paramtypes.NewParamSetPair(ParamsStoreKeySignedClaimsWindow, &p.SignedClaimsWindow, validateSignedClaimsWindow), - paramtypes.NewParamSetPair(ParamsStoreKeyAverageBlockTime, &p.AverageBlockTime, validateAverageBlockTime), - paramtypes.NewParamSetPair(ParamsStoreKeyTargetBatchTimeout, &p.TargetBatchTimeout, validateTargetBatchTimeout), - paramtypes.NewParamSetPair(ParamsStoreKeyAverageEthereumBlockTime, &p.AverageEthereumBlockTime, validateAverageEthereumBlockTime), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionValset, &p.SlashFractionValset, validateSlashFractionValset), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionBatch, &p.SlashFractionBatch, validateSlashFractionBatch), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionClaim, &p.SlashFractionClaim, validateSlashFractionClaim), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionConflictingClaim, &p.SlashFractionConflictingClaim, validateSlashFractionConflictingClaim), - paramtypes.NewParamSetPair(ParamStoreSlashFractionBadEthSignature, &p.SlashFractionBadEthSignature, validateSlashFractionBadEthSignature), - paramtypes.NewParamSetPair(ParamStoreUnbondSlashingValsetsWindow, &p.UnbondSlashingValsetsWindow, validateUnbondSlashingValsetsWindow), - paramtypes.NewParamSetPair(ParamStoreClaimSlashingEnabled, &p.ClaimSlashingEnabled, validateClaimSlashingEnabled), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractStartHeight, &p.BridgeContractStartHeight, validateBridgeContractStartHeight), - paramtypes.NewParamSetPair(ParamStoreValsetRewardAmount, &p.ValsetReward, validateValsetReward), - paramtypes.NewParamSetPair(ParamStoreAdmins, &p.Admins, validateAdmins), - } -} diff --git a/chain/peggy/types/proposal.go b/chain/peggy/types/proposal.go deleted file mode 100644 index 5d55dfbe..00000000 --- a/chain/peggy/types/proposal.go +++ /dev/null @@ -1,76 +0,0 @@ -package types - -import ( - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" -) - -// constants -const ( - ProposalTypeBlacklistEthereumAddresses string = "ProposalTypeBlacklistEthereumAddresses" - ProposalTypeRevokeEthereumBlacklist string = "ProposalTypeRevokeEthereumBlacklist" -) - -func init() { - govtypes.RegisterProposalType(ProposalTypeBlacklistEthereumAddresses) - govtypes.RegisterProposalType(ProposalTypeRevokeEthereumBlacklist) -} - -// Implements Proposal Interface -var _ govtypes.Content = &BlacklistEthereumAddressesProposal{} -var _ govtypes.Content = &RevokeEthereumBlacklistProposal{} - -// GetTitle returns the title of this proposal. -func (p *BlacklistEthereumAddressesProposal) GetTitle() string { - return p.Title -} - -// GetDescription returns the description of this proposal. -func (p *BlacklistEthereumAddressesProposal) GetDescription() string { - return p.Description -} - -// ProposalRoute returns router key of this proposal. -func (p *BlacklistEthereumAddressesProposal) ProposalRoute() string { return RouterKey } - -// ProposalType returns proposal type of this proposal. -func (p *BlacklistEthereumAddressesProposal) ProposalType() string { - return ProposalTypeBlacklistEthereumAddresses -} - -// ValidateBasic returns ValidateBasic result of this proposal. -func (p *BlacklistEthereumAddressesProposal) ValidateBasic() error { - for _, blacklistAddress := range p.BlacklistAddresses { - if _, err := NewEthAddress(blacklistAddress); err != nil { - return err - } - } - return govtypes.ValidateAbstract(p) -} - -// GetTitle returns the title of this proposal. -func (p *RevokeEthereumBlacklistProposal) GetTitle() string { - return p.Title -} - -// GetDescription returns the description of this proposal. -func (p *RevokeEthereumBlacklistProposal) GetDescription() string { - return p.Description -} - -// ProposalRoute returns router key of this proposal. -func (p *RevokeEthereumBlacklistProposal) ProposalRoute() string { return RouterKey } - -// ProposalType returns proposal type of this proposal. -func (p *RevokeEthereumBlacklistProposal) ProposalType() string { - return ProposalTypeRevokeEthereumBlacklist -} - -// ValidateBasic returns ValidateBasic result of this proposal. -func (p *RevokeEthereumBlacklistProposal) ValidateBasic() error { - for _, blacklistAddress := range p.BlacklistAddresses { - if _, err := NewEthAddress(blacklistAddress); err != nil { - return err - } - } - return govtypes.ValidateAbstract(p) -} diff --git a/chain/peggy/types/proposal.pb.go b/chain/peggy/types/proposal.pb.go deleted file mode 100644 index dd9ece2a..00000000 --- a/chain/peggy/types/proposal.pb.go +++ /dev/null @@ -1,667 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: injective/peggy/v1/proposal.proto - -package types - -import ( - fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/gogoproto/gogoproto" - proto "github.com/cosmos/gogoproto/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type BlacklistEthereumAddressesProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - BlacklistAddresses []string `protobuf:"bytes,3,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` -} - -func (m *BlacklistEthereumAddressesProposal) Reset() { *m = BlacklistEthereumAddressesProposal{} } -func (m *BlacklistEthereumAddressesProposal) String() string { return proto.CompactTextString(m) } -func (*BlacklistEthereumAddressesProposal) ProtoMessage() {} -func (*BlacklistEthereumAddressesProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_e5b158ea063afb2f, []int{0} -} -func (m *BlacklistEthereumAddressesProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BlacklistEthereumAddressesProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_BlacklistEthereumAddressesProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *BlacklistEthereumAddressesProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlacklistEthereumAddressesProposal.Merge(m, src) -} -func (m *BlacklistEthereumAddressesProposal) XXX_Size() int { - return m.Size() -} -func (m *BlacklistEthereumAddressesProposal) XXX_DiscardUnknown() { - xxx_messageInfo_BlacklistEthereumAddressesProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_BlacklistEthereumAddressesProposal proto.InternalMessageInfo - -type RevokeEthereumBlacklistProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - BlacklistAddresses []string `protobuf:"bytes,3,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` -} - -func (m *RevokeEthereumBlacklistProposal) Reset() { *m = RevokeEthereumBlacklistProposal{} } -func (m *RevokeEthereumBlacklistProposal) String() string { return proto.CompactTextString(m) } -func (*RevokeEthereumBlacklistProposal) ProtoMessage() {} -func (*RevokeEthereumBlacklistProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_e5b158ea063afb2f, []int{1} -} -func (m *RevokeEthereumBlacklistProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RevokeEthereumBlacklistProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RevokeEthereumBlacklistProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RevokeEthereumBlacklistProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_RevokeEthereumBlacklistProposal.Merge(m, src) -} -func (m *RevokeEthereumBlacklistProposal) XXX_Size() int { - return m.Size() -} -func (m *RevokeEthereumBlacklistProposal) XXX_DiscardUnknown() { - xxx_messageInfo_RevokeEthereumBlacklistProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_RevokeEthereumBlacklistProposal proto.InternalMessageInfo - -func init() { - proto.RegisterType((*BlacklistEthereumAddressesProposal)(nil), "injective.peggy.v1.BlacklistEthereumAddressesProposal") - proto.RegisterType((*RevokeEthereumBlacklistProposal)(nil), "injective.peggy.v1.RevokeEthereumBlacklistProposal") -} - -func init() { proto.RegisterFile("injective/peggy/v1/proposal.proto", fileDescriptor_e5b158ea063afb2f) } - -var fileDescriptor_e5b158ea063afb2f = []byte{ - // 323 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x52, 0x3b, 0x4e, 0xc3, 0x40, - 0x10, 0xf5, 0x12, 0x81, 0x14, 0xd3, 0x99, 0x14, 0x21, 0x85, 0x13, 0x52, 0xa0, 0x34, 0xf1, 0xca, - 0xa2, 0xa3, 0x23, 0x88, 0x02, 0x41, 0x81, 0x52, 0xd2, 0x44, 0xfe, 0x8c, 0x9c, 0x25, 0xb6, 0x67, - 0xb5, 0x3b, 0x59, 0x29, 0x37, 0xa0, 0xe4, 0x08, 0x39, 0x03, 0x82, 0x3b, 0x20, 0xaa, 0x94, 0x94, - 0x28, 0x69, 0x38, 0x06, 0xc2, 0x3f, 0xe5, 0x08, 0x74, 0xfb, 0xde, 0x3c, 0xcd, 0x7b, 0xab, 0x37, - 0xf6, 0x99, 0xc8, 0x9f, 0x20, 0x22, 0x61, 0x80, 0x4b, 0x48, 0x92, 0x15, 0x37, 0x3e, 0x97, 0x0a, - 0x25, 0xea, 0x20, 0xf5, 0xa4, 0x42, 0x42, 0xc7, 0x69, 0x24, 0x5e, 0x21, 0xf1, 0x8c, 0xdf, 0x3b, - 0x8d, 0x50, 0x67, 0xa8, 0x67, 0x85, 0x82, 0x97, 0xa0, 0x94, 0xf7, 0x3a, 0x09, 0x26, 0x58, 0xf2, - 0x7f, 0xaf, 0x92, 0x1d, 0xbe, 0x33, 0x7b, 0x38, 0x49, 0x83, 0x68, 0x91, 0x0a, 0x4d, 0x37, 0x34, - 0x07, 0x05, 0xcb, 0xec, 0x2a, 0x8e, 0x15, 0x68, 0x0d, 0xfa, 0xa1, 0x72, 0x74, 0x3a, 0xf6, 0x21, - 0x09, 0x4a, 0xa1, 0xcb, 0x06, 0x6c, 0xd4, 0x9e, 0x96, 0xc0, 0x19, 0xd8, 0xc7, 0x31, 0xe8, 0x48, - 0x09, 0x49, 0x02, 0xf3, 0xee, 0x41, 0x31, 0xdb, 0xa7, 0x1c, 0x6e, 0x9f, 0x84, 0xf5, 0xf6, 0x59, - 0x50, 0xaf, 0xed, 0xb6, 0x06, 0xad, 0x51, 0x7b, 0xea, 0x34, 0xa3, 0xc6, 0xf0, 0xf2, 0xfc, 0x79, - 0xdd, 0xb7, 0x7e, 0xd6, 0x7d, 0xeb, 0xf3, 0x6d, 0xdc, 0xab, 0xf2, 0x27, 0x68, 0x3c, 0xe3, 0x87, - 0x40, 0x81, 0xef, 0x5d, 0x63, 0x4e, 0x90, 0xd3, 0xf0, 0x95, 0xd9, 0xfd, 0x29, 0x18, 0x5c, 0x40, - 0x1d, 0xba, 0xf9, 0xc5, 0xbf, 0x0d, 0x3d, 0x81, 0x8f, 0xad, 0xcb, 0x36, 0x5b, 0x97, 0x7d, 0x6f, - 0x5d, 0xf6, 0xb2, 0x73, 0xad, 0xcd, 0xce, 0xb5, 0xbe, 0x76, 0xae, 0xf5, 0x78, 0x97, 0x08, 0x9a, - 0x2f, 0x43, 0x2f, 0xc2, 0x8c, 0xdf, 0xd6, 0xb5, 0xde, 0x07, 0xa1, 0xe6, 0x4d, 0xc9, 0xe3, 0x08, - 0x15, 0xec, 0xc3, 0x79, 0x20, 0x72, 0x9e, 0x61, 0xbc, 0x4c, 0x41, 0x57, 0x47, 0x42, 0x2b, 0x09, - 0x3a, 0x3c, 0x2a, 0xaa, 0xbd, 0xf8, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x03, 0x58, 0x94, 0x44, - 0x02, 0x00, 0x00, -} - -func (m *BlacklistEthereumAddressesProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BlacklistEthereumAddressesProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BlacklistEthereumAddressesProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BlacklistAddresses) > 0 { - for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.BlacklistAddresses[iNdEx]) - copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) - i = encodeVarintProposal(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RevokeEthereumBlacklistProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RevokeEthereumBlacklistProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RevokeEthereumBlacklistProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BlacklistAddresses) > 0 { - for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.BlacklistAddresses[iNdEx]) - copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) - i = encodeVarintProposal(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintProposal(dAtA []byte, offset int, v uint64) int { - offset -= sovProposal(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *BlacklistEthereumAddressesProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - if len(m.BlacklistAddresses) > 0 { - for _, s := range m.BlacklistAddresses { - l = len(s) - n += 1 + l + sovProposal(uint64(l)) - } - } - return n -} - -func (m *RevokeEthereumBlacklistProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - if len(m.BlacklistAddresses) > 0 { - for _, s := range m.BlacklistAddresses { - l = len(s) - n += 1 + l + sovProposal(uint64(l)) - } - } - return n -} - -func sovProposal(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozProposal(x uint64) (n int) { - return sovProposal(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *BlacklistEthereumAddressesProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BlacklistEthereumAddressesProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BlacklistEthereumAddressesProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProposal(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RevokeEthereumBlacklistProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RevokeEthereumBlacklistProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RevokeEthereumBlacklistProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProposal(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipProposal(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthProposal - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupProposal - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthProposal - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthProposal = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowProposal = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupProposal = fmt.Errorf("proto: unexpected end of group") -) diff --git a/chain/permissions/types/codec.go b/chain/permissions/types/codec.go index a5cc7fea..099707ec 100644 --- a/chain/permissions/types/codec.go +++ b/chain/permissions/types/codec.go @@ -14,10 +14,7 @@ const ModuleName = "permissions" func RegisterCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgUpdateParams{}, "permissions/MsgUpdateParams", nil) cdc.RegisterConcrete(&MsgCreateNamespace{}, "permissions/MsgCreateNamespace", nil) - cdc.RegisterConcrete(&MsgDeleteNamespace{}, "permissions/MsgDeleteNamespace", nil) cdc.RegisterConcrete(&MsgUpdateNamespace{}, "permissions/MsgUpdateNamespace", nil) - cdc.RegisterConcrete(&MsgUpdateNamespaceRoles{}, "permissions/MsgUpdateNamespaceRoles", nil) - cdc.RegisterConcrete(&MsgRevokeNamespaceRoles{}, "permissions/MsgRevokeNamespaceRoles", nil) cdc.RegisterConcrete(&MsgClaimVoucher{}, "permissions/MsgClaimVoucher", nil) } @@ -25,10 +22,7 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgUpdateParams{}, &MsgCreateNamespace{}, - &MsgDeleteNamespace{}, &MsgUpdateNamespace{}, - &MsgUpdateNamespaceRoles{}, - &MsgRevokeNamespaceRoles{}, &MsgClaimVoucher{}, ) diff --git a/chain/permissions/types/errors.go b/chain/permissions/types/errors.go deleted file mode 100644 index f104edaf..00000000 --- a/chain/permissions/types/errors.go +++ /dev/null @@ -1,24 +0,0 @@ -package types - -// DONTCOVER - -import ( - "cosmossdk.io/errors" -) - -// x/tokenfactory module sentinel errors -var ( - ErrDenomNamespaceExists = errors.Register(ModuleName, 2, "attempting to create a namespace for denom that already exists") - ErrUnauthorized = errors.Register(ModuleName, 3, "unauthorized account") - ErrInvalidGenesis = errors.Register(ModuleName, 4, "invalid genesis") - ErrInvalidNamespace = errors.Register(ModuleName, 5, "invalid namespace") - ErrInvalidPermission = errors.Register(ModuleName, 6, "invalid permissions") - ErrUnknownRole = errors.Register(ModuleName, 7, "unknown role") - ErrUnknownWasmHook = errors.Register(ModuleName, 8, "unknown contract address") - ErrRestrictedAction = errors.Register(ModuleName, 9, "restricted action") - ErrInvalidRole = errors.Register(ModuleName, 10, "invalid role") - ErrUnknownDenom = errors.Register(ModuleName, 11, "namespace for denom is not existing") - ErrWasmHookError = errors.Register(ModuleName, 12, "wasm hook query error") - ErrVoucherNotFound = errors.Register(ModuleName, 13, "voucher was not found") - ErrInvalidWasmHook = errors.Register(ModuleName, 14, "invalid wasm hook") -) diff --git a/chain/permissions/types/expected_keepers.go b/chain/permissions/types/expected_keepers.go deleted file mode 100644 index 3fdbb230..00000000 --- a/chain/permissions/types/expected_keepers.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -type BankKeeper interface { - AppendSendRestriction(restriction banktypes.SendRestrictionFn) - PrependSendRestriction(restriction banktypes.SendRestrictionFn) - ClearSendRestriction() - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error -} - -type TokenFactoryKeeper interface { - GetAuthorityMetadata(ctx sdk.Context, denom string) (tftypes.DenomAuthorityMetadata, error) -} - -type WasmKeeper interface { - HasContractInfo(ctx context.Context, contractAddress sdk.AccAddress) bool - QuerySmart(ctx context.Context, contractAddr sdk.AccAddress, req []byte) ([]byte, error) -} diff --git a/chain/permissions/types/genesis.go b/chain/permissions/types/genesis.go deleted file mode 100644 index 4eff5bb7..00000000 --- a/chain/permissions/types/genesis.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" -) - -// this line is used by starport scaffolding # genesis/types/import - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -// DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - Namespaces: []Namespace{}, - } -} - -// Validate performs basic genesis state validation returning an error upon any -// failure. -func (gs GenesisState) Validate() error { - err := gs.Params.Validate() - if err != nil { - return err - } - - seenDenoms := map[string]struct{}{} - - for _, ns := range gs.GetNamespaces() { - if _, ok := seenDenoms[ns.GetDenom()]; ok { - return errors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", ns.GetDenom()) - } - seenDenoms[ns.GetDenom()] = struct{}{} - } - - return nil -} diff --git a/chain/permissions/types/genesis.pb.go b/chain/permissions/types/genesis.pb.go index f4b7b7d6..580fd4db 100644 --- a/chain/permissions/types/genesis.pb.go +++ b/chain/permissions/types/genesis.pb.go @@ -26,8 +26,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the permissions module's genesis state. type GenesisState struct { // params defines the parameters of the module. - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` - Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` + Vouchers []*AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -77,6 +78,13 @@ func (m *GenesisState) GetNamespaces() []Namespace { return nil } +func (m *GenesisState) GetVouchers() []*AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.permissions.v1beta1.GenesisState") } @@ -86,24 +94,26 @@ func init() { } var fileDescriptor_5ff1982ce1793022 = []byte{ - // 270 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xce, 0xcc, 0xcb, 0x4a, - 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0x48, 0x2d, 0xca, 0xcd, 0x2c, 0x2e, 0xce, 0xcc, 0xcf, - 0x2b, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, - 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x85, 0x2b, 0xd6, 0x43, 0x52, 0xac, 0x07, - 0x55, 0x2c, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa9, 0x0f, 0x62, 0x41, 0x34, 0x49, 0x69, - 0xe1, 0xb7, 0xa1, 0x20, 0xb1, 0x28, 0x31, 0x17, 0x6a, 0x81, 0x94, 0x3e, 0x01, 0xb5, 0x48, 0x96, - 0x82, 0x35, 0x28, 0x2d, 0x66, 0xe4, 0xe2, 0x71, 0x87, 0xb8, 0x31, 0xb8, 0x24, 0xb1, 0x24, 0x55, - 0xc8, 0x99, 0x8b, 0x0d, 0x62, 0xa2, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0xaa, 0x1e, 0x5e, - 0x37, 0xeb, 0x05, 0x80, 0x15, 0x3b, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x04, 0xd5, 0x2a, 0xe4, - 0xc7, 0xc5, 0x95, 0x97, 0x98, 0x9b, 0x5a, 0x5c, 0x90, 0x98, 0x9c, 0x5a, 0x2c, 0xc1, 0xa4, 0xc0, - 0xac, 0xc1, 0x6d, 0xa4, 0x41, 0xc0, 0x20, 0x3f, 0x98, 0x06, 0xa8, 0x59, 0x48, 0x26, 0x38, 0x65, - 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, - 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x54, 0x60, 0x7a, 0x66, 0x49, 0x46, - 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x27, 0xcc, 0x7c, 0x9f, 0xc4, 0xa4, 0x62, 0x44, 0x48, - 0xe8, 0x26, 0xe7, 0x17, 0xa5, 0x22, 0x73, 0x33, 0x12, 0x33, 0xf3, 0xf4, 0x73, 0xf3, 0x53, 0x4a, - 0x73, 0x52, 0x8b, 0x51, 0x82, 0xa9, 0xa4, 0xb2, 0x20, 0xb5, 0x38, 0x89, 0x0d, 0x1c, 0x32, 0xc6, - 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x0c, 0xe9, 0xc0, 0xda, 0x01, 0x00, 0x00, + // 299 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x14, 0x80, 0x1b, 0x27, 0x43, 0x32, 0x4f, 0xc5, 0xc3, 0x18, 0x18, 0x87, 0x20, 0x0c, 0x65, 0x09, + 0x9b, 0xbf, 0xc0, 0x79, 0x90, 0x81, 0x0c, 0x9d, 0xe0, 0xc1, 0x5b, 0xda, 0x3d, 0xba, 0xa8, 0x6d, + 0x4a, 0x5e, 0x5a, 0xf0, 0x5f, 0xf8, 0xb3, 0x76, 0xdc, 0xd1, 0x93, 0x48, 0x7b, 0xf7, 0x37, 0x88, + 0x6d, 0x37, 0xeb, 0x65, 0xbd, 0x25, 0xf0, 0x7d, 0xdf, 0x7b, 0x3c, 0x7a, 0xa1, 0xa2, 0x67, 0xf0, + 0xad, 0x4a, 0x41, 0xc4, 0x60, 0x42, 0x85, 0xa8, 0x74, 0x84, 0x22, 0x1d, 0x79, 0x60, 0xe5, 0x48, + 0x04, 0x10, 0x01, 0x2a, 0xe4, 0xb1, 0xd1, 0x56, 0xbb, 0xc7, 0x5b, 0x98, 0xd7, 0x60, 0x5e, 0xc1, + 0xbd, 0xa3, 0x40, 0x07, 0xba, 0x20, 0xc5, 0xef, 0xab, 0x94, 0x7a, 0xe7, 0xbb, 0x27, 0xc4, 0xd2, + 0xc8, 0xb0, 0x1a, 0xd0, 0x13, 0x0d, 0x6c, 0x6d, 0x68, 0x21, 0x9c, 0x7e, 0x13, 0x7a, 0x78, 0x53, + 0xee, 0xf8, 0x60, 0xa5, 0x05, 0xf7, 0x9a, 0xb6, 0xcb, 0x62, 0x97, 0xf4, 0xc9, 0xa0, 0x33, 0x3e, + 0xe3, 0x3b, 0x77, 0xe6, 0x77, 0x05, 0x3c, 0xd9, 0x5f, 0x7d, 0x9e, 0x38, 0xf3, 0x4a, 0x75, 0x67, + 0x94, 0x46, 0x32, 0x04, 0x8c, 0xa5, 0x0f, 0xd8, 0xdd, 0xeb, 0xb7, 0x06, 0x9d, 0xf1, 0xa0, 0x21, + 0x34, 0xdb, 0x08, 0x55, 0xab, 0x56, 0x70, 0xa7, 0xf4, 0x20, 0xd5, 0x89, 0xbf, 0x04, 0x83, 0xdd, + 0x56, 0x51, 0x1b, 0x36, 0xd4, 0xae, 0x16, 0x0b, 0x03, 0x88, 0x8f, 0xa5, 0x35, 0xdf, 0xea, 0x93, + 0x97, 0x55, 0xc6, 0xc8, 0x3a, 0x63, 0xe4, 0x2b, 0x63, 0xe4, 0x3d, 0x67, 0xce, 0x3a, 0x67, 0xce, + 0x47, 0xce, 0x9c, 0xa7, 0xfb, 0x40, 0xd9, 0x65, 0xe2, 0x71, 0x5f, 0x87, 0x62, 0xba, 0x89, 0xdf, + 0x4a, 0x0f, 0xff, 0x8e, 0x3a, 0xf4, 0xb5, 0x81, 0xfa, 0x77, 0x29, 0x55, 0x24, 0x42, 0xbd, 0x48, + 0x5e, 0x01, 0xff, 0x5d, 0xdc, 0xbe, 0xc5, 0x80, 0x5e, 0xbb, 0x38, 0xf2, 0xe5, 0x4f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x83, 0x97, 0x25, 0xeb, 0x25, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -126,6 +136,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } if len(m.Namespaces) > 0 { for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { { @@ -178,6 +202,12 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -283,6 +313,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/permissions/types/msgs.go b/chain/permissions/types/msgs.go deleted file mode 100644 index e9b762b1..00000000 --- a/chain/permissions/types/msgs.go +++ /dev/null @@ -1,227 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -// constants -const ( - // RouterKey is the message route for slashing - routerKey = ModuleName - - TypeMsgUpdateParams = "update_params" - TypeMsgCreateNamespace = "create_namespace" - TypeMsgDeleteNamespace = "delete_namespace" - TypeUpdateNamespace = "update_namespace" - TypeMsgUpdateNamespaceRoles = "update_namespace_roles" - TypeMsgRevokeNamespaceRoles = "revoke_namespace_roles" - TypeMsgClaimVoucher = "claim_voucher" -) - -var ( - _ sdk.Msg = &MsgUpdateParams{} - _ sdk.Msg = &MsgCreateNamespace{} - _ sdk.Msg = &MsgDeleteNamespace{} - _ sdk.Msg = &MsgUpdateNamespace{} - _ sdk.Msg = &MsgUpdateNamespaceRoles{} - _ sdk.Msg = &MsgRevokeNamespaceRoles{} - _ sdk.Msg = &MsgClaimVoucher{} -) - -func (m MsgUpdateParams) Route() string { return routerKey } - -func (m MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -func (m MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return err - } - - if err := m.Params.Validate(); err != nil { - return err - } - return nil -} - -func (m *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Authority) - return []sdk.AccAddress{addr} -} - -func (m MsgCreateNamespace) Route() string { return routerKey } - -func (m MsgCreateNamespace) Type() string { return TypeMsgCreateNamespace } - -func (msg MsgCreateNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if err := msg.Namespace.Validate(); err != nil { - return err - } - return nil -} - -func (m *MsgCreateNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgCreateNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgDeleteNamespace) Route() string { return routerKey } - -func (m MsgDeleteNamespace) Type() string { return TypeMsgDeleteNamespace } - -func (m MsgDeleteNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return err - } - - if _, _, err := tftypes.DeconstructDenom(m.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - return nil -} - -func (m *MsgDeleteNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgDeleteNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgUpdateNamespace) Route() string { return routerKey } - -func (m MsgUpdateNamespace) Type() string { return TypeUpdateNamespace } - -func (m MsgUpdateNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return err - } - - if m.WasmHook != nil { - if _, err := sdk.AccAddressFromBech32(m.WasmHook.NewValue); err != nil { - return ErrInvalidWasmHook - } - } - return nil -} - -func (m *MsgUpdateNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgUpdateNamespaceRoles) Route() string { return routerKey } - -func (m MsgUpdateNamespaceRoles) Type() string { return TypeMsgUpdateNamespaceRoles } - -func (msg MsgUpdateNamespaceRoles) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - for _, role := range msg.AddressRoles { - if _, err := sdk.AccAddressFromBech32(role.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", role.Address) - } - } - - return nil -} - -func (m *MsgUpdateNamespaceRoles) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateNamespaceRoles) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgRevokeNamespaceRoles) Route() string { return routerKey } - -func (m MsgRevokeNamespaceRoles) Type() string { return TypeMsgRevokeNamespaceRoles } - -func (msg MsgRevokeNamespaceRoles) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - // address_roles - foundAddresses := make(map[string]struct{}, len(msg.AddressRolesToRevoke)) - for _, addrRoles := range msg.AddressRolesToRevoke { - if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", addrRoles.Address) - } - if _, ok := foundAddresses[addrRoles.Address]; ok { - return errors.Wrapf(ErrInvalidRole, "address %s - revoking roles multiple times?", addrRoles.Address) - } - for _, role := range addrRoles.Roles { - if role == EVERYONE { - return errors.Wrapf(ErrInvalidRole, "role %s can not be set / revoked", EVERYONE) - } - } - foundAddresses[addrRoles.Address] = struct{}{} - } - return nil -} - -func (m *MsgRevokeNamespaceRoles) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgRevokeNamespaceRoles) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgClaimVoucher) Route() string { return routerKey } - -func (m MsgClaimVoucher) Type() string { return TypeMsgClaimVoucher } - -func (msg MsgClaimVoucher) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if msg.Denom == "" { - return fmt.Errorf("invalid denom") - } - return nil -} - -func (m *MsgClaimVoucher) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgClaimVoucher) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} diff --git a/chain/permissions/types/params.go b/chain/permissions/types/params.go deleted file mode 100644 index c8ff643e..00000000 --- a/chain/permissions/types/params.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -// ParamTable -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -func NewParams(wasmHookQueryMaxGas uint64) Params { - return Params{ - WasmHookQueryMaxGas: wasmHookQueryMaxGas, - } -} - -// default module parameters. -func DefaultParams() Params { - return Params{ - WasmHookQueryMaxGas: 200_000, - } -} - -// validate params. -func (p Params) Validate() error { - return nil -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{} -} diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index 8dac3cbb..c642dda9 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -29,24 +29,52 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type Action int32 const ( + // 0 is reserved for ACTION_UNSPECIFIED Action_UNSPECIFIED Action = 0 - Action_MINT Action = 1 - Action_RECEIVE Action = 2 - Action_BURN Action = 4 + // 1 is reserved for MINT + Action_MINT Action = 1 + // 2 is reserved for RECEIVE + Action_RECEIVE Action = 2 + // 4 is reserved for BURN + Action_BURN Action = 4 + // 8 is reserved for SEND + Action_SEND Action = 8 + // 16 is reserved for SUPER_BURN + Action_SUPER_BURN Action = 16 + // 134217728 is reserved for MODIFY_POLICY_MANAGERS + Action_MODIFY_POLICY_MANAGERS Action = 134217728 + // 268435456 is reserved for MODIFY_CONTRACT_HOOK + Action_MODIFY_CONTRACT_HOOK Action = 268435456 + // 536870912 is reserved for MODIFY_ROLE_PERMISSIONS + Action_MODIFY_ROLE_PERMISSIONS Action = 536870912 + // 1073741824 is reserved for MODIFY_ROLE_MANAGERS + Action_MODIFY_ROLE_MANAGERS Action = 1073741824 ) var Action_name = map[int32]string{ - 0: "UNSPECIFIED", - 1: "MINT", - 2: "RECEIVE", - 4: "BURN", + 0: "UNSPECIFIED", + 1: "MINT", + 2: "RECEIVE", + 4: "BURN", + 8: "SEND", + 16: "SUPER_BURN", + 134217728: "MODIFY_POLICY_MANAGERS", + 268435456: "MODIFY_CONTRACT_HOOK", + 536870912: "MODIFY_ROLE_PERMISSIONS", + 1073741824: "MODIFY_ROLE_MANAGERS", } var Action_value = map[string]int32{ - "UNSPECIFIED": 0, - "MINT": 1, - "RECEIVE": 2, - "BURN": 4, + "UNSPECIFIED": 0, + "MINT": 1, + "RECEIVE": 2, + "BURN": 4, + "SEND": 8, + "SUPER_BURN": 16, + "MODIFY_POLICY_MANAGERS": 134217728, + "MODIFY_CONTRACT_HOOK": 268435456, + "MODIFY_ROLE_PERMISSIONS": 536870912, + "MODIFY_ROLE_MANAGERS": 1073741824, } func (x Action) String() string { @@ -59,13 +87,13 @@ func (Action) EnumDescriptor() ([]byte, []int) { // Namespace defines a permissions namespace type Namespace struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - WasmHook string `protobuf:"bytes,2,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` - MintsPaused bool `protobuf:"varint,3,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` - SendsPaused bool `protobuf:"varint,4,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` - BurnsPaused bool `protobuf:"varint,5,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` - RolePermissions []*Role `protobuf:"bytes,6,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - AddressRoles []*AddressRoles `protobuf:"bytes,7,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + ContractHook string `protobuf:"bytes,2,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + ActorRoles []*ActorRoles `protobuf:"bytes,4,rep,name=actor_roles,json=actorRoles,proto3" json:"actor_roles,omitempty"` + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } func (m *Namespace) Reset() { *m = Namespace{} } @@ -108,65 +136,66 @@ func (m *Namespace) GetDenom() string { return "" } -func (m *Namespace) GetWasmHook() string { +func (m *Namespace) GetContractHook() string { if m != nil { - return m.WasmHook + return m.ContractHook } return "" } -func (m *Namespace) GetMintsPaused() bool { +func (m *Namespace) GetRolePermissions() []*Role { if m != nil { - return m.MintsPaused + return m.RolePermissions } - return false + return nil } -func (m *Namespace) GetSendsPaused() bool { +func (m *Namespace) GetActorRoles() []*ActorRoles { if m != nil { - return m.SendsPaused + return m.ActorRoles } - return false + return nil } -func (m *Namespace) GetBurnsPaused() bool { +func (m *Namespace) GetRoleManagers() []*RoleManager { if m != nil { - return m.BurnsPaused + return m.RoleManagers } - return false + return nil } -func (m *Namespace) GetRolePermissions() []*Role { +func (m *Namespace) GetPolicyStatuses() []*PolicyStatus { if m != nil { - return m.RolePermissions + return m.PolicyStatuses } return nil } -func (m *Namespace) GetAddressRoles() []*AddressRoles { +func (m *Namespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability { if m != nil { - return m.AddressRoles + return m.PolicyManagerCapabilities } return nil } -type AddressRoles struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` +// AddressRoles defines roles for an actor +type ActorRoles struct { + Actor string `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *AddressRoles) Reset() { *m = AddressRoles{} } -func (m *AddressRoles) String() string { return proto.CompactTextString(m) } -func (*AddressRoles) ProtoMessage() {} -func (*AddressRoles) Descriptor() ([]byte, []int) { +func (m *ActorRoles) Reset() { *m = ActorRoles{} } +func (m *ActorRoles) String() string { return proto.CompactTextString(m) } +func (*ActorRoles) ProtoMessage() {} +func (*ActorRoles) Descriptor() ([]byte, []int) { return fileDescriptor_6d25f3ecf3806c6c, []int{1} } -func (m *AddressRoles) XXX_Unmarshal(b []byte) error { +func (m *ActorRoles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *AddressRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ActorRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_AddressRoles.Marshal(b, m, deterministic) + return xxx_messageInfo_ActorRoles.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -176,43 +205,211 @@ func (m *AddressRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *AddressRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddressRoles.Merge(m, src) +func (m *ActorRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActorRoles.Merge(m, src) } -func (m *AddressRoles) XXX_Size() int { +func (m *ActorRoles) XXX_Size() int { return m.Size() } -func (m *AddressRoles) XXX_DiscardUnknown() { - xxx_messageInfo_AddressRoles.DiscardUnknown(m) +func (m *ActorRoles) XXX_DiscardUnknown() { + xxx_messageInfo_ActorRoles.DiscardUnknown(m) } -var xxx_messageInfo_AddressRoles proto.InternalMessageInfo +var xxx_messageInfo_ActorRoles proto.InternalMessageInfo -func (m *AddressRoles) GetAddress() string { +func (m *ActorRoles) GetActor() string { if m != nil { - return m.Address + return m.Actor + } + return "" +} + +func (m *ActorRoles) GetRoles() []string { + if m != nil { + return m.Roles + } + return nil +} + +// RoleActors defines actors for a role +type RoleActors struct { + Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + Actors []string `protobuf:"bytes,2,rep,name=actors,proto3" json:"actors,omitempty"` +} + +func (m *RoleActors) Reset() { *m = RoleActors{} } +func (m *RoleActors) String() string { return proto.CompactTextString(m) } +func (*RoleActors) ProtoMessage() {} +func (*RoleActors) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{2} +} +func (m *RoleActors) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RoleActors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RoleActors.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RoleActors) XXX_Merge(src proto.Message) { + xxx_messageInfo_RoleActors.Merge(m, src) +} +func (m *RoleActors) XXX_Size() int { + return m.Size() +} +func (m *RoleActors) XXX_DiscardUnknown() { + xxx_messageInfo_RoleActors.DiscardUnknown(m) +} + +var xxx_messageInfo_RoleActors proto.InternalMessageInfo + +func (m *RoleActors) GetRole() string { + if m != nil { + return m.Role + } + return "" +} + +func (m *RoleActors) GetActors() []string { + if m != nil { + return m.Actors + } + return nil +} + +// RoleManager defines roles for a manager address +type RoleManager struct { + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` +} + +func (m *RoleManager) Reset() { *m = RoleManager{} } +func (m *RoleManager) String() string { return proto.CompactTextString(m) } +func (*RoleManager) ProtoMessage() {} +func (*RoleManager) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{3} +} +func (m *RoleManager) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RoleManager) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RoleManager.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RoleManager) XXX_Merge(src proto.Message) { + xxx_messageInfo_RoleManager.Merge(m, src) +} +func (m *RoleManager) XXX_Size() int { + return m.Size() +} +func (m *RoleManager) XXX_DiscardUnknown() { + xxx_messageInfo_RoleManager.DiscardUnknown(m) +} + +var xxx_messageInfo_RoleManager proto.InternalMessageInfo + +func (m *RoleManager) GetManager() string { + if m != nil { + return m.Manager } return "" } -func (m *AddressRoles) GetRoles() []string { +func (m *RoleManager) GetRoles() []string { if m != nil { return m.Roles } return nil } +// PolicyStatus defines the status of a policy +type PolicyStatus struct { + Action Action `protobuf:"varint,1,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + IsDisabled bool `protobuf:"varint,2,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"` + IsSealed bool `protobuf:"varint,3,opt,name=is_sealed,json=isSealed,proto3" json:"is_sealed,omitempty"` +} + +func (m *PolicyStatus) Reset() { *m = PolicyStatus{} } +func (m *PolicyStatus) String() string { return proto.CompactTextString(m) } +func (*PolicyStatus) ProtoMessage() {} +func (*PolicyStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{4} +} +func (m *PolicyStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PolicyStatus.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PolicyStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyStatus.Merge(m, src) +} +func (m *PolicyStatus) XXX_Size() int { + return m.Size() +} +func (m *PolicyStatus) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyStatus proto.InternalMessageInfo + +func (m *PolicyStatus) GetAction() Action { + if m != nil { + return m.Action + } + return Action_UNSPECIFIED +} + +func (m *PolicyStatus) GetIsDisabled() bool { + if m != nil { + return m.IsDisabled + } + return false +} + +func (m *PolicyStatus) GetIsSealed() bool { + if m != nil { + return m.IsSealed + } + return false +} + // Role is only used for storage type Role struct { - Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` - Permissions uint32 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + RoleId uint32 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` + Permissions uint32 `protobuf:"varint,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } func (m *Role) Reset() { *m = Role{} } func (m *Role) String() string { return proto.CompactTextString(m) } func (*Role) ProtoMessage() {} func (*Role) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{2} + return fileDescriptor_6d25f3ecf3806c6c, []int{5} } func (m *Role) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -241,13 +438,20 @@ func (m *Role) XXX_DiscardUnknown() { var xxx_messageInfo_Role proto.InternalMessageInfo -func (m *Role) GetRole() string { +func (m *Role) GetName() string { if m != nil { - return m.Role + return m.Name } return "" } +func (m *Role) GetRoleId() uint32 { + if m != nil { + return m.RoleId + } + return 0 +} + func (m *Role) GetPermissions() uint32 { if m != nil { return m.Permissions @@ -255,6 +459,75 @@ func (m *Role) GetPermissions() uint32 { return 0 } +// PolicyManagerCapability defines the capabilities of a manager for a policy +type PolicyManagerCapability struct { + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + CanDisable bool `protobuf:"varint,3,opt,name=can_disable,json=canDisable,proto3" json:"can_disable,omitempty"` + CanSeal bool `protobuf:"varint,4,opt,name=can_seal,json=canSeal,proto3" json:"can_seal,omitempty"` +} + +func (m *PolicyManagerCapability) Reset() { *m = PolicyManagerCapability{} } +func (m *PolicyManagerCapability) String() string { return proto.CompactTextString(m) } +func (*PolicyManagerCapability) ProtoMessage() {} +func (*PolicyManagerCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{6} +} +func (m *PolicyManagerCapability) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PolicyManagerCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PolicyManagerCapability.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PolicyManagerCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyManagerCapability.Merge(m, src) +} +func (m *PolicyManagerCapability) XXX_Size() int { + return m.Size() +} +func (m *PolicyManagerCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyManagerCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyManagerCapability proto.InternalMessageInfo + +func (m *PolicyManagerCapability) GetManager() string { + if m != nil { + return m.Manager + } + return "" +} + +func (m *PolicyManagerCapability) GetAction() Action { + if m != nil { + return m.Action + } + return Action_UNSPECIFIED +} + +func (m *PolicyManagerCapability) GetCanDisable() bool { + if m != nil { + return m.CanDisable + } + return false +} + +func (m *PolicyManagerCapability) GetCanSeal() bool { + if m != nil { + return m.CanSeal + } + return false +} + // used in storage type RoleIDs struct { RoleIds []uint32 `protobuf:"varint,1,rep,packed,name=role_ids,json=roleIds,proto3" json:"role_ids,omitempty"` @@ -264,7 +537,7 @@ func (m *RoleIDs) Reset() { *m = RoleIDs{} } func (m *RoleIDs) String() string { return proto.CompactTextString(m) } func (*RoleIDs) ProtoMessage() {} func (*RoleIDs) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{3} + return fileDescriptor_6d25f3ecf3806c6c, []int{7} } func (m *RoleIDs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -300,6 +573,7 @@ func (m *RoleIDs) GetRoleIds() []uint32 { return nil } +// Voucher is used to represent a voucher type Voucher struct { Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` } @@ -308,7 +582,7 @@ func (m *Voucher) Reset() { *m = Voucher{} } func (m *Voucher) String() string { return proto.CompactTextString(m) } func (*Voucher) ProtoMessage() {} func (*Voucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{4} + return fileDescriptor_6d25f3ecf3806c6c, []int{8} } func (m *Voucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -344,16 +618,17 @@ func (m *Voucher) GetCoins() github_com_cosmos_cosmos_sdk_types.Coins { return nil } +// AddressVoucher is used to represent a voucher for a specific address type AddressVoucher struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Voucher *Voucher `protobuf:"bytes,2,opt,name=voucher,proto3" json:"voucher,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } func (m *AddressVoucher) Reset() { *m = AddressVoucher{} } func (m *AddressVoucher) String() string { return proto.CompactTextString(m) } func (*AddressVoucher) ProtoMessage() {} func (*AddressVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{5} + return fileDescriptor_6d25f3ecf3806c6c, []int{9} } func (m *AddressVoucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -389,18 +664,15 @@ func (m *AddressVoucher) GetAddress() string { return "" } -func (m *AddressVoucher) GetVoucher() *Voucher { - if m != nil { - return m.Voucher - } - return nil -} - func init() { proto.RegisterEnum("injective.permissions.v1beta1.Action", Action_name, Action_value) proto.RegisterType((*Namespace)(nil), "injective.permissions.v1beta1.Namespace") - proto.RegisterType((*AddressRoles)(nil), "injective.permissions.v1beta1.AddressRoles") + proto.RegisterType((*ActorRoles)(nil), "injective.permissions.v1beta1.ActorRoles") + proto.RegisterType((*RoleActors)(nil), "injective.permissions.v1beta1.RoleActors") + proto.RegisterType((*RoleManager)(nil), "injective.permissions.v1beta1.RoleManager") + proto.RegisterType((*PolicyStatus)(nil), "injective.permissions.v1beta1.PolicyStatus") proto.RegisterType((*Role)(nil), "injective.permissions.v1beta1.Role") + proto.RegisterType((*PolicyManagerCapability)(nil), "injective.permissions.v1beta1.PolicyManagerCapability") proto.RegisterType((*RoleIDs)(nil), "injective.permissions.v1beta1.RoleIDs") proto.RegisterType((*Voucher)(nil), "injective.permissions.v1beta1.Voucher") proto.RegisterType((*AddressVoucher)(nil), "injective.permissions.v1beta1.AddressVoucher") @@ -411,43 +683,64 @@ func init() { } var fileDescriptor_6d25f3ecf3806c6c = []byte{ - // 567 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x53, 0x4d, 0x8f, 0xd2, 0x4e, - 0x18, 0xa7, 0xbc, 0x15, 0xa6, 0xf0, 0x5f, 0x32, 0xd9, 0x43, 0x77, 0xff, 0xb1, 0x8b, 0xd5, 0x18, - 0xa2, 0xd9, 0xd6, 0xc5, 0x9b, 0x31, 0xc6, 0x85, 0xc5, 0xd8, 0x44, 0x09, 0x56, 0x77, 0x0f, 0x5e, - 0x48, 0x5f, 0x26, 0x30, 0x42, 0x3b, 0xa4, 0x4f, 0xc1, 0xf8, 0x2d, 0xfc, 0x1c, 0x7e, 0x92, 0xf5, - 0xb6, 0x47, 0x4f, 0x6a, 0xe0, 0x8b, 0x98, 0x99, 0x29, 0x50, 0x0f, 0xba, 0x27, 0xfa, 0xfc, 0x5e, - 0x9e, 0xe1, 0xf9, 0xcd, 0x33, 0xc8, 0xa6, 0xf1, 0x47, 0x12, 0xa4, 0x74, 0x45, 0xec, 0x05, 0x49, - 0x22, 0x0a, 0x40, 0x59, 0x0c, 0xf6, 0xea, 0xcc, 0x27, 0xa9, 0x77, 0x96, 0xc7, 0xac, 0x45, 0xc2, - 0x52, 0x86, 0xef, 0xec, 0x0c, 0x56, 0x9e, 0xcc, 0x0c, 0xc7, 0x87, 0x13, 0x36, 0x61, 0x42, 0x69, - 0xf3, 0x2f, 0x69, 0x3a, 0x36, 0x02, 0x06, 0x11, 0x03, 0xdb, 0xf7, 0x80, 0xec, 0x7a, 0x07, 0x8c, - 0xc6, 0x92, 0x37, 0xbf, 0x15, 0x51, 0x7d, 0xe8, 0x45, 0x04, 0x16, 0x5e, 0x40, 0xf0, 0x21, 0xaa, - 0x84, 0x24, 0x66, 0x91, 0xae, 0xb4, 0x95, 0x4e, 0xdd, 0x95, 0x05, 0xfe, 0x1f, 0xd5, 0x3f, 0x79, - 0x10, 0x8d, 0xa7, 0x8c, 0xcd, 0xf4, 0xa2, 0x60, 0x6a, 0x1c, 0x78, 0xc5, 0xd8, 0x0c, 0xdf, 0x45, - 0x8d, 0x88, 0xc6, 0x29, 0x8c, 0x17, 0xde, 0x12, 0x48, 0xa8, 0x97, 0xda, 0x4a, 0xa7, 0xe6, 0x6a, - 0x02, 0x1b, 0x09, 0x88, 0x4b, 0x80, 0xc4, 0xe1, 0x4e, 0x52, 0x96, 0x12, 0x81, 0xed, 0x25, 0xfe, - 0x32, 0x89, 0x77, 0x92, 0x8a, 0x94, 0x08, 0x2c, 0x93, 0x0c, 0x51, 0x2b, 0x61, 0x73, 0x32, 0xce, - 0xcd, 0xae, 0x57, 0xdb, 0xa5, 0x8e, 0xd6, 0xbd, 0x67, 0xfd, 0x33, 0x19, 0xcb, 0x65, 0x73, 0xe2, - 0x1e, 0x70, 0xf3, 0x68, 0xcf, 0xe2, 0x11, 0x6a, 0x7a, 0x61, 0x98, 0x10, 0x80, 0x31, 0xa7, 0x40, - 0x57, 0x45, 0xb3, 0x47, 0xb7, 0x34, 0x3b, 0x97, 0x1e, 0xde, 0x13, 0xdc, 0x86, 0x97, 0xab, 0xcc, - 0xe7, 0xa8, 0x91, 0x67, 0xb1, 0x8e, 0xd4, 0x8c, 0xcf, 0xf2, 0xdc, 0x96, 0x3c, 0x67, 0x79, 0x66, - 0xb1, 0x5d, 0xe2, 0x39, 0x8b, 0xc2, 0x7c, 0x86, 0xca, 0xdc, 0x88, 0x31, 0x2a, 0x73, 0x20, 0x33, - 0x89, 0x6f, 0xdc, 0x46, 0x5a, 0x7e, 0x70, 0x7e, 0x0b, 0x4d, 0x37, 0x0f, 0x99, 0xf7, 0x91, 0xca, - 0xdd, 0xce, 0x05, 0xe0, 0x23, 0x54, 0x13, 0x51, 0xd1, 0x90, 0x9f, 0x5c, 0xea, 0x34, 0x5d, 0x95, - 0xd7, 0x4e, 0x08, 0xe6, 0x1c, 0xa9, 0x57, 0x6c, 0x19, 0x4c, 0x49, 0x82, 0x3d, 0x54, 0xe1, 0x8b, - 0x20, 0x25, 0x5a, 0xf7, 0xc8, 0x92, 0xab, 0x62, 0xf1, 0x55, 0xd9, 0x8d, 0xdb, 0x67, 0x34, 0xee, - 0x3d, 0xbe, 0xfe, 0x71, 0x52, 0xf8, 0xfa, 0xf3, 0xa4, 0x33, 0xa1, 0xe9, 0x74, 0xe9, 0x5b, 0x01, - 0x8b, 0xec, 0x6c, 0xaf, 0xe4, 0xcf, 0x29, 0x84, 0x33, 0x3b, 0xfd, 0xbc, 0x20, 0x20, 0x0c, 0xe0, - 0xca, 0xce, 0xe6, 0x1c, 0xfd, 0x97, 0x25, 0xb2, 0x3d, 0xf4, 0xef, 0x99, 0xbc, 0x40, 0xea, 0x4a, - 0x8a, 0xc4, 0x74, 0x5a, 0xf7, 0xc1, 0x2d, 0x37, 0x91, 0xb5, 0x74, 0xb7, 0xb6, 0x87, 0x4f, 0x51, - 0xf5, 0x3c, 0x48, 0x29, 0x8b, 0xf1, 0x01, 0xd2, 0x2e, 0x87, 0xef, 0x46, 0x83, 0xbe, 0xf3, 0xd2, - 0x19, 0x5c, 0xb4, 0x0a, 0xb8, 0x86, 0xca, 0x6f, 0x9c, 0xe1, 0xfb, 0x96, 0x82, 0x35, 0xa4, 0xba, - 0x83, 0xfe, 0xc0, 0xb9, 0x1a, 0xb4, 0x8a, 0x1c, 0xee, 0x5d, 0xba, 0xc3, 0x56, 0xb9, 0x37, 0xbb, - 0x5e, 0x1b, 0xca, 0xcd, 0xda, 0x50, 0x7e, 0xad, 0x0d, 0xe5, 0xcb, 0xc6, 0x28, 0xdc, 0x6c, 0x8c, - 0xc2, 0xf7, 0x8d, 0x51, 0xf8, 0xf0, 0x36, 0x37, 0xb4, 0xb3, 0xfd, 0x43, 0xaf, 0x3d, 0x1f, 0xf6, - 0x0f, 0xf8, 0x34, 0x60, 0x09, 0xc9, 0x97, 0x53, 0x8f, 0xc6, 0x76, 0xc4, 0xc2, 0xe5, 0x9c, 0xc0, - 0x1f, 0xaf, 0x5b, 0x64, 0xe4, 0x57, 0xc5, 0xdb, 0x7b, 0xf2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xf3, - 0xf2, 0xce, 0xa8, 0x03, 0x04, 0x00, 0x00, + // 901 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xda, 0x8e, 0xd7, 0x79, 0xce, 0x0f, 0x33, 0x8a, 0x9a, 0x4d, 0x4b, 0x6d, 0xcb, 0x05, + 0x11, 0x0a, 0xb5, 0x69, 0x90, 0x10, 0x97, 0x4a, 0x38, 0xf6, 0x96, 0x2e, 0xc4, 0x3f, 0x18, 0x27, + 0x95, 0xca, 0x65, 0x35, 0x5e, 0x8f, 0x92, 0x21, 0xde, 0x1d, 0x6b, 0x67, 0x13, 0xc9, 0x37, 0x73, + 0xe6, 0xc2, 0x3f, 0xc1, 0x85, 0x03, 0x7f, 0x47, 0x8f, 0x39, 0x22, 0x0e, 0x01, 0x25, 0x37, 0xfe, + 0x0a, 0x34, 0xb3, 0xb3, 0xf6, 0x56, 0x22, 0x3f, 0xd4, 0x93, 0xe7, 0xbd, 0x6f, 0xbe, 0xef, 0xbd, + 0xf9, 0xf6, 0x79, 0x06, 0x9a, 0x2c, 0xf8, 0x89, 0x7a, 0x11, 0x3b, 0xa7, 0xcd, 0x29, 0x0d, 0x7d, + 0x26, 0x04, 0xe3, 0x81, 0x68, 0x9e, 0x3f, 0x1f, 0xd1, 0x88, 0x3c, 0x4f, 0xe7, 0x1a, 0xd3, 0x90, + 0x47, 0x1c, 0x3d, 0x5e, 0x10, 0x1a, 0x69, 0x50, 0x13, 0x1e, 0x56, 0x3c, 0x2e, 0x7c, 0x2e, 0x9a, + 0x23, 0x22, 0xe8, 0x42, 0xc5, 0xe3, 0x2c, 0x88, 0xe9, 0x0f, 0xb7, 0x8e, 0xf9, 0x31, 0x57, 0xcb, + 0xa6, 0x5c, 0xc5, 0xd9, 0xfa, 0xcf, 0x79, 0x58, 0xed, 0x11, 0x9f, 0x8a, 0x29, 0xf1, 0x28, 0xda, + 0x82, 0x95, 0x31, 0x0d, 0xb8, 0x6f, 0x19, 0x35, 0x63, 0x77, 0x15, 0xc7, 0x01, 0x7a, 0x02, 0xeb, + 0x1e, 0x0f, 0xa2, 0x90, 0x78, 0x91, 0x7b, 0xc2, 0xf9, 0xa9, 0x95, 0x55, 0xe8, 0x5a, 0x92, 0x7c, + 0xc5, 0xf9, 0x29, 0xea, 0x41, 0x39, 0xe4, 0x13, 0xea, 0xa6, 0x5a, 0xb3, 0x72, 0xb5, 0xdc, 0x6e, + 0x69, 0xef, 0x49, 0xe3, 0xd6, 0xc6, 0x1b, 0x98, 0x4f, 0x28, 0xde, 0x94, 0xe4, 0xc1, 0x12, 0x45, + 0xdf, 0x41, 0x89, 0x78, 0x11, 0x0f, 0x5d, 0x09, 0x08, 0x2b, 0xaf, 0xa4, 0x3e, 0xbd, 0x43, 0xaa, + 0x25, 0x19, 0x52, 0x4f, 0x60, 0x20, 0x8b, 0x35, 0xea, 0xc3, 0xba, 0xea, 0xcd, 0x27, 0x01, 0x39, + 0xa6, 0xa1, 0xb0, 0x56, 0x94, 0xda, 0xd3, 0x7b, 0x34, 0xd6, 0x8d, 0x29, 0x78, 0x2d, 0x5c, 0x06, + 0x02, 0x1d, 0xc2, 0xe6, 0x94, 0x4f, 0x98, 0x37, 0x73, 0x45, 0x44, 0xa2, 0x33, 0x41, 0x85, 0x55, + 0x50, 0x92, 0x9f, 0xdd, 0x21, 0x39, 0x50, 0xac, 0xa1, 0x22, 0xe1, 0x8d, 0x69, 0x2a, 0xa2, 0x02, + 0x9d, 0xc3, 0x23, 0xad, 0xaa, 0x1b, 0x75, 0x3d, 0x32, 0x25, 0x23, 0x36, 0x61, 0x11, 0xa3, 0xc2, + 0x32, 0x55, 0x85, 0xaf, 0xee, 0x55, 0x41, 0x77, 0xda, 0x4e, 0xf8, 0x33, 0xbc, 0x33, 0xfd, 0x5f, + 0x80, 0x51, 0x51, 0xff, 0x1a, 0x60, 0x69, 0x9c, 0x9c, 0x01, 0x65, 0x5d, 0x32, 0x03, 0x2a, 0x90, + 0xd9, 0xf8, 0x43, 0x64, 0x6b, 0x39, 0x99, 0x55, 0x81, 0x64, 0x4a, 0x92, 0x62, 0x0b, 0x84, 0x20, + 0x2f, 0xd3, 0x9a, 0xa8, 0xd6, 0xe8, 0x01, 0x14, 0x94, 0x40, 0x42, 0xd4, 0x51, 0xfd, 0x05, 0x94, + 0x52, 0xf6, 0x22, 0x0b, 0x4c, 0x7d, 0x66, 0xcd, 0x4e, 0xc2, 0x1b, 0x0a, 0xff, 0x62, 0xc0, 0x5a, + 0xda, 0x4b, 0xf4, 0x42, 0xd5, 0x61, 0x3c, 0x50, 0xfc, 0x8d, 0xbd, 0x8f, 0xef, 0x9e, 0x14, 0xc6, + 0x03, 0xac, 0x49, 0xa8, 0x0a, 0x25, 0x26, 0xdc, 0x31, 0x13, 0x64, 0x34, 0xa1, 0x63, 0x35, 0xe0, + 0x45, 0x0c, 0x4c, 0x74, 0x74, 0x06, 0x3d, 0x82, 0x55, 0x26, 0x5c, 0x41, 0x89, 0x84, 0x73, 0x0a, + 0x2e, 0x32, 0x31, 0x54, 0x71, 0xfd, 0x08, 0xf2, 0xf2, 0x30, 0xd2, 0x80, 0x80, 0xf8, 0x0b, 0x03, + 0xe4, 0x1a, 0x6d, 0x83, 0xa9, 0x66, 0x8f, 0xc5, 0xaa, 0xeb, 0xb8, 0x20, 0x43, 0x67, 0x8c, 0x6a, + 0x50, 0x7a, 0xf7, 0xbf, 0x22, 0xc1, 0x74, 0xaa, 0xfe, 0x87, 0x01, 0xdb, 0x37, 0x7c, 0xce, 0x5b, + 0x0c, 0x5b, 0x3a, 0x91, 0x7d, 0x4f, 0x27, 0x3c, 0x12, 0x24, 0x56, 0xe8, 0xa3, 0x82, 0x47, 0x02, + 0x6d, 0x05, 0xda, 0x81, 0xa2, 0xdc, 0x20, 0xad, 0xb0, 0xf2, 0x0a, 0x35, 0x3d, 0x12, 0x48, 0x27, + 0xea, 0x1f, 0x81, 0x29, 0x7d, 0x70, 0x3a, 0x42, 0xee, 0xd2, 0xc7, 0x16, 0x96, 0x51, 0xcb, 0xed, + 0xae, 0x63, 0x33, 0x3e, 0xb7, 0xa8, 0x4f, 0xc0, 0x7c, 0xcd, 0xcf, 0xbc, 0x13, 0x1a, 0x22, 0x02, + 0x2b, 0xf2, 0x86, 0x8a, 0xb7, 0x94, 0xf6, 0x76, 0x1a, 0xf1, 0x1d, 0xd6, 0x90, 0x77, 0xd8, 0xa2, + 0xc1, 0x36, 0x67, 0xc1, 0xfe, 0x17, 0x6f, 0x2f, 0xab, 0x99, 0xdf, 0xff, 0xae, 0xee, 0x1e, 0xb3, + 0xe8, 0xe4, 0x6c, 0xd4, 0xf0, 0xb8, 0xdf, 0xd4, 0x17, 0x5e, 0xfc, 0xf3, 0x4c, 0x8c, 0x4f, 0x9b, + 0xd1, 0x6c, 0x4a, 0x85, 0x22, 0x08, 0x1c, 0x2b, 0xd7, 0x7f, 0x33, 0x60, 0xa3, 0x35, 0x1e, 0x87, + 0x54, 0x88, 0xa4, 0xaa, 0x05, 0x26, 0x89, 0x33, 0x89, 0x77, 0x3a, 0x44, 0x33, 0x30, 0xcf, 0xe3, + 0x4d, 0xca, 0xbc, 0x5b, 0x3b, 0xea, 0xc8, 0x8e, 0xfe, 0xba, 0xac, 0x7e, 0x72, 0xcf, 0x8e, 0xfe, + 0xbd, 0xac, 0x7e, 0xa0, 0xc5, 0x3f, 0xe7, 0x3e, 0x8b, 0xa8, 0x3f, 0x8d, 0x66, 0x38, 0xa9, 0xf7, + 0xf4, 0xc2, 0x80, 0x42, 0xfc, 0x29, 0xd0, 0x26, 0x94, 0x8e, 0x7a, 0xc3, 0x81, 0xdd, 0x76, 0x5e, + 0x3a, 0x76, 0xa7, 0x9c, 0x41, 0x45, 0xc8, 0x77, 0x9d, 0xde, 0x61, 0xd9, 0x40, 0x25, 0x30, 0xb1, + 0xdd, 0xb6, 0x9d, 0xd7, 0x76, 0x39, 0x2b, 0xd3, 0xfb, 0x47, 0xb8, 0x57, 0xce, 0xcb, 0xd5, 0xd0, + 0xee, 0x75, 0xca, 0x45, 0xb4, 0x01, 0x30, 0x3c, 0x1a, 0xd8, 0xd8, 0x55, 0x48, 0x19, 0x3d, 0x86, + 0x07, 0xdd, 0x7e, 0xc7, 0x79, 0xf9, 0xc6, 0x1d, 0xf4, 0x0f, 0x9c, 0xf6, 0x1b, 0xb7, 0xdb, 0xea, + 0xb5, 0xbe, 0xb5, 0xf1, 0xb0, 0x3c, 0x9f, 0xcf, 0xbf, 0x41, 0x1f, 0xc2, 0x96, 0x86, 0xdb, 0xfd, + 0xde, 0x21, 0x6e, 0xb5, 0x0f, 0xdd, 0x57, 0xfd, 0xfe, 0xf7, 0x12, 0x9c, 0x1b, 0xa8, 0x0a, 0xdb, + 0x1a, 0xc5, 0xfd, 0x03, 0xdb, 0x1d, 0xd8, 0xb8, 0xeb, 0x0c, 0x87, 0x4e, 0xbf, 0xa7, 0xd8, 0xf3, + 0x6c, 0x8a, 0xae, 0x36, 0xa4, 0xb5, 0xe7, 0xf9, 0xfd, 0xd3, 0xb7, 0x57, 0x15, 0xe3, 0xe2, 0xaa, + 0x62, 0xfc, 0x73, 0x55, 0x31, 0x7e, 0xbd, 0xae, 0x64, 0x2e, 0xae, 0x2b, 0x99, 0x3f, 0xaf, 0x2b, + 0x99, 0x1f, 0x7f, 0x48, 0x79, 0xe6, 0x24, 0xd3, 0x79, 0x40, 0x46, 0x62, 0xf9, 0x28, 0x3e, 0xf3, + 0x78, 0x48, 0xd3, 0xe1, 0x09, 0x61, 0x41, 0xd3, 0xe7, 0xe3, 0xb3, 0x09, 0x15, 0xef, 0xbc, 0x98, + 0xca, 0xe2, 0x51, 0x41, 0xbd, 0x67, 0x5f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xcd, 0x22, + 0x33, 0x57, 0x07, 0x00, 0x00, } func (m *Namespace) Marshal() (dAtA []byte, err error) { @@ -470,10 +763,10 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.AddressRoles) > 0 { - for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -484,10 +777,10 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x3a } } - if len(m.RolePermissions) > 0 { - for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -498,40 +791,52 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x32 } } - if m.BurnsPaused { - i-- - if m.BurnsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x28 } - if m.SendsPaused { - i-- - if m.SendsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.ActorRoles) > 0 { + for iNdEx := len(m.ActorRoles) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ActorRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } - i-- - dAtA[i] = 0x20 } - if m.MintsPaused { - i-- - if m.MintsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x18 } - if len(m.WasmHook) > 0 { - i -= len(m.WasmHook) - copy(dAtA[i:], m.WasmHook) - i = encodeVarintPermissions(dAtA, i, uint64(len(m.WasmHook))) + if len(m.ContractHook) > 0 { + i -= len(m.ContractHook) + copy(dAtA[i:], m.ContractHook) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.ContractHook))) i-- dAtA[i] = 0x12 } @@ -545,7 +850,7 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AddressRoles) Marshal() (dAtA []byte, err error) { +func (m *ActorRoles) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -555,12 +860,12 @@ func (m *AddressRoles) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *AddressRoles) MarshalTo(dAtA []byte) (int, error) { +func (m *ActorRoles) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *AddressRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ActorRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -574,17 +879,17 @@ func (m *AddressRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintPermissions(dAtA, i, uint64(len(m.Address))) + if len(m.Actor) > 0 { + i -= len(m.Actor) + copy(dAtA[i:], m.Actor) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Actor))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Role) Marshal() (dAtA []byte, err error) { +func (m *RoleActors) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -594,20 +899,24 @@ func (m *Role) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Role) MarshalTo(dAtA []byte) (int, error) { +func (m *RoleActors) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RoleActors) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Permissions != 0 { - i = encodeVarintPermissions(dAtA, i, uint64(m.Permissions)) - i-- - dAtA[i] = 0x10 + if len(m.Actors) > 0 { + for iNdEx := len(m.Actors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Actors[iNdEx]) + copy(dAtA[i:], m.Actors[iNdEx]) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Actors[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } if len(m.Role) > 0 { i -= len(m.Role) @@ -619,7 +928,7 @@ func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *RoleIDs) Marshal() (dAtA []byte, err error) { +func (m *RoleManager) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -629,31 +938,213 @@ func (m *RoleIDs) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RoleIDs) MarshalTo(dAtA []byte) (int, error) { +func (m *RoleManager) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RoleManager) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.RoleIds) > 0 { - dAtA2 := make([]byte, len(m.RoleIds)*10) - var j1 int - for _, num := range m.RoleIds { - for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA2[j1] = uint8(num) - j1++ + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0x12 } - i -= j1 - copy(dAtA[i:], dAtA2[:j1]) - i = encodeVarintPermissions(dAtA, i, uint64(j1)) + } + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PolicyStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsSealed { + i-- + if m.IsSealed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.IsDisabled { + i-- + if m.IsDisabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Action != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Action)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Role) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Role) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Permissions != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Permissions)) + i-- + dAtA[i] = 0x18 + } + if m.RoleId != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.RoleId)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PolicyManagerCapability) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyManagerCapability) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PolicyManagerCapability) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.CanSeal { + i-- + if m.CanSeal { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.CanDisable { + i-- + if m.CanDisable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Action != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Action)) + i-- + dAtA[i] = 0x10 + } + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RoleIDs) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleIDs) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RoleIds) > 0 { + dAtA2 := make([]byte, len(m.RoleIds)*10) + var j1 int + for _, num := range m.RoleIds { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintPermissions(dAtA, i, uint64(j1)) i-- dAtA[i] = 0xa } @@ -717,18 +1208,16 @@ func (m *AddressVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Voucher != nil { - { - size, err := m.Voucher.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPermissions(dAtA, i, uint64(size)) + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err } - i-- - dAtA[i] = 0x12 + i = encodeVarintPermissions(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x12 if len(m.Address) > 0 { i -= len(m.Address) copy(dAtA[i:], m.Address) @@ -760,27 +1249,36 @@ func (m *Namespace) Size() (n int) { if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } - l = len(m.WasmHook) + l = len(m.ContractHook) if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } - if m.MintsPaused { - n += 2 + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if m.SendsPaused { - n += 2 + if len(m.ActorRoles) > 0 { + for _, e := range m.ActorRoles { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if m.BurnsPaused { - n += 2 + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if len(m.RolePermissions) > 0 { - for _, e := range m.RolePermissions { + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { l = e.Size() n += 1 + l + sovPermissions(uint64(l)) } } - if len(m.AddressRoles) > 0 { - for _, e := range m.AddressRoles { + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { l = e.Size() n += 1 + l + sovPermissions(uint64(l)) } @@ -788,13 +1286,13 @@ func (m *Namespace) Size() (n int) { return n } -func (m *AddressRoles) Size() (n int) { +func (m *ActorRoles) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Address) + l = len(m.Actor) if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } @@ -807,7 +1305,7 @@ func (m *AddressRoles) Size() (n int) { return n } -func (m *Role) Size() (n int) { +func (m *RoleActors) Size() (n int) { if m == nil { return 0 } @@ -817,12 +1315,93 @@ func (m *Role) Size() (n int) { if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } + if len(m.Actors) > 0 { + for _, s := range m.Actors { + l = len(s) + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *RoleManager) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *PolicyStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Action != 0 { + n += 1 + sovPermissions(uint64(m.Action)) + } + if m.IsDisabled { + n += 2 + } + if m.IsSealed { + n += 2 + } + return n +} + +func (m *Role) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.RoleId != 0 { + n += 1 + sovPermissions(uint64(m.RoleId)) + } if m.Permissions != 0 { n += 1 + sovPermissions(uint64(m.Permissions)) } return n } +func (m *PolicyManagerCapability) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.Action != 0 { + n += 1 + sovPermissions(uint64(m.Action)) + } + if m.CanDisable { + n += 2 + } + if m.CanSeal { + n += 2 + } + return n +} + func (m *RoleIDs) Size() (n int) { if m == nil { return 0 @@ -851,33 +1430,543 @@ func (m *Voucher) Size() (n int) { n += 1 + l + sovPermissions(uint64(l)) } } - return n -} + return n +} + +func (m *AddressVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + l = m.Voucher.Size() + n += 1 + l + sovPermissions(uint64(l)) + return n +} + +func sovPermissions(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozPermissions(x uint64) (n int) { + return sovPermissions(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Namespace) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Namespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Namespace: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractHook = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RolePermissions = append(m.RolePermissions, &Role{}) + if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActorRoles", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActorRoles = append(m.ActorRoles, &ActorRoles{}) + if err := m.ActorRoles[len(m.ActorRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActorRoles) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActorRoles: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActorRoles: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actor", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actor = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleActors) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleActors: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleActors: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actors = append(m.Actors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func (m *AddressVoucher) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovPermissions(uint64(l)) - } - if m.Voucher != nil { - l = m.Voucher.Size() - n += 1 + l + sovPermissions(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} - -func sovPermissions(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozPermissions(x uint64) (n int) { - return sovPermissions(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *Namespace) Unmarshal(dAtA []byte) error { +func (m *RoleManager) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -900,15 +1989,15 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Namespace: wiretype end group for non-group") + return fmt.Errorf("proto: RoleManager: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Namespace: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RoleManager: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -936,11 +2025,11 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denom = string(dAtA[iNdEx:postIndex]) + m.Manager = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -968,13 +2057,63 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.WasmHook = string(dAtA[iNdEx:postIndex]) + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PolicyStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PolicyStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PolicyStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) } - var v int + m.Action = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -984,15 +2123,14 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.Action |= Action(b&0x7F) << shift if b < 0x80 { break } } - m.MintsPaused = bool(v != 0) - case 4: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsDisabled", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -1009,10 +2147,10 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { break } } - m.SendsPaused = bool(v != 0) - case 5: + m.IsDisabled = bool(v != 0) + case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsSealed", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -1029,75 +2167,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { break } } - m.BurnsPaused = bool(v != 0) - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RolePermissions = append(m.RolePermissions, &Role{}) - if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) - if err := m.AddressRoles[len(m.AddressRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.IsSealed = bool(v != 0) default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1119,7 +2189,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { } return nil } -func (m *AddressRoles) Unmarshal(dAtA []byte) error { +func (m *Role) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1142,15 +2212,15 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AddressRoles: wiretype end group for non-group") + return fmt.Errorf("proto: Role: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AddressRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1178,13 +2248,13 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Address = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleId", wireType) } - var stringLen uint64 + m.RoleId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -1194,24 +2264,30 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.RoleId |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPermissions + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + m.Permissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Permissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } } - m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1233,7 +2309,7 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *Role) Unmarshal(dAtA []byte) error { +func (m *PolicyManagerCapability) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1256,15 +2332,15 @@ func (m *Role) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Role: wiretype end group for non-group") + return fmt.Errorf("proto: PolicyManagerCapability: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PolicyManagerCapability: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1292,13 +2368,13 @@ func (m *Role) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Role = string(dAtA[iNdEx:postIndex]) + m.Manager = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) } - m.Permissions = 0 + m.Action = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -1308,11 +2384,51 @@ func (m *Role) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Permissions |= uint32(b&0x7F) << shift + m.Action |= Action(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanDisable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanDisable = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanSeal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.CanSeal = bool(v != 0) default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1634,9 +2750,6 @@ func (m *AddressVoucher) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Voucher == nil { - m.Voucher = &Voucher{} - } if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/chain/permissions/types/query.pb.go b/chain/permissions/types/query.pb.go index 78206717..6fe5e1e4 100644 --- a/chain/permissions/types/query.pb.go +++ b/chain/permissions/types/query.pb.go @@ -6,8 +6,8 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -115,23 +115,23 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } -// QueryAllNamespacesRequest is the request type for the Query/AllNamespaces RPC +// QueryNamespaceDenomsRequest is the request type for the Query/NamespaceDenoms RPC // method. -type QueryAllNamespacesRequest struct { +type QueryNamespaceDenomsRequest struct { } -func (m *QueryAllNamespacesRequest) Reset() { *m = QueryAllNamespacesRequest{} } -func (m *QueryAllNamespacesRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAllNamespacesRequest) ProtoMessage() {} -func (*QueryAllNamespacesRequest) Descriptor() ([]byte, []int) { +func (m *QueryNamespaceDenomsRequest) Reset() { *m = QueryNamespaceDenomsRequest{} } +func (m *QueryNamespaceDenomsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceDenomsRequest) ProtoMessage() {} +func (*QueryNamespaceDenomsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{2} } -func (m *QueryAllNamespacesRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceDenomsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAllNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceDenomsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAllNamespacesRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceDenomsRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -141,36 +141,36 @@ func (m *QueryAllNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryAllNamespacesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAllNamespacesRequest.Merge(m, src) +func (m *QueryNamespaceDenomsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceDenomsRequest.Merge(m, src) } -func (m *QueryAllNamespacesRequest) XXX_Size() int { +func (m *QueryNamespaceDenomsRequest) XXX_Size() int { return m.Size() } -func (m *QueryAllNamespacesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAllNamespacesRequest.DiscardUnknown(m) +func (m *QueryNamespaceDenomsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceDenomsRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAllNamespacesRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceDenomsRequest proto.InternalMessageInfo -// QueryAllNamespacesResponse is the response type for the Query/AllNamespaces +// QueryNamespaceDenomsResponse is the response type for the Query/NamespaceDenoms // RPC method. -type QueryAllNamespacesResponse struct { - Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +type QueryNamespaceDenomsResponse struct { + Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty"` } -func (m *QueryAllNamespacesResponse) Reset() { *m = QueryAllNamespacesResponse{} } -func (m *QueryAllNamespacesResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAllNamespacesResponse) ProtoMessage() {} -func (*QueryAllNamespacesResponse) Descriptor() ([]byte, []int) { +func (m *QueryNamespaceDenomsResponse) Reset() { *m = QueryNamespaceDenomsResponse{} } +func (m *QueryNamespaceDenomsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceDenomsResponse) ProtoMessage() {} +func (*QueryNamespaceDenomsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{3} } -func (m *QueryAllNamespacesResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceDenomsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAllNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceDenomsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAllNamespacesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceDenomsResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -180,44 +180,81 @@ func (m *QueryAllNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ( return b[:n], nil } } -func (m *QueryAllNamespacesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAllNamespacesResponse.Merge(m, src) +func (m *QueryNamespaceDenomsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceDenomsResponse.Merge(m, src) } -func (m *QueryAllNamespacesResponse) XXX_Size() int { +func (m *QueryNamespaceDenomsResponse) XXX_Size() int { return m.Size() } -func (m *QueryAllNamespacesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAllNamespacesResponse.DiscardUnknown(m) +func (m *QueryNamespaceDenomsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceDenomsResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAllNamespacesResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceDenomsResponse proto.InternalMessageInfo -func (m *QueryAllNamespacesResponse) GetNamespaces() []*Namespace { +func (m *QueryNamespaceDenomsResponse) GetDenoms() []string { if m != nil { - return m.Namespaces + return m.Denoms } return nil } -// QueryNamespaceByDenomRequest is the request type for the -// Query/NamespaceByDenom RPC method. -type QueryNamespaceByDenomRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - IncludeRoles bool `protobuf:"varint,2,opt,name=include_roles,json=includeRoles,proto3" json:"include_roles,omitempty"` +// QueryNamespacesRequest is the request type for the Query/Namespaces RPC +// method. +type QueryNamespacesRequest struct { } -func (m *QueryNamespaceByDenomRequest) Reset() { *m = QueryNamespaceByDenomRequest{} } -func (m *QueryNamespaceByDenomRequest) String() string { return proto.CompactTextString(m) } -func (*QueryNamespaceByDenomRequest) ProtoMessage() {} -func (*QueryNamespaceByDenomRequest) Descriptor() ([]byte, []int) { +func (m *QueryNamespacesRequest) Reset() { *m = QueryNamespacesRequest{} } +func (m *QueryNamespacesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespacesRequest) ProtoMessage() {} +func (*QueryNamespacesRequest) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{4} } -func (m *QueryNamespaceByDenomRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespacesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespacesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespacesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespacesRequest.Merge(m, src) +} +func (m *QueryNamespacesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespacesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespacesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespacesRequest proto.InternalMessageInfo + +// QueryNamespacesResponse is the response type for the Query/Namespaces +// RPC method. +type QueryNamespacesResponse struct { + Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +} + +func (m *QueryNamespacesResponse) Reset() { *m = QueryNamespacesResponse{} } +func (m *QueryNamespacesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespacesResponse) ProtoMessage() {} +func (*QueryNamespacesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{5} +} +func (m *QueryNamespacesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryNamespaceByDenomRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryNamespaceByDenomRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespacesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -227,50 +264,89 @@ func (m *QueryNamespaceByDenomRequest) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryNamespaceByDenomRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryNamespaceByDenomRequest.Merge(m, src) +func (m *QueryNamespacesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespacesResponse.Merge(m, src) } -func (m *QueryNamespaceByDenomRequest) XXX_Size() int { +func (m *QueryNamespacesResponse) XXX_Size() int { return m.Size() } -func (m *QueryNamespaceByDenomRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryNamespaceByDenomRequest.DiscardUnknown(m) +func (m *QueryNamespacesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespacesResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryNamespaceByDenomRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespacesResponse proto.InternalMessageInfo -func (m *QueryNamespaceByDenomRequest) GetDenom() string { +func (m *QueryNamespacesResponse) GetNamespaces() []*Namespace { if m != nil { - return m.Denom + return m.Namespaces } - return "" + return nil } -func (m *QueryNamespaceByDenomRequest) GetIncludeRoles() bool { +// QueryNamespaceRequest is the request type for the +// Query/Namespace RPC method. +type QueryNamespaceRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *QueryNamespaceRequest) Reset() { *m = QueryNamespaceRequest{} } +func (m *QueryNamespaceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceRequest) ProtoMessage() {} +func (*QueryNamespaceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{6} +} +func (m *QueryNamespaceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespaceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespaceRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespaceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceRequest.Merge(m, src) +} +func (m *QueryNamespaceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespaceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespaceRequest proto.InternalMessageInfo + +func (m *QueryNamespaceRequest) GetDenom() string { if m != nil { - return m.IncludeRoles + return m.Denom } - return false + return "" } -// QueryNamespaceByDenomResponse is the response type for the +// QueryNamespaceResponse is the response type for the // Query/NamespaceByDenom RPC method. -type QueryNamespaceByDenomResponse struct { +type QueryNamespaceResponse struct { Namespace *Namespace `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` } -func (m *QueryNamespaceByDenomResponse) Reset() { *m = QueryNamespaceByDenomResponse{} } -func (m *QueryNamespaceByDenomResponse) String() string { return proto.CompactTextString(m) } -func (*QueryNamespaceByDenomResponse) ProtoMessage() {} -func (*QueryNamespaceByDenomResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{5} +func (m *QueryNamespaceResponse) Reset() { *m = QueryNamespaceResponse{} } +func (m *QueryNamespaceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceResponse) ProtoMessage() {} +func (*QueryNamespaceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{7} } -func (m *QueryNamespaceByDenomResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryNamespaceByDenomResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryNamespaceByDenomResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -280,19 +356,19 @@ func (m *QueryNamespaceByDenomResponse) XXX_Marshal(b []byte, deterministic bool return b[:n], nil } } -func (m *QueryNamespaceByDenomResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryNamespaceByDenomResponse.Merge(m, src) +func (m *QueryNamespaceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceResponse.Merge(m, src) } -func (m *QueryNamespaceByDenomResponse) XXX_Size() int { +func (m *QueryNamespaceResponse) XXX_Size() int { return m.Size() } -func (m *QueryNamespaceByDenomResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryNamespaceByDenomResponse.DiscardUnknown(m) +func (m *QueryNamespaceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryNamespaceByDenomResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceResponse proto.InternalMessageInfo -func (m *QueryNamespaceByDenomResponse) GetNamespace() *Namespace { +func (m *QueryNamespaceResponse) GetNamespace() *Namespace { if m != nil { return m.Namespace } @@ -301,23 +377,23 @@ func (m *QueryNamespaceByDenomResponse) GetNamespace() *Namespace { // QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole // RPC method. -type QueryAddressesByRoleRequest struct { +type QueryActorsByRoleRequest struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } -func (m *QueryAddressesByRoleRequest) Reset() { *m = QueryAddressesByRoleRequest{} } -func (m *QueryAddressesByRoleRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAddressesByRoleRequest) ProtoMessage() {} -func (*QueryAddressesByRoleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{6} +func (m *QueryActorsByRoleRequest) Reset() { *m = QueryActorsByRoleRequest{} } +func (m *QueryActorsByRoleRequest) String() string { return proto.CompactTextString(m) } +func (*QueryActorsByRoleRequest) ProtoMessage() {} +func (*QueryActorsByRoleRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{8} } -func (m *QueryAddressesByRoleRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryActorsByRoleRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressesByRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryActorsByRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressesByRoleRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryActorsByRoleRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -327,26 +403,26 @@ func (m *QueryAddressesByRoleRequest) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryAddressesByRoleRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressesByRoleRequest.Merge(m, src) +func (m *QueryActorsByRoleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActorsByRoleRequest.Merge(m, src) } -func (m *QueryAddressesByRoleRequest) XXX_Size() int { +func (m *QueryActorsByRoleRequest) XXX_Size() int { return m.Size() } -func (m *QueryAddressesByRoleRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressesByRoleRequest.DiscardUnknown(m) +func (m *QueryActorsByRoleRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActorsByRoleRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressesByRoleRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryActorsByRoleRequest proto.InternalMessageInfo -func (m *QueryAddressesByRoleRequest) GetDenom() string { +func (m *QueryActorsByRoleRequest) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *QueryAddressesByRoleRequest) GetRole() string { +func (m *QueryActorsByRoleRequest) GetRole() string { if m != nil { return m.Role } @@ -355,22 +431,22 @@ func (m *QueryAddressesByRoleRequest) GetRole() string { // QueryAddressesByRoleResponse is the response type for the // Query/AddressesByRole RPC method. -type QueryAddressesByRoleResponse struct { - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +type QueryActorsByRoleResponse struct { + Actors []string `protobuf:"bytes,1,rep,name=actors,proto3" json:"actors,omitempty"` } -func (m *QueryAddressesByRoleResponse) Reset() { *m = QueryAddressesByRoleResponse{} } -func (m *QueryAddressesByRoleResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAddressesByRoleResponse) ProtoMessage() {} -func (*QueryAddressesByRoleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{7} +func (m *QueryActorsByRoleResponse) Reset() { *m = QueryActorsByRoleResponse{} } +func (m *QueryActorsByRoleResponse) String() string { return proto.CompactTextString(m) } +func (*QueryActorsByRoleResponse) ProtoMessage() {} +func (*QueryActorsByRoleResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{9} } -func (m *QueryAddressesByRoleResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryActorsByRoleResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressesByRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryActorsByRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressesByRoleResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryActorsByRoleResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -380,42 +456,44 @@ func (m *QueryAddressesByRoleResponse) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryAddressesByRoleResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressesByRoleResponse.Merge(m, src) +func (m *QueryActorsByRoleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActorsByRoleResponse.Merge(m, src) } -func (m *QueryAddressesByRoleResponse) XXX_Size() int { +func (m *QueryActorsByRoleResponse) XXX_Size() int { return m.Size() } -func (m *QueryAddressesByRoleResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressesByRoleResponse.DiscardUnknown(m) +func (m *QueryActorsByRoleResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActorsByRoleResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressesByRoleResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryActorsByRoleResponse proto.InternalMessageInfo -func (m *QueryAddressesByRoleResponse) GetAddresses() []string { +func (m *QueryActorsByRoleResponse) GetActors() []string { if m != nil { - return m.Addresses + return m.Actors } return nil } -type QueryAddressRolesRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +// QueryRolesByActorRequest is the request type for the +// Query/RolesByActor RPC method. +type QueryRolesByActorRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Actor string `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"` } -func (m *QueryAddressRolesRequest) Reset() { *m = QueryAddressRolesRequest{} } -func (m *QueryAddressRolesRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAddressRolesRequest) ProtoMessage() {} -func (*QueryAddressRolesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{8} +func (m *QueryRolesByActorRequest) Reset() { *m = QueryRolesByActorRequest{} } +func (m *QueryRolesByActorRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRolesByActorRequest) ProtoMessage() {} +func (*QueryRolesByActorRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{10} } -func (m *QueryAddressRolesRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryRolesByActorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRolesByActorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressRolesRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRolesByActorRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -425,48 +503,50 @@ func (m *QueryAddressRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *QueryAddressRolesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressRolesRequest.Merge(m, src) +func (m *QueryRolesByActorRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRolesByActorRequest.Merge(m, src) } -func (m *QueryAddressRolesRequest) XXX_Size() int { +func (m *QueryRolesByActorRequest) XXX_Size() int { return m.Size() } -func (m *QueryAddressRolesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressRolesRequest.DiscardUnknown(m) +func (m *QueryRolesByActorRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRolesByActorRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressRolesRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryRolesByActorRequest proto.InternalMessageInfo -func (m *QueryAddressRolesRequest) GetDenom() string { +func (m *QueryRolesByActorRequest) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *QueryAddressRolesRequest) GetAddress() string { +func (m *QueryRolesByActorRequest) GetActor() string { if m != nil { - return m.Address + return m.Actor } return "" } -type QueryAddressRolesResponse struct { +// QueryRolesByActorResponse is the response type for the +// Query/RolesByActor RPC method. +type QueryRolesByActorResponse struct { Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *QueryAddressRolesResponse) Reset() { *m = QueryAddressRolesResponse{} } -func (m *QueryAddressRolesResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAddressRolesResponse) ProtoMessage() {} -func (*QueryAddressRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{9} +func (m *QueryRolesByActorResponse) Reset() { *m = QueryRolesByActorResponse{} } +func (m *QueryRolesByActorResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRolesByActorResponse) ProtoMessage() {} +func (*QueryRolesByActorResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{11} } -func (m *QueryAddressRolesResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryRolesByActorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRolesByActorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressRolesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRolesByActorResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -476,41 +556,43 @@ func (m *QueryAddressRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryAddressRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressRolesResponse.Merge(m, src) +func (m *QueryRolesByActorResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRolesByActorResponse.Merge(m, src) } -func (m *QueryAddressRolesResponse) XXX_Size() int { +func (m *QueryRolesByActorResponse) XXX_Size() int { return m.Size() } -func (m *QueryAddressRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressRolesResponse.DiscardUnknown(m) +func (m *QueryRolesByActorResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRolesByActorResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressRolesResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryRolesByActorResponse proto.InternalMessageInfo -func (m *QueryAddressRolesResponse) GetRoles() []string { +func (m *QueryRolesByActorResponse) GetRoles() []string { if m != nil { return m.Roles } return nil } -type QueryVouchersForAddressRequest struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +// QueryRoleManagersRequest is the request type for the Query/RoleManagers +// RPC method. +type QueryRoleManagersRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *QueryVouchersForAddressRequest) Reset() { *m = QueryVouchersForAddressRequest{} } -func (m *QueryVouchersForAddressRequest) String() string { return proto.CompactTextString(m) } -func (*QueryVouchersForAddressRequest) ProtoMessage() {} -func (*QueryVouchersForAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{10} +func (m *QueryRoleManagersRequest) Reset() { *m = QueryRoleManagersRequest{} } +func (m *QueryRoleManagersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagersRequest) ProtoMessage() {} +func (*QueryRoleManagersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{12} } -func (m *QueryVouchersForAddressRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryRoleManagersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryVouchersForAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRoleManagersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryVouchersForAddressRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRoleManagersRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -520,41 +602,43 @@ func (m *QueryVouchersForAddressRequest) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *QueryVouchersForAddressRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryVouchersForAddressRequest.Merge(m, src) +func (m *QueryRoleManagersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagersRequest.Merge(m, src) } -func (m *QueryVouchersForAddressRequest) XXX_Size() int { +func (m *QueryRoleManagersRequest) XXX_Size() int { return m.Size() } -func (m *QueryVouchersForAddressRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryVouchersForAddressRequest.DiscardUnknown(m) +func (m *QueryRoleManagersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagersRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryVouchersForAddressRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryRoleManagersRequest proto.InternalMessageInfo -func (m *QueryVouchersForAddressRequest) GetAddress() string { +func (m *QueryRoleManagersRequest) GetDenom() string { if m != nil { - return m.Address + return m.Denom } return "" } -type QueryVouchersForAddressResponse struct { - Vouchers github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=vouchers,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"vouchers,omitempty"` +// QueryRoleManagersResponse is the response type for the +// Query/RoleManagers RPC method. +type QueryRoleManagersResponse struct { + RoleManagers []*RoleManager `protobuf:"bytes,1,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` } -func (m *QueryVouchersForAddressResponse) Reset() { *m = QueryVouchersForAddressResponse{} } -func (m *QueryVouchersForAddressResponse) String() string { return proto.CompactTextString(m) } -func (*QueryVouchersForAddressResponse) ProtoMessage() {} -func (*QueryVouchersForAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{11} +func (m *QueryRoleManagersResponse) Reset() { *m = QueryRoleManagersResponse{} } +func (m *QueryRoleManagersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagersResponse) ProtoMessage() {} +func (*QueryRoleManagersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{13} } -func (m *QueryVouchersForAddressResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryRoleManagersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryVouchersForAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRoleManagersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryVouchersForAddressResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRoleManagersResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -564,964 +648,3567 @@ func (m *QueryVouchersForAddressResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryVouchersForAddressResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryVouchersForAddressResponse.Merge(m, src) +func (m *QueryRoleManagersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagersResponse.Merge(m, src) } -func (m *QueryVouchersForAddressResponse) XXX_Size() int { +func (m *QueryRoleManagersResponse) XXX_Size() int { return m.Size() } -func (m *QueryVouchersForAddressResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryVouchersForAddressResponse.DiscardUnknown(m) +func (m *QueryRoleManagersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagersResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryVouchersForAddressResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryRoleManagersResponse proto.InternalMessageInfo -func (m *QueryVouchersForAddressResponse) GetVouchers() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *QueryRoleManagersResponse) GetRoleManagers() []*RoleManager { if m != nil { - return m.Vouchers + return m.RoleManagers } return nil } -func init() { - proto.RegisterType((*QueryParamsRequest)(nil), "injective.permissions.v1beta1.QueryParamsRequest") - proto.RegisterType((*QueryParamsResponse)(nil), "injective.permissions.v1beta1.QueryParamsResponse") - proto.RegisterType((*QueryAllNamespacesRequest)(nil), "injective.permissions.v1beta1.QueryAllNamespacesRequest") - proto.RegisterType((*QueryAllNamespacesResponse)(nil), "injective.permissions.v1beta1.QueryAllNamespacesResponse") - proto.RegisterType((*QueryNamespaceByDenomRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomRequest") - proto.RegisterType((*QueryNamespaceByDenomResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomResponse") - proto.RegisterType((*QueryAddressesByRoleRequest)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleRequest") - proto.RegisterType((*QueryAddressesByRoleResponse)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleResponse") - proto.RegisterType((*QueryAddressRolesRequest)(nil), "injective.permissions.v1beta1.QueryAddressRolesRequest") - proto.RegisterType((*QueryAddressRolesResponse)(nil), "injective.permissions.v1beta1.QueryAddressRolesResponse") - proto.RegisterType((*QueryVouchersForAddressRequest)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressRequest") - proto.RegisterType((*QueryVouchersForAddressResponse)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressResponse") +// QueryRoleManagerRequest is the request type for the Query/RoleManager +// RPC method. +type QueryRoleManagerRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Manager string `protobuf:"bytes,2,opt,name=manager,proto3" json:"manager,omitempty"` } -func init() { - proto.RegisterFile("injective/permissions/v1beta1/query.proto", fileDescriptor_e0ae50f1018498b3) +func (m *QueryRoleManagerRequest) Reset() { *m = QueryRoleManagerRequest{} } +func (m *QueryRoleManagerRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagerRequest) ProtoMessage() {} +func (*QueryRoleManagerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{14} } - -var fileDescriptor_e0ae50f1018498b3 = []byte{ - // 816 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4d, 0x4f, 0xdb, 0x4a, - 0x14, 0xcd, 0xf0, 0x80, 0x47, 0x06, 0xd0, 0x7b, 0x9a, 0x66, 0x11, 0x0c, 0x38, 0xc8, 0x15, 0x6a, - 0xfa, 0x11, 0xbb, 0x09, 0x42, 0xe5, 0xab, 0x95, 0x1a, 0x2a, 0xfa, 0xa1, 0xaa, 0x2a, 0x5e, 0x54, - 0x2a, 0x9b, 0xc8, 0x71, 0x06, 0xe3, 0x62, 0x7b, 0x8c, 0xc7, 0x41, 0xca, 0xa2, 0x9b, 0xee, 0xba, - 0xab, 0xd4, 0x7d, 0xd5, 0x75, 0xff, 0x02, 0xdb, 0x2e, 0x58, 0x22, 0x75, 0xd3, 0x15, 0xad, 0xa0, - 0xab, 0xfe, 0x8a, 0xca, 0xe3, 0xb1, 0xe3, 0x10, 0x12, 0x87, 0x74, 0x45, 0x66, 0xee, 0x3d, 0xf7, - 0x9e, 0x73, 0x3d, 0xf7, 0x08, 0x78, 0xd3, 0x74, 0xde, 0x60, 0xdd, 0x37, 0x0f, 0xb1, 0xe2, 0x62, - 0xcf, 0x36, 0x29, 0x35, 0x89, 0x43, 0x95, 0xc3, 0x72, 0x1d, 0xfb, 0x5a, 0x59, 0x39, 0x68, 0x62, - 0xaf, 0x25, 0xbb, 0x1e, 0xf1, 0x09, 0x9a, 0x8f, 0x53, 0xe5, 0x44, 0xaa, 0xcc, 0x53, 0x85, 0x9c, - 0x41, 0x0c, 0xc2, 0x32, 0x95, 0xe0, 0x57, 0x08, 0x12, 0xe6, 0x0c, 0x42, 0x0c, 0x0b, 0x2b, 0x9a, - 0x6b, 0x2a, 0x9a, 0xe3, 0x10, 0x5f, 0xf3, 0x19, 0x2a, 0x8c, 0x8a, 0x3a, 0xa1, 0x36, 0xa1, 0x4a, - 0x5d, 0xa3, 0x38, 0xee, 0xa9, 0x13, 0xd3, 0xe1, 0xf1, 0x5b, 0xc9, 0x38, 0xe3, 0x12, 0x67, 0xb9, - 0x9a, 0x61, 0x3a, 0xac, 0x58, 0x94, 0xdb, 0x5f, 0x89, 0xab, 0x79, 0x9a, 0x1d, 0xf5, 0xbd, 0xdd, - 0x3f, 0xd7, 0xc0, 0x0e, 0xa6, 0x66, 0x94, 0xac, 0xa4, 0x14, 0x4e, 0xcc, 0x82, 0x01, 0xa4, 0x1c, - 0x44, 0xdb, 0x01, 0xd7, 0x97, 0xac, 0xa5, 0x8a, 0x0f, 0x9a, 0x98, 0xfa, 0xd2, 0x0e, 0xbc, 0xd6, - 0x71, 0x4b, 0x5d, 0xe2, 0x50, 0x8c, 0x36, 0xe1, 0x78, 0x48, 0x2d, 0x0f, 0x16, 0x40, 0x71, 0xb2, - 0xb2, 0x28, 0xf7, 0x1d, 0xb3, 0x1c, 0xc2, 0xab, 0xa3, 0xc7, 0xa7, 0x85, 0x8c, 0xca, 0xa1, 0xd2, - 0x2c, 0x9c, 0x61, 0xb5, 0x1f, 0x5a, 0xd6, 0x0b, 0xcd, 0xc6, 0xd4, 0xd5, 0x74, 0x1c, 0x37, 0xde, - 0x85, 0xc2, 0x65, 0x41, 0xde, 0xff, 0x09, 0x84, 0x4e, 0x7c, 0x9b, 0x07, 0x0b, 0xff, 0x14, 0x27, - 0x2b, 0xc5, 0x14, 0x0e, 0x71, 0x19, 0x35, 0x81, 0x95, 0x5e, 0xc3, 0x39, 0xd6, 0x27, 0x8e, 0x56, - 0x5b, 0x8f, 0xb0, 0x43, 0x6c, 0xce, 0x03, 0xe5, 0xe0, 0x58, 0x23, 0x38, 0x33, 0xa1, 0x59, 0x35, - 0x3c, 0xa0, 0xeb, 0x70, 0xda, 0x74, 0x74, 0xab, 0xd9, 0xc0, 0x35, 0x8f, 0x58, 0x98, 0xe6, 0x47, - 0x16, 0x40, 0x71, 0x42, 0x9d, 0xe2, 0x97, 0x6a, 0x70, 0x27, 0x19, 0x70, 0xbe, 0x47, 0x69, 0xae, - 0x62, 0x0b, 0x66, 0x63, 0x26, 0x7c, 0x90, 0x83, 0x8b, 0x68, 0x43, 0xa5, 0xc7, 0x70, 0x36, 0x9c, - 0x55, 0xa3, 0xe1, 0x61, 0x4a, 0x31, 0xad, 0xb6, 0x02, 0x06, 0xfd, 0x25, 0x20, 0x38, 0x1a, 0x50, - 0x67, 0xcc, 0xb3, 0x2a, 0xfb, 0x2d, 0x6d, 0xf0, 0x61, 0x74, 0x15, 0xe2, 0x84, 0xe7, 0x60, 0x56, - 0x8b, 0x42, 0x6c, 0xea, 0x59, 0xb5, 0x7d, 0x21, 0x3d, 0x83, 0xf9, 0x24, 0x9a, 0x0d, 0xa1, 0x3f, - 0x87, 0x3c, 0xfc, 0x97, 0xc3, 0x39, 0x8d, 0xe8, 0x28, 0x95, 0xa3, 0xb7, 0xd1, 0x51, 0x8b, 0xd3, - 0xc8, 0xc1, 0xb1, 0x70, 0xea, 0x21, 0x85, 0xf0, 0x20, 0xad, 0x41, 0x91, 0x41, 0x5e, 0x91, 0xa6, - 0xbe, 0x87, 0x3d, 0xba, 0x45, 0xbc, 0x08, 0xcd, 0x49, 0x24, 0xda, 0x81, 0xce, 0x76, 0x9f, 0x01, - 0x2c, 0xf4, 0x04, 0xf3, 0xae, 0x6f, 0xe1, 0xc4, 0x21, 0x8f, 0xf2, 0x17, 0x37, 0x23, 0x87, 0x9b, - 0x2e, 0x07, 0x9b, 0x1e, 0x7f, 0xa2, 0x4d, 0x62, 0x3a, 0xd5, 0xad, 0xe0, 0xa5, 0xff, 0x3e, 0x2d, - 0xa0, 0x08, 0x72, 0x87, 0xd8, 0xa6, 0x8f, 0x6d, 0xd7, 0x6f, 0x7d, 0xf9, 0x51, 0x28, 0x1a, 0xa6, - 0xbf, 0xd7, 0xac, 0xcb, 0x3a, 0xb1, 0x15, 0x6e, 0x16, 0xe1, 0x9f, 0x12, 0x6d, 0xec, 0x2b, 0x7e, - 0xcb, 0xc5, 0x94, 0x95, 0xa1, 0x6a, 0xdc, 0xb2, 0xf2, 0x3e, 0x0b, 0xc7, 0x18, 0x45, 0xf4, 0x09, - 0xc0, 0xf1, 0x70, 0xa1, 0x50, 0x39, 0xe5, 0xb9, 0x74, 0x6f, 0xb4, 0x50, 0xb9, 0x0a, 0x24, 0x94, - 0x2e, 0x95, 0xde, 0x7d, 0xfb, 0xf5, 0x71, 0xe4, 0x06, 0x5a, 0x54, 0x06, 0xb1, 0x2b, 0x74, 0x04, - 0xe0, 0x74, 0xc7, 0xde, 0xa2, 0x95, 0x41, 0x9a, 0x5e, 0xe6, 0x03, 0xc2, 0xea, 0x10, 0x48, 0xce, - 0x7a, 0x99, 0xb1, 0x56, 0x50, 0x29, 0x85, 0xb5, 0x66, 0x59, 0xb5, 0xb6, 0x23, 0xa0, 0x63, 0x00, - 0xff, 0xbf, 0xb8, 0xb2, 0x68, 0x7d, 0x10, 0x1a, 0x3d, 0x3c, 0x44, 0xd8, 0x18, 0x0e, 0xcc, 0x65, - 0xac, 0x32, 0x19, 0x4b, 0xa8, 0x9c, 0x22, 0x23, 0x96, 0x50, 0xab, 0xb7, 0x6a, 0xe1, 0x7e, 0x1d, - 0x01, 0x38, 0x95, 0xdc, 0x20, 0x74, 0x6f, 0xa0, 0x69, 0x76, 0xef, 0xaf, 0xb0, 0x72, 0x75, 0x20, - 0xa7, 0xbf, 0xc2, 0xe8, 0x57, 0xd0, 0xdd, 0xb4, 0xaf, 0x10, 0xf9, 0x48, 0x40, 0x3f, 0xd8, 0x68, - 0xf4, 0x15, 0xc0, 0xff, 0x2e, 0x38, 0x11, 0x5a, 0xbb, 0x02, 0x8f, 0x0b, 0x3e, 0x28, 0xac, 0x0f, - 0x85, 0xfd, 0x6b, 0x19, 0x27, 0x00, 0xa2, 0x6e, 0x5b, 0x41, 0xf7, 0x07, 0x61, 0xd3, 0xd3, 0xcb, - 0x84, 0x07, 0xc3, 0xc2, 0xb9, 0x9e, 0x75, 0xa6, 0x67, 0x19, 0x2d, 0xa5, 0xe8, 0x89, 0xfc, 0xa7, - 0xb6, 0x4b, 0xbc, 0x1a, 0x17, 0x57, 0xdd, 0x3f, 0x3e, 0x13, 0xc1, 0xc9, 0x99, 0x08, 0x7e, 0x9e, - 0x89, 0xe0, 0xc3, 0xb9, 0x98, 0x39, 0x39, 0x17, 0x33, 0xdf, 0xcf, 0xc5, 0xcc, 0xce, 0x76, 0xc2, - 0xd9, 0x9e, 0x46, 0x85, 0x9f, 0x6b, 0x75, 0xda, 0x6e, 0x53, 0xd2, 0x89, 0x87, 0x93, 0xc7, 0x3d, - 0xcd, 0x74, 0x14, 0x9b, 0x34, 0x9a, 0x16, 0xa6, 0x1d, 0x1c, 0x98, 0x11, 0xd6, 0xc7, 0xd9, 0xff, - 0x27, 0x4b, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x50, 0xbf, 0x64, 0x1e, 0xf5, 0x09, 0x00, 0x00, +func (m *QueryRoleManagerRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRoleManagerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRoleManagerRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryRoleManagerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagerRequest.Merge(m, src) +} +func (m *QueryRoleManagerRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryRoleManagerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagerRequest.DiscardUnknown(m) } -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +var xxx_messageInfo_QueryRoleManagerRequest proto.InternalMessageInfo -// QueryClient is the client API for Query service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type QueryClient interface { - // Params defines a gRPC query method that returns the permissions module's - // parameters. - Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) - // AllNamespaces defines a gRPC query method that returns the permissions - // module's created namespaces. - AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) - // NamespaceByDenom defines a gRPC query method that returns the permissions - // module's namespace associated with the provided denom. - NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) - // AddressRoles defines a gRPC query method that returns address roles in the - // namespace - AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) - // AddressesByRole defines a gRPC query method that returns a namespace's - // roles associated with the provided address. - AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) - // VouchersForAddress defines a gRPC query method that returns a map of - // vouchers that are held by permissions module for this address, keyed by the - // originator address - VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) +func (m *QueryRoleManagerRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" } -type queryClient struct { - cc grpc1.ClientConn +func (m *QueryRoleManagerRequest) GetManager() string { + if m != nil { + return m.Manager + } + return "" } -func NewQueryClient(cc grpc1.ClientConn) QueryClient { - return &queryClient{cc} +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +type QueryRoleManagerResponse struct { + RoleManager *RoleManager `protobuf:"bytes,1,opt,name=role_manager,json=roleManager,proto3" json:"role_manager,omitempty"` } -func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { - out := new(QueryParamsResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Params", in, out, opts...) - if err != nil { - return nil, err +func (m *QueryRoleManagerResponse) Reset() { *m = QueryRoleManagerResponse{} } +func (m *QueryRoleManagerResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagerResponse) ProtoMessage() {} +func (*QueryRoleManagerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{15} +} +func (m *QueryRoleManagerResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRoleManagerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRoleManagerResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryRoleManagerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagerResponse.Merge(m, src) +} +func (m *QueryRoleManagerResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryRoleManagerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagerResponse.DiscardUnknown(m) } -func (c *queryClient) AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) { - out := new(QueryAllNamespacesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AllNamespaces", in, out, opts...) - if err != nil { - return nil, err +var xxx_messageInfo_QueryRoleManagerResponse proto.InternalMessageInfo + +func (m *QueryRoleManagerResponse) GetRoleManager() *RoleManager { + if m != nil { + return m.RoleManager } - return out, nil + return nil } -func (c *queryClient) NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) { - out := new(QueryNamespaceByDenomResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/NamespaceByDenom", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil +// QueryPolicyStatusesRequest is the request type for the Query/PolicyStatuses +// RPC method. +type QueryPolicyStatusesRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (c *queryClient) AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) { - out := new(QueryAddressRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressRoles", in, out, opts...) - if err != nil { - return nil, err +func (m *QueryPolicyStatusesRequest) Reset() { *m = QueryPolicyStatusesRequest{} } +func (m *QueryPolicyStatusesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyStatusesRequest) ProtoMessage() {} +func (*QueryPolicyStatusesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{16} +} +func (m *QueryPolicyStatusesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyStatusesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyStatusesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryPolicyStatusesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyStatusesRequest.Merge(m, src) +} +func (m *QueryPolicyStatusesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyStatusesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyStatusesRequest.DiscardUnknown(m) } -func (c *queryClient) AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) { - out := new(QueryAddressesByRoleResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressesByRole", in, out, opts...) - if err != nil { - return nil, err +var xxx_messageInfo_QueryPolicyStatusesRequest proto.InternalMessageInfo + +func (m *QueryPolicyStatusesRequest) GetDenom() string { + if m != nil { + return m.Denom } - return out, nil + return "" } -func (c *queryClient) VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) { - out := new(QueryVouchersForAddressResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/VouchersForAddress", in, out, opts...) - if err != nil { - return nil, err +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +type QueryPolicyStatusesResponse struct { + PolicyStatuses []*PolicyStatus `protobuf:"bytes,1,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` +} + +func (m *QueryPolicyStatusesResponse) Reset() { *m = QueryPolicyStatusesResponse{} } +func (m *QueryPolicyStatusesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyStatusesResponse) ProtoMessage() {} +func (*QueryPolicyStatusesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{17} +} +func (m *QueryPolicyStatusesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyStatusesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyStatusesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryPolicyStatusesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyStatusesResponse.Merge(m, src) +} +func (m *QueryPolicyStatusesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyStatusesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyStatusesResponse.DiscardUnknown(m) } -// QueryServer is the server API for Query service. -type QueryServer interface { - // Params defines a gRPC query method that returns the permissions module's - // parameters. - Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) - // AllNamespaces defines a gRPC query method that returns the permissions - // module's created namespaces. - AllNamespaces(context.Context, *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) - // NamespaceByDenom defines a gRPC query method that returns the permissions - // module's namespace associated with the provided denom. - NamespaceByDenom(context.Context, *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) - // AddressRoles defines a gRPC query method that returns address roles in the - // namespace - AddressRoles(context.Context, *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) - // AddressesByRole defines a gRPC query method that returns a namespace's - // roles associated with the provided address. - AddressesByRole(context.Context, *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) - // VouchersForAddress defines a gRPC query method that returns a map of - // vouchers that are held by permissions module for this address, keyed by the - // originator address - VouchersForAddress(context.Context, *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) +var xxx_messageInfo_QueryPolicyStatusesResponse proto.InternalMessageInfo + +func (m *QueryPolicyStatusesResponse) GetPolicyStatuses() []*PolicyStatus { + if m != nil { + return m.PolicyStatuses + } + return nil } -// UnimplementedQueryServer can be embedded to have forward compatible implementations. -type UnimplementedQueryServer struct { +// QueryPolicyManagerCapabilitiesRequest is the request type for the Query/PolicyManagerCapabilities +// RPC method. +type QueryPolicyManagerCapabilitiesRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) Reset() { *m = QueryPolicyManagerCapabilitiesRequest{} } +func (m *QueryPolicyManagerCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyManagerCapabilitiesRequest) ProtoMessage() {} +func (*QueryPolicyManagerCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{18} } -func (*UnimplementedQueryServer) AllNamespaces(ctx context.Context, req *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AllNamespaces not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) } -func (*UnimplementedQueryServer) NamespaceByDenom(ctx context.Context, req *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NamespaceByDenom not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } } -func (*UnimplementedQueryServer) AddressRoles(ctx context.Context, req *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddressRoles not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.Merge(m, src) } -func (*UnimplementedQueryServer) AddressesByRole(ctx context.Context, req *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddressesByRole not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Size() int { + return m.Size() } -func (*UnimplementedQueryServer) VouchersForAddress(ctx context.Context, req *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VouchersForAddress not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.DiscardUnknown(m) } -func RegisterQueryServer(s grpc1.Server, srv QueryServer) { - s.RegisterService(&_Query_serviceDesc, srv) -} +var xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest proto.InternalMessageInfo -func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryParamsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).Params(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/Params", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) +func (m *QueryPolicyManagerCapabilitiesRequest) GetDenom() string { + if m != nil { + return m.Denom } - return interceptor(ctx, in, info, handler) + return "" } -func _Query_AllNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAllNamespacesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AllNamespaces(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AllNamespaces", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AllNamespaces(ctx, req.(*QueryAllNamespacesRequest)) - } - return interceptor(ctx, in, info, handler) +// QueryPolicyManagerCapabilitiesResponse is the response type for the +// Query/PolicyManagerCapabilities RPC method. +type QueryPolicyManagerCapabilitiesResponse struct { + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,1,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } -func _Query_NamespaceByDenom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryNamespaceByDenomRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).NamespaceByDenom(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/NamespaceByDenom", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).NamespaceByDenom(ctx, req.(*QueryNamespaceByDenomRequest)) - } - return interceptor(ctx, in, info, handler) +func (m *QueryPolicyManagerCapabilitiesResponse) Reset() { + *m = QueryPolicyManagerCapabilitiesResponse{} } - -func _Query_AddressRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAddressRolesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AddressRoles(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AddressRoles", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AddressRoles(ctx, req.(*QueryAddressRolesRequest)) - } - return interceptor(ctx, in, info, handler) +func (m *QueryPolicyManagerCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyManagerCapabilitiesResponse) ProtoMessage() {} +func (*QueryPolicyManagerCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{19} } - -func _Query_AddressesByRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAddressesByRoleRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AddressesByRole(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AddressesByRole", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AddressesByRole(ctx, req.(*QueryAddressesByRoleRequest)) +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return interceptor(ctx, in, info, handler) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.Merge(m, src) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.DiscardUnknown(m) } -func _Query_VouchersForAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryVouchersForAddressRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).VouchersForAddress(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/VouchersForAddress", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).VouchersForAddress(ctx, req.(*QueryVouchersForAddressRequest)) +var xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse proto.InternalMessageInfo + +func (m *QueryPolicyManagerCapabilitiesResponse) GetPolicyManagerCapabilities() []*PolicyManagerCapability { + if m != nil { + return m.PolicyManagerCapabilities } - return interceptor(ctx, in, info, handler) + return nil } -var _Query_serviceDesc = grpc.ServiceDesc{ - ServiceName: "injective.permissions.v1beta1.Query", - HandlerType: (*QueryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, - { - MethodName: "AllNamespaces", - Handler: _Query_AllNamespaces_Handler, - }, - { - MethodName: "NamespaceByDenom", - Handler: _Query_NamespaceByDenom_Handler, - }, - { - MethodName: "AddressRoles", - Handler: _Query_AddressRoles_Handler, - }, - { - MethodName: "AddressesByRole", - Handler: _Query_AddressesByRole_Handler, - }, - { - MethodName: "VouchersForAddress", - Handler: _Query_VouchersForAddress_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "injective/permissions/v1beta1/query.proto", +type QueryVouchersRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVouchersRequest) Reset() { *m = QueryVouchersRequest{} } +func (m *QueryVouchersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersRequest) ProtoMessage() {} +func (*QueryVouchersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{20} +} +func (m *QueryVouchersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil } - -func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryVouchersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersRequest.Merge(m, src) } - -func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil +func (m *QueryVouchersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersRequest.DiscardUnknown(m) } -func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVouchersRequest proto.InternalMessageInfo + +func (m *QueryVouchersRequest) GetDenom() string { + if m != nil { + return m.Denom } - return dAtA[:n], nil + return "" } -func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVouchersResponse struct { + Vouchers []*AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } -func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) +func (m *QueryVouchersResponse) Reset() { *m = QueryVouchersResponse{} } +func (m *QueryVouchersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersResponse) ProtoMessage() {} +func (*QueryVouchersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{21} +} +func (m *QueryVouchersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) if err != nil { - return 0, err + return nil, err } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + return b[:n], nil } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil +} +func (m *QueryVouchersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersResponse.Merge(m, src) +} +func (m *QueryVouchersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersResponse.DiscardUnknown(m) } -func (m *QueryAllNamespacesRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVouchersResponse proto.InternalMessageInfo + +func (m *QueryVouchersResponse) GetVouchers() []*AddressVoucher { + if m != nil { + return m.Vouchers } - return dAtA[:n], nil + return nil } -func (m *QueryAllNamespacesRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVoucherRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } -func (m *QueryAllNamespacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil +func (m *QueryVoucherRequest) Reset() { *m = QueryVoucherRequest{} } +func (m *QueryVoucherRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherRequest) ProtoMessage() {} +func (*QueryVoucherRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{22} } - -func (m *QueryAllNamespacesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVoucherRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil } - -func (m *QueryAllNamespacesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryVoucherRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherRequest.Merge(m, src) +} +func (m *QueryVoucherRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherRequest.DiscardUnknown(m) } -func (m *QueryAllNamespacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Namespaces) > 0 { - for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } +var xxx_messageInfo_QueryVoucherRequest proto.InternalMessageInfo + +func (m *QueryVoucherRequest) GetDenom() string { + if m != nil { + return m.Denom } - return len(dAtA) - i, nil + return "" } -func (m *QueryNamespaceByDenomRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVoucherRequest) GetAddress() string { + if m != nil { + return m.Address } - return dAtA[:n], nil + return "" } -func (m *QueryNamespaceByDenomRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVoucherResponse struct { + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } -func (m *QueryNamespaceByDenomRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.IncludeRoles { - i-- - if m.IncludeRoles { - dAtA[i] = 1 - } else { - dAtA[i] = 0 +func (m *QueryVoucherResponse) Reset() { *m = QueryVoucherResponse{} } +func (m *QueryVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherResponse) ProtoMessage() {} +func (*QueryVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{23} +} +func (m *QueryVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0x10 + return b[:n], nil } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil +} +func (m *QueryVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherResponse.Merge(m, src) +} +func (m *QueryVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherResponse.DiscardUnknown(m) } -func (m *QueryNamespaceByDenomResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVoucherResponse proto.InternalMessageInfo + +// QueryModuleStateRequest is the request type for the Query/PermissionsModuleState +// RPC method. +type QueryModuleStateRequest struct { +} + +func (m *QueryModuleStateRequest) Reset() { *m = QueryModuleStateRequest{} } +func (m *QueryModuleStateRequest) String() string { return proto.CompactTextString(m) } +func (*QueryModuleStateRequest) ProtoMessage() {} +func (*QueryModuleStateRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{24} +} +func (m *QueryModuleStateRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryModuleStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryModuleStateRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil +} +func (m *QueryModuleStateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryModuleStateRequest.Merge(m, src) +} +func (m *QueryModuleStateRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryModuleStateRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryModuleStateRequest.DiscardUnknown(m) } -func (m *QueryNamespaceByDenomResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +var xxx_messageInfo_QueryModuleStateRequest proto.InternalMessageInfo + +// QueryModuleStateResponse is the response type for the Query/PermissionsModuleState +// RPC method. +type QueryModuleStateResponse struct { + State *GenesisState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` } -func (m *QueryNamespaceByDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Namespace != nil { - { - size, err := m.Namespace.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) +func (m *QueryModuleStateResponse) Reset() { *m = QueryModuleStateResponse{} } +func (m *QueryModuleStateResponse) String() string { return proto.CompactTextString(m) } +func (*QueryModuleStateResponse) ProtoMessage() {} +func (*QueryModuleStateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{25} +} +func (m *QueryModuleStateResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryModuleStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryModuleStateResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0xa + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *QueryModuleStateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryModuleStateResponse.Merge(m, src) +} +func (m *QueryModuleStateResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryModuleStateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryModuleStateResponse.DiscardUnknown(m) } -func (m *QueryAddressesByRoleRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryModuleStateResponse proto.InternalMessageInfo + +func (m *QueryModuleStateResponse) GetState() *GenesisState { + if m != nil { + return m.State } - return dAtA[:n], nil + return nil } -func (m *QueryAddressesByRoleRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func init() { + proto.RegisterType((*QueryParamsRequest)(nil), "injective.permissions.v1beta1.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "injective.permissions.v1beta1.QueryParamsResponse") + proto.RegisterType((*QueryNamespaceDenomsRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceDenomsRequest") + proto.RegisterType((*QueryNamespaceDenomsResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceDenomsResponse") + proto.RegisterType((*QueryNamespacesRequest)(nil), "injective.permissions.v1beta1.QueryNamespacesRequest") + proto.RegisterType((*QueryNamespacesResponse)(nil), "injective.permissions.v1beta1.QueryNamespacesResponse") + proto.RegisterType((*QueryNamespaceRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceRequest") + proto.RegisterType((*QueryNamespaceResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceResponse") + proto.RegisterType((*QueryActorsByRoleRequest)(nil), "injective.permissions.v1beta1.QueryActorsByRoleRequest") + proto.RegisterType((*QueryActorsByRoleResponse)(nil), "injective.permissions.v1beta1.QueryActorsByRoleResponse") + proto.RegisterType((*QueryRolesByActorRequest)(nil), "injective.permissions.v1beta1.QueryRolesByActorRequest") + proto.RegisterType((*QueryRolesByActorResponse)(nil), "injective.permissions.v1beta1.QueryRolesByActorResponse") + proto.RegisterType((*QueryRoleManagersRequest)(nil), "injective.permissions.v1beta1.QueryRoleManagersRequest") + proto.RegisterType((*QueryRoleManagersResponse)(nil), "injective.permissions.v1beta1.QueryRoleManagersResponse") + proto.RegisterType((*QueryRoleManagerRequest)(nil), "injective.permissions.v1beta1.QueryRoleManagerRequest") + proto.RegisterType((*QueryRoleManagerResponse)(nil), "injective.permissions.v1beta1.QueryRoleManagerResponse") + proto.RegisterType((*QueryPolicyStatusesRequest)(nil), "injective.permissions.v1beta1.QueryPolicyStatusesRequest") + proto.RegisterType((*QueryPolicyStatusesResponse)(nil), "injective.permissions.v1beta1.QueryPolicyStatusesResponse") + proto.RegisterType((*QueryPolicyManagerCapabilitiesRequest)(nil), "injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesRequest") + proto.RegisterType((*QueryPolicyManagerCapabilitiesResponse)(nil), "injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesResponse") + proto.RegisterType((*QueryVouchersRequest)(nil), "injective.permissions.v1beta1.QueryVouchersRequest") + proto.RegisterType((*QueryVouchersResponse)(nil), "injective.permissions.v1beta1.QueryVouchersResponse") + proto.RegisterType((*QueryVoucherRequest)(nil), "injective.permissions.v1beta1.QueryVoucherRequest") + proto.RegisterType((*QueryVoucherResponse)(nil), "injective.permissions.v1beta1.QueryVoucherResponse") + proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.permissions.v1beta1.QueryModuleStateRequest") + proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.permissions.v1beta1.QueryModuleStateResponse") } -func (m *QueryAddressesByRoleRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Role) > 0 { - i -= len(m.Role) - copy(dAtA[i:], m.Role) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Role))) - i-- - dAtA[i] = 0x12 - } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil +func init() { + proto.RegisterFile("injective/permissions/v1beta1/query.proto", fileDescriptor_e0ae50f1018498b3) } -func (m *QueryAddressesByRoleResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil +var fileDescriptor_e0ae50f1018498b3 = []byte{ + // 1263 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0x4f, 0x6f, 0x1b, 0xc5, + 0x1b, 0xc7, 0xb3, 0xfd, 0x35, 0x49, 0xf3, 0x24, 0xbf, 0x56, 0x4c, 0x4d, 0x70, 0xdc, 0xd6, 0xa9, + 0x46, 0x0a, 0x4d, 0x9b, 0xda, 0x5b, 0x3b, 0xa9, 0x13, 0x42, 0x5b, 0x88, 0xe3, 0x14, 0x82, 0x08, + 0xb4, 0x0b, 0xe2, 0x50, 0x09, 0x99, 0xf5, 0x7a, 0xe4, 0x2c, 0xb5, 0x77, 0xb6, 0x9e, 0x75, 0x24, + 0xab, 0xca, 0x85, 0x57, 0x00, 0xe2, 0x8e, 0x78, 0x05, 0x3d, 0x20, 0xce, 0x70, 0x40, 0x88, 0x1c, + 0x2b, 0x71, 0x41, 0x48, 0x44, 0x28, 0xe1, 0xc4, 0x99, 0x17, 0x80, 0x76, 0xf6, 0xd9, 0xf5, 0xda, + 0x71, 0xbc, 0xbb, 0xe1, 0x14, 0xcf, 0x9f, 0xe7, 0xfb, 0x7c, 0x9e, 0x99, 0xd9, 0x99, 0xaf, 0x02, + 0x37, 0x4d, 0xeb, 0x73, 0x66, 0x38, 0xe6, 0x1e, 0x53, 0x6d, 0xd6, 0x6e, 0x99, 0x42, 0x98, 0xdc, + 0x12, 0xea, 0x5e, 0xa1, 0xc6, 0x1c, 0xbd, 0xa0, 0x3e, 0xeb, 0xb0, 0x76, 0x37, 0x6f, 0xb7, 0xb9, + 0xc3, 0xc9, 0xb5, 0x60, 0x6a, 0x3e, 0x34, 0x35, 0x8f, 0x53, 0x33, 0xa9, 0x06, 0x6f, 0x70, 0x39, + 0x53, 0x75, 0x7f, 0x79, 0x41, 0x99, 0xab, 0x0d, 0xce, 0x1b, 0x4d, 0xa6, 0xea, 0xb6, 0xa9, 0xea, + 0x96, 0xc5, 0x1d, 0xdd, 0x91, 0x51, 0xde, 0x68, 0xd6, 0xe0, 0xa2, 0xc5, 0x85, 0x5a, 0xd3, 0x05, + 0x0b, 0x72, 0x1a, 0xdc, 0xb4, 0x70, 0xfc, 0x56, 0x78, 0x5c, 0xb2, 0x04, 0xb3, 0x6c, 0xbd, 0x61, + 0x5a, 0x52, 0xcc, 0x9f, 0x3b, 0xba, 0x12, 0x5b, 0x6f, 0xeb, 0x2d, 0x3f, 0xef, 0xd2, 0xe8, 0xb9, + 0x0d, 0x66, 0x31, 0x61, 0xfa, 0x93, 0xd5, 0x08, 0xe1, 0xd0, 0x5a, 0xc8, 0x00, 0x9a, 0x02, 0xf2, + 0xd8, 0x65, 0x7d, 0x24, 0x53, 0x6a, 0xec, 0x59, 0x87, 0x09, 0x87, 0x3e, 0x81, 0xcb, 0x7d, 0xbd, + 0xc2, 0xe6, 0x96, 0x60, 0x64, 0x13, 0x26, 0x3c, 0xb4, 0xb4, 0x72, 0x5d, 0x59, 0x9c, 0x2e, 0x2e, + 0xe4, 0x47, 0x2e, 0x73, 0xde, 0x0b, 0x2f, 0x9f, 0x3f, 0x38, 0x9c, 0x1f, 0xd3, 0x30, 0x94, 0x5e, + 0x83, 0x2b, 0x52, 0xfb, 0x03, 0xbd, 0xc5, 0x84, 0xad, 0x1b, 0xac, 0xc2, 0x2c, 0xde, 0x4b, 0x5d, + 0x82, 0xab, 0xc3, 0x87, 0x91, 0x61, 0x16, 0x26, 0xea, 0xb2, 0x27, 0xad, 0x5c, 0xff, 0xdf, 0xe2, + 0x94, 0x86, 0x2d, 0x9a, 0x86, 0xd9, 0xfe, 0xb8, 0x40, 0xd1, 0x80, 0xd7, 0x4e, 0x8c, 0xa0, 0xd8, + 0xbb, 0x00, 0x56, 0xd0, 0x2b, 0x05, 0xa7, 0x8b, 0x8b, 0x11, 0x45, 0x05, 0x32, 0x5a, 0x28, 0x96, + 0xe6, 0xe0, 0xd5, 0xfe, 0x24, 0x98, 0x9d, 0xa4, 0x60, 0x5c, 0x12, 0xca, 0x25, 0x9b, 0xd2, 0xbc, + 0x06, 0xfd, 0x6c, 0x90, 0x36, 0x40, 0x7a, 0x08, 0x53, 0x81, 0x2c, 0x2e, 0x73, 0x7c, 0xa2, 0x5e, + 0x28, 0xad, 0x40, 0x5a, 0x66, 0xd8, 0x30, 0x1c, 0xde, 0x16, 0xe5, 0xae, 0xc6, 0x9b, 0xa3, 0x99, + 0x08, 0x81, 0xf3, 0x6d, 0xde, 0x64, 0xe9, 0x73, 0xb2, 0x53, 0xfe, 0xa6, 0xcb, 0x30, 0x37, 0x44, + 0xa5, 0xb7, 0x15, 0xba, 0xec, 0xf7, 0xb7, 0xc2, 0x6b, 0xd1, 0x87, 0x98, 0xda, 0x9d, 0x2c, 0xca, + 0x5e, 0xec, 0xe8, 0xd4, 0x29, 0x18, 0x97, 0xb1, 0x98, 0xdb, 0x6b, 0xd0, 0x02, 0x26, 0xef, 0xd7, + 0xc1, 0xe4, 0x29, 0x18, 0x77, 0x09, 0xfd, 0xdc, 0x5e, 0x83, 0xde, 0x09, 0xa5, 0xde, 0xd1, 0x2d, + 0xbd, 0xc1, 0xda, 0x62, 0xf4, 0x4e, 0x34, 0x43, 0x49, 0x7a, 0x11, 0x98, 0xe4, 0x43, 0xf8, 0xbf, + 0xab, 0x5b, 0x6d, 0xe1, 0x00, 0x1e, 0x91, 0x5b, 0x11, 0x1b, 0x12, 0xd2, 0xd2, 0x66, 0xda, 0x21, + 0x61, 0xba, 0x8d, 0x67, 0x31, 0x3c, 0x63, 0xe4, 0xca, 0xa4, 0x61, 0x12, 0x93, 0xe3, 0xda, 0xf8, + 0x4d, 0x6a, 0x9e, 0x2c, 0x35, 0xe0, 0xde, 0x81, 0x99, 0x30, 0x37, 0x9e, 0xa3, 0x24, 0xd8, 0xd3, + 0x21, 0x6c, 0x5a, 0x84, 0x8c, 0x77, 0x1d, 0xf0, 0xa6, 0x69, 0x74, 0x3f, 0x72, 0x74, 0xa7, 0x23, + 0x58, 0xc4, 0xba, 0x0a, 0xfc, 0xcc, 0x07, 0x63, 0x90, 0xf0, 0x63, 0xb8, 0x64, 0xcb, 0x91, 0xaa, + 0xc0, 0x21, 0x5c, 0xdb, 0xa5, 0xa8, 0x3b, 0x25, 0xa4, 0xa7, 0x5d, 0xb4, 0xfb, 0xd4, 0xe9, 0x7d, + 0x58, 0x08, 0x25, 0x45, 0xfc, 0x4d, 0xdd, 0xd6, 0x6b, 0x66, 0xd3, 0x74, 0xcc, 0x28, 0xe6, 0x6f, + 0x15, 0x78, 0x3d, 0x2a, 0x1e, 0xf9, 0xf7, 0xe0, 0x0a, 0xf2, 0xe3, 0x1a, 0x57, 0x8d, 0xd0, 0x34, + 0xac, 0xa5, 0x14, 0xab, 0x96, 0xc1, 0x34, 0x5d, 0x6d, 0xce, 0x3e, 0x2d, 0x3f, 0xbd, 0x0d, 0x29, + 0x49, 0xf8, 0x09, 0xef, 0x18, 0xbb, 0x91, 0x87, 0xbb, 0x86, 0xb7, 0x52, 0x6f, 0x36, 0xe2, 0x6f, + 0xc3, 0x85, 0x3d, 0xec, 0x43, 0xd6, 0x5c, 0x04, 0xeb, 0x46, 0xbd, 0xde, 0x66, 0x42, 0xa0, 0x92, + 0x16, 0x84, 0xd3, 0x2d, 0x7c, 0x2b, 0xfc, 0x91, 0xa8, 0xe3, 0xac, 0x7b, 0x42, 0xfe, 0x71, 0xc6, + 0x26, 0xfd, 0x4a, 0xe9, 0xaf, 0x2c, 0x40, 0xed, 0xc2, 0x24, 0xe6, 0xc2, 0x63, 0x3c, 0x97, 0xf7, + 0x5e, 0xda, 0xbc, 0xfb, 0xd2, 0x06, 0x7c, 0x9b, 0xdc, 0xb4, 0xca, 0x15, 0xf7, 0xa5, 0xf9, 0xfd, + 0x70, 0xfe, 0x46, 0xc3, 0x74, 0x76, 0x3b, 0xb5, 0xbc, 0xc1, 0x5b, 0x2a, 0x3e, 0xcb, 0xde, 0x9f, + 0x9c, 0xa8, 0x3f, 0x55, 0x9d, 0xae, 0xcd, 0x84, 0x0c, 0xf8, 0xfb, 0x70, 0xfe, 0x15, 0x14, 0xbf, + 0xcd, 0x5b, 0xa6, 0xc3, 0x5a, 0xb6, 0xd3, 0xd5, 0xfc, 0x7c, 0x74, 0x0e, 0xbf, 0xd6, 0x1d, 0x5e, + 0xef, 0x34, 0x99, 0x7b, 0xca, 0xfc, 0x2b, 0x94, 0x7e, 0x8a, 0x5f, 0x5f, 0xdf, 0x10, 0x12, 0x6f, + 0xc0, 0xb8, 0x7b, 0xa8, 0xfd, 0xeb, 0x3b, 0xea, 0x44, 0xbf, 0xe3, 0xbd, 0xe0, 0x9e, 0x86, 0x17, + 0x59, 0xfc, 0xe3, 0x32, 0x8c, 0x4b, 0x7d, 0xf2, 0x8d, 0x02, 0x13, 0xde, 0x3b, 0x4a, 0x0a, 0x11, + 0x42, 0x27, 0x1f, 0xf2, 0x4c, 0x31, 0x49, 0x88, 0x87, 0x4f, 0x73, 0x5f, 0xfc, 0xfa, 0xd7, 0xd7, + 0xe7, 0x6e, 0x90, 0x05, 0x35, 0x8e, 0x4b, 0x21, 0x3f, 0x29, 0x70, 0x69, 0xe0, 0xb1, 0x26, 0xeb, + 0x71, 0xd2, 0x0e, 0x37, 0x00, 0x99, 0x37, 0xcf, 0x14, 0x8b, 0xec, 0xab, 0x92, 0xbd, 0x40, 0xd4, + 0x08, 0xf6, 0xe0, 0x9d, 0xac, 0x7a, 0xf6, 0x81, 0xbc, 0x50, 0x00, 0x7a, 0x06, 0x81, 0xdc, 0x4d, + 0x04, 0x11, 0xb0, 0x97, 0x92, 0x86, 0x21, 0x76, 0x41, 0x62, 0x2f, 0x91, 0x9b, 0x71, 0xb1, 0x05, + 0xf9, 0x4e, 0x81, 0xa9, 0x40, 0x89, 0xac, 0x24, 0x4a, 0xec, 0xe3, 0xde, 0x4d, 0x18, 0x85, 0xb4, + 0x6b, 0x92, 0xb6, 0x48, 0xee, 0xc4, 0xa5, 0x55, 0x9f, 0xcb, 0x55, 0xde, 0x27, 0x07, 0x0a, 0xcc, + 0x84, 0x5f, 0x73, 0xb2, 0x1a, 0x87, 0x60, 0x88, 0x8f, 0xc8, 0xac, 0x25, 0x0f, 0x44, 0xfa, 0x2d, + 0x49, 0xff, 0x16, 0xb9, 0x1f, 0x41, 0x2f, 0x0d, 0x45, 0xb5, 0xd6, 0xad, 0x4a, 0x33, 0xe2, 0x97, + 0xa0, 0x3e, 0x97, 0xcd, 0x7d, 0xf2, 0x8b, 0x02, 0x33, 0x61, 0x57, 0x14, 0xaf, 0x94, 0x21, 0x6e, + 0x2c, 0x5e, 0x29, 0xc3, 0x0c, 0x18, 0xad, 0xc8, 0x52, 0x1e, 0x90, 0x7b, 0x11, 0xa5, 0x78, 0xbe, + 0xcc, 0xad, 0xc5, 0x2d, 0xaa, 0x57, 0x8a, 0xdb, 0xda, 0x27, 0x3f, 0xe2, 0xa6, 0xf8, 0x26, 0x25, + 0xfe, 0xa6, 0x0c, 0x38, 0xac, 0xf8, 0x9b, 0x32, 0x68, 0xb4, 0xe8, 0x3d, 0x59, 0x49, 0x89, 0xac, + 0xc4, 0xd8, 0x94, 0xc0, 0x8d, 0x05, 0xc7, 0xea, 0x67, 0x05, 0xa6, 0x43, 0xb2, 0xa4, 0x94, 0x90, + 0xc3, 0xe7, 0x5f, 0x4d, 0x1c, 0x77, 0x86, 0x33, 0xe5, 0xe3, 0xf7, 0xb6, 0x01, 0x3b, 0xe4, 0x99, + 0xba, 0xd8, 0xef, 0x97, 0xc8, 0x1b, 0xb1, 0x2e, 0xf0, 0x61, 0xbe, 0x2c, 0xb3, 0x7e, 0x96, 0x50, + 0x2c, 0xe8, 0x81, 0x2c, 0x68, 0x8d, 0x94, 0xa2, 0xde, 0x80, 0x7e, 0x0f, 0x17, 0xec, 0xc8, 0x3f, + 0x0a, 0xcc, 0x9d, 0x6a, 0xa2, 0x48, 0x25, 0x3e, 0xd9, 0xe9, 0x1e, 0x2e, 0xb3, 0xf5, 0x1f, 0x55, + 0xb0, 0xd4, 0xf7, 0x64, 0xa9, 0x15, 0x52, 0x8e, 0x57, 0xea, 0x30, 0xbb, 0x17, 0x94, 0xfd, 0x42, + 0x81, 0x0b, 0xbe, 0xd7, 0x22, 0xcb, 0x71, 0xf8, 0x06, 0x7c, 0x5c, 0x66, 0x25, 0x59, 0x50, 0xc2, + 0x67, 0xcf, 0x37, 0x6d, 0x01, 0xf0, 0xf7, 0x0a, 0x4c, 0xa2, 0x1a, 0x29, 0x26, 0x48, 0xed, 0xe3, + 0x2e, 0x27, 0x8a, 0x41, 0xda, 0xb7, 0x25, 0xed, 0x3a, 0x59, 0x8b, 0x47, 0x1b, 0xba, 0x7a, 0x3d, + 0xaf, 0xb8, 0x4f, 0x7e, 0x50, 0x60, 0xf6, 0x51, 0x2f, 0x22, 0x64, 0xc2, 0xe2, 0x7d, 0xfb, 0x27, + 0x0d, 0x5d, 0xbc, 0x6f, 0x7f, 0x88, 0xdb, 0xa3, 0xcb, 0xb2, 0x9a, 0x1c, 0x59, 0x8a, 0xa8, 0xa6, + 0x25, 0x63, 0xe5, 0xa7, 0xc2, 0xca, 0x4f, 0x0f, 0x8e, 0xb2, 0xca, 0xcb, 0xa3, 0xac, 0xf2, 0xe7, + 0x51, 0x56, 0xf9, 0xf2, 0x38, 0x3b, 0xf6, 0xf2, 0x38, 0x3b, 0xf6, 0xdb, 0x71, 0x76, 0xec, 0xc9, + 0xe3, 0x90, 0x75, 0xdd, 0xf6, 0x05, 0xdf, 0xd7, 0x6b, 0xa2, 0x27, 0x9f, 0x33, 0x78, 0x9b, 0x85, + 0x9b, 0xbb, 0xba, 0x69, 0xa1, 0xbe, 0xe8, 0xcb, 0x2d, 0x9d, 0x6e, 0x6d, 0x42, 0xfe, 0xab, 0x67, + 0xf9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x36, 0x6c, 0x4e, 0x0d, 0x40, 0x13, 0x00, 0x00, } -func (m *QueryAddressesByRoleResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QueryClient interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + NamespaceDenoms(ctx context.Context, in *QueryNamespaceDenomsRequest, opts ...grpc.CallOption) (*QueryNamespaceDenomsResponse, error) + // Namespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + Namespaces(ctx context.Context, in *QueryNamespacesRequest, opts ...grpc.CallOption) (*QueryNamespacesResponse, error) + // Namespace defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + Namespace(ctx context.Context, in *QueryNamespaceRequest, opts ...grpc.CallOption) (*QueryNamespaceResponse, error) + // RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + RolesByActor(ctx context.Context, in *QueryRolesByActorRequest, opts ...grpc.CallOption) (*QueryRolesByActorResponse, error) + // ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + ActorsByRole(ctx context.Context, in *QueryActorsByRoleRequest, opts ...grpc.CallOption) (*QueryActorsByRoleResponse, error) + // RoleManagers defines a gRPC query method that returns a namespace's role managers + RoleManagers(ctx context.Context, in *QueryRoleManagersRequest, opts ...grpc.CallOption) (*QueryRoleManagersResponse, error) + // RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + RoleManager(ctx context.Context, in *QueryRoleManagerRequest, opts ...grpc.CallOption) (*QueryRoleManagerResponse, error) + // PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + PolicyStatuses(ctx context.Context, in *QueryPolicyStatusesRequest, opts ...grpc.CallOption) (*QueryPolicyStatusesResponse, error) + // PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + PolicyManagerCapabilities(ctx context.Context, in *QueryPolicyManagerCapabilitiesRequest, opts ...grpc.CallOption) (*QueryPolicyManagerCapabilitiesResponse, error) + // Vouchers defines a gRPC query method for the vouchers for a given denom + Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) + // Voucher defines a gRPC query method for the vouchers for a given denom and address + Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) + // Retrieves the entire permissions module's state + PermissionsModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) } -func (m *QueryAddressesByRoleResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Addresses) > 0 { - for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Addresses[iNdEx]) - copy(dAtA[i:], m.Addresses[iNdEx]) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Addresses[iNdEx]))) - i-- - dAtA[i] = 0xa - } +type queryClient struct { + cc grpc1.ClientConn +} + +func NewQueryClient(cc grpc1.ClientConn) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Params", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryAddressRolesRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) NamespaceDenoms(ctx context.Context, in *QueryNamespaceDenomsRequest, opts ...grpc.CallOption) (*QueryNamespaceDenomsResponse, error) { + out := new(QueryNamespaceDenomsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/NamespaceDenoms", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryAddressRolesRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) Namespaces(ctx context.Context, in *QueryNamespacesRequest, opts ...grpc.CallOption) (*QueryNamespacesResponse, error) { + out := new(QueryNamespacesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Namespaces", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryAddressRolesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0x12 +func (c *queryClient) Namespace(ctx context.Context, in *QueryNamespaceRequest, opts ...grpc.CallOption) (*QueryNamespaceResponse, error) { + out := new(QueryNamespaceResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Namespace", in, out, opts...) + if err != nil { + return nil, err } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa + return out, nil +} + +func (c *queryClient) RolesByActor(ctx context.Context, in *QueryRolesByActorRequest, opts ...grpc.CallOption) (*QueryRolesByActorResponse, error) { + out := new(QueryRolesByActorResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RolesByActor", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryAddressRolesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) ActorsByRole(ctx context.Context, in *QueryActorsByRoleRequest, opts ...grpc.CallOption) (*QueryActorsByRoleResponse, error) { + out := new(QueryActorsByRoleResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/ActorsByRole", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryAddressRolesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) RoleManagers(ctx context.Context, in *QueryRoleManagersRequest, opts ...grpc.CallOption) (*QueryRoleManagersResponse, error) { + out := new(QueryRoleManagersResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RoleManagers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryAddressRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Roles) > 0 { - for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Roles[iNdEx]) - copy(dAtA[i:], m.Roles[iNdEx]) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Roles[iNdEx]))) - i-- - dAtA[i] = 0xa - } +func (c *queryClient) RoleManager(ctx context.Context, in *QueryRoleManagerRequest, opts ...grpc.CallOption) (*QueryRoleManagerResponse, error) { + out := new(QueryRoleManagerResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RoleManager", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryVouchersForAddressRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PolicyStatuses(ctx context.Context, in *QueryPolicyStatusesRequest, opts ...grpc.CallOption) (*QueryPolicyStatusesResponse, error) { + out := new(QueryPolicyStatusesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PolicyStatuses", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryVouchersForAddressRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PolicyManagerCapabilities(ctx context.Context, in *QueryPolicyManagerCapabilitiesRequest, opts ...grpc.CallOption) (*QueryPolicyManagerCapabilitiesResponse, error) { + out := new(QueryPolicyManagerCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PolicyManagerCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryVouchersForAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0xa +func (c *queryClient) Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) { + out := new(QueryVouchersResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Vouchers", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryVouchersForAddressResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) { + out := new(QueryVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Voucher", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryVouchersForAddressResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PermissionsModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) { + out := new(QueryModuleStateResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PermissionsModuleState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryVouchersForAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Vouchers) > 0 { - for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } +// QueryServer is the server API for Query service. +type QueryServer interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + NamespaceDenoms(context.Context, *QueryNamespaceDenomsRequest) (*QueryNamespaceDenomsResponse, error) + // Namespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + Namespaces(context.Context, *QueryNamespacesRequest) (*QueryNamespacesResponse, error) + // Namespace defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + Namespace(context.Context, *QueryNamespaceRequest) (*QueryNamespaceResponse, error) + // RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + RolesByActor(context.Context, *QueryRolesByActorRequest) (*QueryRolesByActorResponse, error) + // ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + ActorsByRole(context.Context, *QueryActorsByRoleRequest) (*QueryActorsByRoleResponse, error) + // RoleManagers defines a gRPC query method that returns a namespace's role managers + RoleManagers(context.Context, *QueryRoleManagersRequest) (*QueryRoleManagersResponse, error) + // RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + RoleManager(context.Context, *QueryRoleManagerRequest) (*QueryRoleManagerResponse, error) + // PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + PolicyStatuses(context.Context, *QueryPolicyStatusesRequest) (*QueryPolicyStatusesResponse, error) + // PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + PolicyManagerCapabilities(context.Context, *QueryPolicyManagerCapabilitiesRequest) (*QueryPolicyManagerCapabilitiesResponse, error) + // Vouchers defines a gRPC query method for the vouchers for a given denom + Vouchers(context.Context, *QueryVouchersRequest) (*QueryVouchersResponse, error) + // Voucher defines a gRPC query method for the vouchers for a given denom and address + Voucher(context.Context, *QueryVoucherRequest) (*QueryVoucherResponse, error) + // Retrieves the entire permissions module's state + PermissionsModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error) +} + +// UnimplementedQueryServer can be embedded to have forward compatible implementations. +type UnimplementedQueryServer struct { +} + +func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (*UnimplementedQueryServer) NamespaceDenoms(ctx context.Context, req *QueryNamespaceDenomsRequest) (*QueryNamespaceDenomsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NamespaceDenoms not implemented") +} +func (*UnimplementedQueryServer) Namespaces(ctx context.Context, req *QueryNamespacesRequest) (*QueryNamespacesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Namespaces not implemented") +} +func (*UnimplementedQueryServer) Namespace(ctx context.Context, req *QueryNamespaceRequest) (*QueryNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Namespace not implemented") +} +func (*UnimplementedQueryServer) RolesByActor(ctx context.Context, req *QueryRolesByActorRequest) (*QueryRolesByActorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolesByActor not implemented") +} +func (*UnimplementedQueryServer) ActorsByRole(ctx context.Context, req *QueryActorsByRoleRequest) (*QueryActorsByRoleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ActorsByRole not implemented") +} +func (*UnimplementedQueryServer) RoleManagers(ctx context.Context, req *QueryRoleManagersRequest) (*QueryRoleManagersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RoleManagers not implemented") +} +func (*UnimplementedQueryServer) RoleManager(ctx context.Context, req *QueryRoleManagerRequest) (*QueryRoleManagerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RoleManager not implemented") +} +func (*UnimplementedQueryServer) PolicyStatuses(ctx context.Context, req *QueryPolicyStatusesRequest) (*QueryPolicyStatusesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PolicyStatuses not implemented") +} +func (*UnimplementedQueryServer) PolicyManagerCapabilities(ctx context.Context, req *QueryPolicyManagerCapabilitiesRequest) (*QueryPolicyManagerCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PolicyManagerCapabilities not implemented") +} +func (*UnimplementedQueryServer) Vouchers(ctx context.Context, req *QueryVouchersRequest) (*QueryVouchersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Vouchers not implemented") +} +func (*UnimplementedQueryServer) Voucher(ctx context.Context, req *QueryVoucherRequest) (*QueryVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Voucher not implemented") +} +func (*UnimplementedQueryServer) PermissionsModuleState(ctx context.Context, req *QueryModuleStateRequest) (*QueryModuleStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PermissionsModuleState not implemented") +} + +func RegisterQueryServer(s grpc1.Server, srv QueryServer) { + s.RegisterService(&_Query_serviceDesc, srv) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err } - return len(dAtA) - i, nil + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Params", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func _Query_NamespaceDenoms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespaceDenomsRequest) + if err := dec(in); err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + if interceptor == nil { + return srv.(QueryServer).NamespaceDenoms(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/NamespaceDenoms", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NamespaceDenoms(ctx, req.(*QueryNamespaceDenomsRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 + +func _Query_Namespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespacesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - return n + if interceptor == nil { + return srv.(QueryServer).Namespaces(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Namespaces", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Namespaces(ctx, req.(*QueryNamespacesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_Namespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespaceRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + if interceptor == nil { + return srv.(QueryServer).Namespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Namespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Namespace(ctx, req.(*QueryNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAllNamespacesRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_RolesByActor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRolesByActorRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - return n + if interceptor == nil { + return srv.(QueryServer).RolesByActor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RolesByActor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RolesByActor(ctx, req.(*QueryRolesByActorRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAllNamespacesResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_ActorsByRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryActorsByRoleRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Namespaces) > 0 { - for _, e := range m.Namespaces { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } + if interceptor == nil { + return srv.(QueryServer).ActorsByRole(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/ActorsByRole", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ActorsByRole(ctx, req.(*QueryActorsByRoleRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryNamespaceByDenomRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_RoleManagers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRoleManagersRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).RoleManagers(ctx, in) } - if m.IncludeRoles { - n += 2 + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RoleManagers", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RoleManagers(ctx, req.(*QueryRoleManagersRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryNamespaceByDenomResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_RoleManager_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRoleManagerRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if m.Namespace != nil { - l = m.Namespace.Size() - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).RoleManager(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RoleManager", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RoleManager(ctx, req.(*QueryRoleManagerRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressesByRoleRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_PolicyStatuses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPolicyStatusesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).PolicyStatuses(ctx, in) } - l = len(m.Role) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PolicyStatuses", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PolicyStatuses(ctx, req.(*QueryPolicyStatusesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressesByRoleResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_PolicyManagerCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPolicyManagerCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Addresses) > 0 { - for _, s := range m.Addresses { - l = len(s) - n += 1 + l + sovQuery(uint64(l)) - } + if interceptor == nil { + return srv.(QueryServer).PolicyManagerCapabilities(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PolicyManagerCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PolicyManagerCapabilities(ctx, req.(*QueryPolicyManagerCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressRolesRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_Vouchers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVouchersRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).Vouchers(ctx, in) } - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Vouchers", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Vouchers(ctx, req.(*QueryVouchersRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressRolesResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_Voucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVoucherRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Roles) > 0 { - for _, s := range m.Roles { - l = len(s) - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).Voucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Voucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Voucher(ctx, req.(*QueryVoucherRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_PermissionsModuleState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryModuleStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PermissionsModuleState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PermissionsModuleState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PermissionsModuleState(ctx, req.(*QueryModuleStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "injective.permissions.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "NamespaceDenoms", + Handler: _Query_NamespaceDenoms_Handler, + }, + { + MethodName: "Namespaces", + Handler: _Query_Namespaces_Handler, + }, + { + MethodName: "Namespace", + Handler: _Query_Namespace_Handler, + }, + { + MethodName: "RolesByActor", + Handler: _Query_RolesByActor_Handler, + }, + { + MethodName: "ActorsByRole", + Handler: _Query_ActorsByRole_Handler, + }, + { + MethodName: "RoleManagers", + Handler: _Query_RoleManagers_Handler, + }, + { + MethodName: "RoleManager", + Handler: _Query_RoleManager_Handler, + }, + { + MethodName: "PolicyStatuses", + Handler: _Query_PolicyStatuses_Handler, + }, + { + MethodName: "PolicyManagerCapabilities", + Handler: _Query_PolicyManagerCapabilities_Handler, + }, + { + MethodName: "Vouchers", + Handler: _Query_Vouchers_Handler, + }, + { + MethodName: "Voucher", + Handler: _Query_Voucher_Handler, + }, + { + MethodName: "PermissionsModuleState", + Handler: _Query_PermissionsModuleState_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "injective/permissions/v1beta1/query.proto", +} + +func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceDenomsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceDenomsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceDenomsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceDenomsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceDenomsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceDenomsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denoms) > 0 { + for iNdEx := len(m.Denoms) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Denoms[iNdEx]) + copy(dAtA[i:], m.Denoms[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denoms[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespacesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespacesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNamespacesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespacesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + { + size, err := m.Namespace.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryActorsByRoleRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActorsByRoleRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActorsByRoleRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Role) > 0 { + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Role))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryActorsByRoleResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActorsByRoleResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActorsByRoleResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Actors) > 0 { + for iNdEx := len(m.Actors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Actors[iNdEx]) + copy(dAtA[i:], m.Actors[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Actors[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRolesByActorRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRolesByActorRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRolesByActorRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Actor) > 0 { + i -= len(m.Actor) + copy(dAtA[i:], m.Actor) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Actor))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRolesByActorResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRolesByActorResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRolesByActorResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagerRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagerResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagerResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RoleManager != nil { + { + size, err := m.RoleManager.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyStatusesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyStatusesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyStatusesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyStatusesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyStatusesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyStatusesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyManagerCapabilitiesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyManagerCapabilitiesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyManagerCapabilitiesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyManagerCapabilitiesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyManagerCapabilitiesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyManagerCapabilitiesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVoucherRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryModuleStateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryNamespaceDenomsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNamespaceDenomsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Denoms) > 0 { + for _, s := range m.Denoms { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryNamespacesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNamespacesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Namespaces) > 0 { + for _, e := range m.Namespaces { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryNamespaceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryNamespaceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Namespace != nil { + l = m.Namespace.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryActorsByRoleRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Role) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryActorsByRoleResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Actors) > 0 { + for _, s := range m.Actors { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRolesByActorRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Actor) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRolesByActorResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRoleManagersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRoleManagersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRoleManagerRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRoleManagerResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RoleManager != nil { + l = m.RoleManager.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyStatusesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyStatusesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryPolicyManagerCapabilitiesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyManagerCapabilitiesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVouchersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVouchersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVoucherRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Voucher.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryModuleStateRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryModuleStateResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceDenomsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceDenomsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceDenomsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceDenomsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceDenomsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceDenomsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denoms", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denoms = append(m.Denoms, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespacesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespacesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespacesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespacesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespacesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespaces = append(m.Namespaces, &Namespace{}) + if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Namespace == nil { + m.Namespace = &Namespace{} + } + if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryActorsByRoleRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryActorsByRoleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActorsByRoleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryActorsByRoleResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryActorsByRoleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActorsByRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actors = append(m.Actors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRolesByActorRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRolesByActorRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRolesByActorRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actor", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actor = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRolesByActorResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRolesByActorResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRolesByActorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRoleManagersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRoleManagersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRoleManagersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRoleManagersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRoleManagersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRoleManagersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - return n -} - -func (m *QueryVouchersForAddressRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} -func (m *QueryVouchersForAddressResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Vouchers) > 0 { - for _, e := range m.Vouchers { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} - -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryRoleManagerRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1544,12 +4231,76 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryRoleManagerRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryRoleManagerRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Manager = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1571,7 +4322,7 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryRoleManagerResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1594,15 +4345,15 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryRoleManagerResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryRoleManagerResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RoleManager", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1629,7 +4380,10 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.RoleManager == nil { + m.RoleManager = &RoleManager{} + } + if err := m.RoleManager.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1654,7 +4408,7 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyStatusesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1677,12 +4431,44 @@ func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAllNamespacesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyStatusesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAllNamespacesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyStatusesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1704,7 +4490,7 @@ func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyStatusesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1727,15 +4513,15 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAllNamespacesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyStatusesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAllNamespacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyStatusesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1762,8 +4548,8 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Namespaces = append(m.Namespaces, &Namespace{}) - if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1788,7 +4574,7 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyManagerCapabilitiesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1811,10 +4597,10 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryNamespaceByDenomRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryNamespaceByDenomRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1849,26 +4635,6 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { } m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeRoles", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeRoles = bool(v != 0) default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1890,7 +4656,7 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyManagerCapabilitiesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1913,15 +4679,15 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryNamespaceByDenomResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryNamespaceByDenomResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1948,10 +4714,8 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Namespace == nil { - m.Namespace = &Namespace{} - } - if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1976,7 +4740,7 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { +func (m *QueryVouchersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1999,10 +4763,10 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressesByRoleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVouchersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressesByRoleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVouchersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -2037,38 +4801,6 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { } m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Role = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -2090,7 +4822,7 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { +func (m *QueryVouchersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2113,17 +4845,17 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressesByRoleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVouchersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressesByRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVouchersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -2133,23 +4865,25 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex])) + m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2172,7 +4906,7 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryVoucherRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2195,10 +4929,10 @@ func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressRolesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVoucherRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressRolesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVoucherRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -2286,7 +5020,7 @@ func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryVoucherResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2309,17 +5043,17 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVoucherResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -2329,23 +5063,24 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2368,7 +5103,7 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2391,44 +5126,12 @@ func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryVouchersForAddressRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryVouchersForAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -2450,7 +5153,7 @@ func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2473,15 +5176,15 @@ func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryVouchersForAddressResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryVouchersForAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2508,8 +5211,10 @@ func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Vouchers = append(m.Vouchers, types.Coin{}) - if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.State == nil { + m.State = &GenesisState{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/permissions/types/tx.pb.go b/chain/permissions/types/tx.pb.go index 7516812d..cdeff028 100644 --- a/chain/permissions/types/tx.pb.go +++ b/chain/permissions/types/tx.pb.go @@ -213,108 +213,21 @@ func (m *MsgCreateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgCreateNamespaceResponse proto.InternalMessageInfo -type MsgDeleteNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` -} - -func (m *MsgDeleteNamespace) Reset() { *m = MsgDeleteNamespace{} } -func (m *MsgDeleteNamespace) String() string { return proto.CompactTextString(m) } -func (*MsgDeleteNamespace) ProtoMessage() {} -func (*MsgDeleteNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{4} -} -func (m *MsgDeleteNamespace) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgDeleteNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgDeleteNamespace.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgDeleteNamespace) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgDeleteNamespace.Merge(m, src) -} -func (m *MsgDeleteNamespace) XXX_Size() int { - return m.Size() -} -func (m *MsgDeleteNamespace) XXX_DiscardUnknown() { - xxx_messageInfo_MsgDeleteNamespace.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgDeleteNamespace proto.InternalMessageInfo - -func (m *MsgDeleteNamespace) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - -func (m *MsgDeleteNamespace) GetNamespaceDenom() string { - if m != nil { - return m.NamespaceDenom - } - return "" -} - -type MsgDeleteNamespaceResponse struct { -} - -func (m *MsgDeleteNamespaceResponse) Reset() { *m = MsgDeleteNamespaceResponse{} } -func (m *MsgDeleteNamespaceResponse) String() string { return proto.CompactTextString(m) } -func (*MsgDeleteNamespaceResponse) ProtoMessage() {} -func (*MsgDeleteNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{5} -} -func (m *MsgDeleteNamespaceResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgDeleteNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgDeleteNamespaceResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgDeleteNamespaceResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgDeleteNamespaceResponse.Merge(m, src) -} -func (m *MsgDeleteNamespaceResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgDeleteNamespaceResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgDeleteNamespaceResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgDeleteNamespaceResponse proto.InternalMessageInfo - type MsgUpdateNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - WasmHook *MsgUpdateNamespace_MsgSetWasmHook `protobuf:"bytes,3,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` - MintsPaused *MsgUpdateNamespace_MsgSetMintsPaused `protobuf:"bytes,4,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` - SendsPaused *MsgUpdateNamespace_MsgSetSendsPaused `protobuf:"bytes,5,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` - BurnsPaused *MsgUpdateNamespace_MsgSetBurnsPaused `protobuf:"bytes,6,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + ContractHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + RolePermissions []*Role `protobuf:"bytes,4,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } func (m *MsgUpdateNamespace) Reset() { *m = MsgUpdateNamespace{} } func (m *MsgUpdateNamespace) String() string { return proto.CompactTextString(m) } func (*MsgUpdateNamespace) ProtoMessage() {} func (*MsgUpdateNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{4} } func (m *MsgUpdateNamespace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -350,189 +263,64 @@ func (m *MsgUpdateNamespace) GetSender() string { return "" } -func (m *MsgUpdateNamespace) GetNamespaceDenom() string { +func (m *MsgUpdateNamespace) GetDenom() string { if m != nil { - return m.NamespaceDenom + return m.Denom } return "" } -func (m *MsgUpdateNamespace) GetWasmHook() *MsgUpdateNamespace_MsgSetWasmHook { +func (m *MsgUpdateNamespace) GetContractHook() *MsgUpdateNamespace_SetContractHook { if m != nil { - return m.WasmHook + return m.ContractHook } return nil } -func (m *MsgUpdateNamespace) GetMintsPaused() *MsgUpdateNamespace_MsgSetMintsPaused { +func (m *MsgUpdateNamespace) GetRolePermissions() []*Role { if m != nil { - return m.MintsPaused + return m.RolePermissions } return nil } -func (m *MsgUpdateNamespace) GetSendsPaused() *MsgUpdateNamespace_MsgSetSendsPaused { +func (m *MsgUpdateNamespace) GetRoleManagers() []*RoleManager { if m != nil { - return m.SendsPaused + return m.RoleManagers } return nil } -func (m *MsgUpdateNamespace) GetBurnsPaused() *MsgUpdateNamespace_MsgSetBurnsPaused { +func (m *MsgUpdateNamespace) GetPolicyStatuses() []*PolicyStatus { if m != nil { - return m.BurnsPaused + return m.PolicyStatuses } return nil } -type MsgUpdateNamespace_MsgSetWasmHook struct { - NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetWasmHook) Reset() { *m = MsgUpdateNamespace_MsgSetWasmHook{} } -func (m *MsgUpdateNamespace_MsgSetWasmHook) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetWasmHook) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetWasmHook) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 0} -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetWasmHook) GetNewValue() string { - if m != nil { - return m.NewValue - } - return "" -} - -type MsgUpdateNamespace_MsgSetMintsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetMintsPaused{} } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetMintsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetMintsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 1} -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) GetNewValue() bool { - if m != nil { - return m.NewValue - } - return false -} - -type MsgUpdateNamespace_MsgSetSendsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetSendsPaused{} } -func (m *MsgUpdateNamespace_MsgSetSendsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetSendsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetSendsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 2} -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) GetNewValue() bool { +func (m *MsgUpdateNamespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability { if m != nil { - return m.NewValue + return m.PolicyManagerCapabilities } - return false + return nil } -type MsgUpdateNamespace_MsgSetBurnsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +type MsgUpdateNamespace_SetContractHook struct { + NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetBurnsPaused{} } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetBurnsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetBurnsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 3} +func (m *MsgUpdateNamespace_SetContractHook) Reset() { *m = MsgUpdateNamespace_SetContractHook{} } +func (m *MsgUpdateNamespace_SetContractHook) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_SetContractHook) ProtoMessage() {} +func (*MsgUpdateNamespace_SetContractHook) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{4, 0} } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateNamespace_SetContractHook.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -542,23 +330,23 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Marshal(b []byte, determinist return b[:n], nil } } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Merge(m, src) +func (m *MsgUpdateNamespace_SetContractHook) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_SetContractHook.Merge(m, src) } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Size() int { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Size() int { return m.Size() } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.DiscardUnknown(m) +func (m *MsgUpdateNamespace_SetContractHook) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_SetContractHook.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateNamespace_SetContractHook proto.InternalMessageInfo -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) GetNewValue() bool { +func (m *MsgUpdateNamespace_SetContractHook) GetNewValue() string { if m != nil { return m.NewValue } - return false + return "" } type MsgUpdateNamespaceResponse struct { @@ -568,7 +356,7 @@ func (m *MsgUpdateNamespaceResponse) Reset() { *m = MsgUpdateNamespaceRe func (m *MsgUpdateNamespaceResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateNamespaceResponse) ProtoMessage() {} func (*MsgUpdateNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{7} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{5} } func (m *MsgUpdateNamespaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -597,25 +385,25 @@ func (m *MsgUpdateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateNamespaceResponse proto.InternalMessageInfo -type MsgUpdateNamespaceRoles struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - AddressRoles []*AddressRoles `protobuf:"bytes,4,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` +type MsgUpdateActorRoles struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + RoleActorsToAdd []*RoleActors `protobuf:"bytes,3,rep,name=role_actors_to_add,json=roleActorsToAdd,proto3" json:"role_actors_to_add,omitempty"` + RoleActorsToRevoke []*RoleActors `protobuf:"bytes,5,rep,name=role_actors_to_revoke,json=roleActorsToRevoke,proto3" json:"role_actors_to_revoke,omitempty"` } -func (m *MsgUpdateNamespaceRoles) Reset() { *m = MsgUpdateNamespaceRoles{} } -func (m *MsgUpdateNamespaceRoles) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespaceRoles) ProtoMessage() {} -func (*MsgUpdateNamespaceRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{8} +func (m *MsgUpdateActorRoles) Reset() { *m = MsgUpdateActorRoles{} } +func (m *MsgUpdateActorRoles) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateActorRoles) ProtoMessage() {} +func (*MsgUpdateActorRoles) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6} } -func (m *MsgUpdateNamespaceRoles) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateActorRoles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateActorRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateNamespaceRoles.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateActorRoles.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -625,157 +413,61 @@ func (m *MsgUpdateNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]b return b[:n], nil } } -func (m *MsgUpdateNamespaceRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespaceRoles.Merge(m, src) +func (m *MsgUpdateActorRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateActorRoles.Merge(m, src) } -func (m *MsgUpdateNamespaceRoles) XXX_Size() int { +func (m *MsgUpdateActorRoles) XXX_Size() int { return m.Size() } -func (m *MsgUpdateNamespaceRoles) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespaceRoles.DiscardUnknown(m) +func (m *MsgUpdateActorRoles) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateActorRoles.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateNamespaceRoles proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateActorRoles proto.InternalMessageInfo -func (m *MsgUpdateNamespaceRoles) GetSender() string { +func (m *MsgUpdateActorRoles) GetSender() string { if m != nil { return m.Sender } return "" } -func (m *MsgUpdateNamespaceRoles) GetNamespaceDenom() string { +func (m *MsgUpdateActorRoles) GetDenom() string { if m != nil { - return m.NamespaceDenom + return m.Denom } return "" } -func (m *MsgUpdateNamespaceRoles) GetRolePermissions() []*Role { - if m != nil { - return m.RolePermissions - } - return nil -} - -func (m *MsgUpdateNamespaceRoles) GetAddressRoles() []*AddressRoles { +func (m *MsgUpdateActorRoles) GetRoleActorsToAdd() []*RoleActors { if m != nil { - return m.AddressRoles + return m.RoleActorsToAdd } return nil } -type MsgUpdateNamespaceRolesResponse struct { -} - -func (m *MsgUpdateNamespaceRolesResponse) Reset() { *m = MsgUpdateNamespaceRolesResponse{} } -func (m *MsgUpdateNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespaceRolesResponse) ProtoMessage() {} -func (*MsgUpdateNamespaceRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{9} -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Merge(m, src) -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespaceRolesResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespaceRolesResponse proto.InternalMessageInfo - -type MsgRevokeNamespaceRoles struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - AddressRolesToRevoke []*AddressRoles `protobuf:"bytes,3,rep,name=address_roles_to_revoke,json=addressRolesToRevoke,proto3" json:"address_roles_to_revoke,omitempty"` -} - -func (m *MsgRevokeNamespaceRoles) Reset() { *m = MsgRevokeNamespaceRoles{} } -func (m *MsgRevokeNamespaceRoles) String() string { return proto.CompactTextString(m) } -func (*MsgRevokeNamespaceRoles) ProtoMessage() {} -func (*MsgRevokeNamespaceRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{10} -} -func (m *MsgRevokeNamespaceRoles) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgRevokeNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgRevokeNamespaceRoles.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgRevokeNamespaceRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgRevokeNamespaceRoles.Merge(m, src) -} -func (m *MsgRevokeNamespaceRoles) XXX_Size() int { - return m.Size() -} -func (m *MsgRevokeNamespaceRoles) XXX_DiscardUnknown() { - xxx_messageInfo_MsgRevokeNamespaceRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgRevokeNamespaceRoles proto.InternalMessageInfo - -func (m *MsgRevokeNamespaceRoles) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - -func (m *MsgRevokeNamespaceRoles) GetNamespaceDenom() string { - if m != nil { - return m.NamespaceDenom - } - return "" -} - -func (m *MsgRevokeNamespaceRoles) GetAddressRolesToRevoke() []*AddressRoles { +func (m *MsgUpdateActorRoles) GetRoleActorsToRevoke() []*RoleActors { if m != nil { - return m.AddressRolesToRevoke + return m.RoleActorsToRevoke } return nil } -type MsgRevokeNamespaceRolesResponse struct { +type MsgUpdateActorRolesResponse struct { } -func (m *MsgRevokeNamespaceRolesResponse) Reset() { *m = MsgRevokeNamespaceRolesResponse{} } -func (m *MsgRevokeNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } -func (*MsgRevokeNamespaceRolesResponse) ProtoMessage() {} -func (*MsgRevokeNamespaceRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{11} +func (m *MsgUpdateActorRolesResponse) Reset() { *m = MsgUpdateActorRolesResponse{} } +func (m *MsgUpdateActorRolesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateActorRolesResponse) ProtoMessage() {} +func (*MsgUpdateActorRolesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{7} } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateActorRolesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateActorRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateActorRolesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -785,17 +477,17 @@ func (m *MsgRevokeNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Merge(m, src) +func (m *MsgUpdateActorRolesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateActorRolesResponse.Merge(m, src) } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Size() int { +func (m *MsgUpdateActorRolesResponse) XXX_Size() int { return m.Size() } -func (m *MsgRevokeNamespaceRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgRevokeNamespaceRolesResponse.DiscardUnknown(m) +func (m *MsgUpdateActorRolesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateActorRolesResponse.DiscardUnknown(m) } -var xxx_messageInfo_MsgRevokeNamespaceRolesResponse proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateActorRolesResponse proto.InternalMessageInfo type MsgClaimVoucher struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` @@ -806,7 +498,7 @@ func (m *MsgClaimVoucher) Reset() { *m = MsgClaimVoucher{} } func (m *MsgClaimVoucher) String() string { return proto.CompactTextString(m) } func (*MsgClaimVoucher) ProtoMessage() {} func (*MsgClaimVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{12} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{8} } func (m *MsgClaimVoucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -856,7 +548,7 @@ func (m *MsgClaimVoucherResponse) Reset() { *m = MsgClaimVoucherResponse func (m *MsgClaimVoucherResponse) String() string { return proto.CompactTextString(m) } func (*MsgClaimVoucherResponse) ProtoMessage() {} func (*MsgClaimVoucherResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{13} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{9} } func (m *MsgClaimVoucherResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -890,18 +582,11 @@ func init() { proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.permissions.v1beta1.MsgUpdateParamsResponse") proto.RegisterType((*MsgCreateNamespace)(nil), "injective.permissions.v1beta1.MsgCreateNamespace") proto.RegisterType((*MsgCreateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgCreateNamespaceResponse") - proto.RegisterType((*MsgDeleteNamespace)(nil), "injective.permissions.v1beta1.MsgDeleteNamespace") - proto.RegisterType((*MsgDeleteNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgDeleteNamespaceResponse") proto.RegisterType((*MsgUpdateNamespace)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace") - proto.RegisterType((*MsgUpdateNamespace_MsgSetWasmHook)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetWasmHook") - proto.RegisterType((*MsgUpdateNamespace_MsgSetMintsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetMintsPaused") - proto.RegisterType((*MsgUpdateNamespace_MsgSetSendsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetSendsPaused") - proto.RegisterType((*MsgUpdateNamespace_MsgSetBurnsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetBurnsPaused") + proto.RegisterType((*MsgUpdateNamespace_SetContractHook)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.SetContractHook") proto.RegisterType((*MsgUpdateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceResponse") - proto.RegisterType((*MsgUpdateNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRoles") - proto.RegisterType((*MsgUpdateNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRolesResponse") - proto.RegisterType((*MsgRevokeNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRoles") - proto.RegisterType((*MsgRevokeNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRolesResponse") + proto.RegisterType((*MsgUpdateActorRoles)(nil), "injective.permissions.v1beta1.MsgUpdateActorRoles") + proto.RegisterType((*MsgUpdateActorRolesResponse)(nil), "injective.permissions.v1beta1.MsgUpdateActorRolesResponse") proto.RegisterType((*MsgClaimVoucher)(nil), "injective.permissions.v1beta1.MsgClaimVoucher") proto.RegisterType((*MsgClaimVoucherResponse)(nil), "injective.permissions.v1beta1.MsgClaimVoucherResponse") } @@ -911,68 +596,63 @@ func init() { } var fileDescriptor_ab9bfdcab1d9b6fa = []byte{ - // 961 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4d, 0x6f, 0xe3, 0x44, - 0x18, 0xae, 0xb7, 0x1f, 0x34, 0xd3, 0xee, 0x96, 0x5a, 0x91, 0x9a, 0xf5, 0x82, 0x5b, 0xb2, 0x02, - 0x42, 0x56, 0xb5, 0x49, 0x57, 0xaa, 0x44, 0x0e, 0x08, 0x92, 0x3d, 0x80, 0xb4, 0x59, 0x05, 0x17, - 0x16, 0x09, 0x09, 0x59, 0xe3, 0x64, 0x70, 0x4c, 0x62, 0x8f, 0xe5, 0x71, 0x12, 0x7a, 0x5a, 0xc4, - 0x81, 0x03, 0x07, 0xc4, 0x91, 0x2b, 0xff, 0xa0, 0x07, 0xae, 0x70, 0xe2, 0xb0, 0xc7, 0x15, 0x27, - 0x4e, 0x2b, 0xd4, 0x1e, 0x7a, 0x47, 0xfc, 0x00, 0x34, 0x9e, 0x89, 0xed, 0x4c, 0xd2, 0xd8, 0xe9, - 0x6a, 0xb9, 0xb4, 0x79, 0xbf, 0x9f, 0xe7, 0xb1, 0xde, 0x19, 0x1b, 0xbc, 0xe5, 0x78, 0x5f, 0xa3, - 0x4e, 0xe8, 0x8c, 0x90, 0xee, 0xa3, 0xc0, 0x75, 0x08, 0x71, 0xb0, 0x47, 0xf4, 0x51, 0xcd, 0x42, - 0x21, 0xac, 0xe9, 0xe1, 0x37, 0x9a, 0x1f, 0xe0, 0x10, 0xcb, 0xaf, 0xc7, 0x79, 0x5a, 0x2a, 0x4f, - 0xe3, 0x79, 0x4a, 0xd1, 0xc6, 0x36, 0x8e, 0x32, 0x75, 0xfa, 0x8b, 0x15, 0x29, 0x6a, 0x07, 0x13, - 0x17, 0x13, 0xdd, 0x82, 0x04, 0xc5, 0x2d, 0x3b, 0xd8, 0xf1, 0x66, 0xe2, 0x5e, 0x3f, 0x8e, 0x53, - 0x83, 0xc7, 0xf7, 0x78, 0xdc, 0x25, 0xb6, 0x3e, 0xaa, 0xd1, 0x7f, 0x3c, 0x70, 0x9b, 0x05, 0x4c, - 0x36, 0x91, 0x19, 0x3c, 0x54, 0x5d, 0x4c, 0xc8, 0x87, 0x01, 0x74, 0x27, 0xb9, 0x7a, 0x46, 0x6e, - 0x8a, 0x28, 0x2b, 0xd8, 0x85, 0xae, 0xe3, 0x61, 0x3d, 0xfa, 0xcb, 0x5c, 0xe5, 0xdf, 0x25, 0xb0, - 0xd3, 0x22, 0xf6, 0x67, 0x7e, 0x17, 0x86, 0xa8, 0x1d, 0x75, 0x97, 0x8f, 0x41, 0x01, 0x0e, 0xc3, - 0x1e, 0x0e, 0x9c, 0xf0, 0xb4, 0x24, 0x1d, 0x48, 0x95, 0x42, 0xa3, 0xf4, 0xe7, 0xaf, 0x87, 0x45, - 0x0e, 0xf4, 0xc3, 0x6e, 0x37, 0x40, 0x84, 0x9c, 0x84, 0x81, 0xe3, 0xd9, 0x46, 0x92, 0x2a, 0x37, - 0xc1, 0x06, 0xc3, 0x57, 0xba, 0x71, 0x20, 0x55, 0xb6, 0x8e, 0xde, 0xd4, 0x16, 0xaa, 0xae, 0xb1, - 0x71, 0x8d, 0xb5, 0xa7, 0xcf, 0xf7, 0x57, 0x0c, 0x5e, 0x5a, 0xd7, 0xbe, 0xbb, 0x3c, 0xab, 0x26, - 0x4d, 0x7f, 0xb8, 0x3c, 0xab, 0xde, 0x49, 0xb3, 0x13, 0xc0, 0x96, 0x6f, 0x83, 0x3d, 0xc1, 0x65, - 0x20, 0xe2, 0x63, 0x8f, 0xa0, 0xf2, 0x6f, 0x12, 0x90, 0x5b, 0xc4, 0x6e, 0x06, 0x08, 0x86, 0xe8, - 0x11, 0x74, 0x11, 0xf1, 0x61, 0x07, 0xc9, 0xef, 0x80, 0x0d, 0x82, 0xbc, 0x2e, 0x0a, 0x38, 0xb7, - 0xdd, 0x7f, 0x9e, 0xef, 0xdf, 0x3c, 0x85, 0xee, 0xa0, 0x5e, 0x66, 0xfe, 0xb2, 0xc1, 0x13, 0xe4, - 0x87, 0xa0, 0xe0, 0x4d, 0xea, 0x38, 0xa9, 0x4a, 0x06, 0xa9, 0x78, 0x0e, 0xe7, 0x95, 0x34, 0x60, - 0xd4, 0x78, 0x6b, 0xca, 0x4b, 0x15, 0x78, 0x09, 0x40, 0xcb, 0xaf, 0x01, 0x65, 0xd6, 0x1b, 0xb3, - 0xfb, 0x99, 0xb1, 0x7b, 0x80, 0x06, 0xe8, 0x9a, 0xec, 0xde, 0x06, 0x3b, 0x31, 0x38, 0xb3, 0x8b, - 0x3c, 0xec, 0x46, 0x1c, 0x0b, 0xc6, 0xad, 0xd8, 0xfd, 0x80, 0x7a, 0x33, 0x81, 0x0b, 0x18, 0x38, - 0x70, 0xc1, 0x1b, 0x03, 0xff, 0x77, 0x3d, 0x02, 0xce, 0x1e, 0xd9, 0x4b, 0x05, 0x2e, 0x7f, 0x09, - 0x0a, 0x63, 0x48, 0x5c, 0xb3, 0x87, 0x71, 0xbf, 0xb4, 0x1a, 0x3d, 0xbf, 0x0f, 0x32, 0x9e, 0xdf, - 0x2c, 0x32, 0xea, 0x3a, 0x41, 0xe1, 0xe7, 0x90, 0xb8, 0x1f, 0x61, 0xdc, 0x37, 0x36, 0xc7, 0xfc, - 0x97, 0xfc, 0x15, 0xd8, 0x76, 0x1d, 0x2f, 0x24, 0xa6, 0x0f, 0x87, 0x04, 0x75, 0x4b, 0x6b, 0xd1, - 0x84, 0xe6, 0x75, 0x27, 0xb4, 0x68, 0xaf, 0x76, 0xd4, 0xca, 0xd8, 0x72, 0x13, 0x83, 0xce, 0xa1, - 0xcc, 0xe3, 0x39, 0xeb, 0x2f, 0x36, 0xe7, 0x84, 0xf6, 0x9a, 0xcc, 0x21, 0x89, 0x41, 0xe7, 0x58, - 0xc3, 0xc0, 0x8b, 0xe7, 0x6c, 0xbc, 0xd8, 0x9c, 0x06, 0xed, 0x35, 0x99, 0x63, 0x25, 0x86, 0x72, - 0x08, 0x6e, 0x4d, 0x6b, 0x2a, 0xdf, 0x01, 0x05, 0x0f, 0x8d, 0xcd, 0x11, 0x1c, 0x0c, 0x11, 0x7b, - 0xfe, 0xc6, 0xa6, 0x87, 0xc6, 0x8f, 0xa9, 0xad, 0xbc, 0x0b, 0x76, 0x67, 0x04, 0x9a, 0xad, 0xd8, - 0x9c, 0x57, 0x91, 0xa2, 0x9a, 0xb3, 0x22, 0x05, 0x7a, 0x61, 0x45, 0xe6, 0x52, 0x08, 0x9a, 0xf0, - 0xa5, 0x10, 0xbc, 0xf1, 0x52, 0xfc, 0x71, 0x23, 0x75, 0x8e, 0x25, 0x61, 0x3c, 0x40, 0xe4, 0xa5, - 0x6c, 0xc6, 0x23, 0xf0, 0x6a, 0x80, 0x07, 0xc8, 0x4c, 0x81, 0x2e, 0xad, 0x1e, 0xac, 0x56, 0xb6, - 0x8e, 0xee, 0x66, 0x3c, 0x6e, 0x8a, 0xc9, 0xd8, 0xa1, 0xc5, 0xed, 0x24, 0x2a, 0xb7, 0xc1, 0x4d, - 0xc8, 0xee, 0x05, 0x93, 0x86, 0x48, 0x69, 0x2d, 0x6a, 0x76, 0x2f, 0xa3, 0x19, 0xbf, 0x4b, 0x22, - 0x9e, 0xc6, 0x36, 0x4c, 0x59, 0xf5, 0xfb, 0x82, 0xbe, 0x77, 0x17, 0xeb, 0x1b, 0x15, 0x95, 0xdf, - 0x00, 0xfb, 0x57, 0x84, 0x62, 0xa5, 0xbf, 0x67, 0x4a, 0x1b, 0x68, 0x84, 0xfb, 0xff, 0x87, 0xd2, - 0x16, 0xd8, 0x9b, 0x52, 0xc6, 0x0c, 0xb1, 0x19, 0x44, 0xc3, 0xb9, 0xe0, 0x4b, 0x69, 0x54, 0x4c, - 0x6b, 0xf4, 0x29, 0x66, 0x2c, 0x32, 0xb5, 0x9a, 0x47, 0x96, 0x6b, 0x35, 0x2f, 0x14, 0x6b, 0xf5, - 0x24, 0x7a, 0x39, 0x68, 0x0e, 0xa0, 0xe3, 0x3e, 0xc6, 0xc3, 0x4e, 0x0f, 0x05, 0xcb, 0x48, 0x54, - 0x04, 0xeb, 0x69, 0x61, 0x98, 0x51, 0xbf, 0x27, 0x60, 0x15, 0x6f, 0xf7, 0xf4, 0x34, 0x7e, 0xbb, - 0xa7, 0x5d, 0x13, 0x6c, 0x47, 0xbf, 0xbc, 0x02, 0x56, 0x5b, 0xc4, 0x96, 0x47, 0x60, 0x7b, 0xea, - 0xed, 0x45, 0xcb, 0x7b, 0x5c, 0xb1, 0x7c, 0xe5, 0x78, 0xb9, 0xfc, 0xc9, 0x7c, 0xf9, 0x09, 0xd8, - 0x11, 0xdf, 0x2c, 0x6a, 0xd9, 0xad, 0x84, 0x12, 0xe5, 0xbd, 0xa5, 0x4b, 0xd2, 0x00, 0xc4, 0xcb, - 0x3f, 0x07, 0x00, 0xa1, 0x24, 0x0f, 0x80, 0x2b, 0x2e, 0x72, 0x0a, 0x40, 0xbc, 0xc4, 0x6b, 0x4b, - 0xdf, 0x15, 0x79, 0x00, 0x5c, 0x71, 0x68, 0xca, 0x3f, 0x4a, 0xa0, 0x38, 0xf7, 0xc4, 0x3c, 0x5e, - 0xbe, 0x27, 0xad, 0x53, 0xde, 0xbf, 0x5e, 0xdd, 0x14, 0xa0, 0xb9, 0x07, 0x4b, 0x0e, 0x40, 0xf3, - 0xea, 0xf2, 0x00, 0x5a, 0xb4, 0xc0, 0x74, 0x39, 0xa6, 0xb6, 0x37, 0xc7, 0x72, 0xa4, 0xf3, 0xf3, - 0x2c, 0xc7, 0xbc, 0xe5, 0x54, 0xd6, 0xbf, 0xbd, 0x3c, 0xab, 0x4a, 0x8d, 0xfe, 0xd3, 0x73, 0x55, - 0x7a, 0x76, 0xae, 0x4a, 0x7f, 0x9f, 0xab, 0xd2, 0x4f, 0x17, 0xea, 0xca, 0xb3, 0x0b, 0x75, 0xe5, - 0xaf, 0x0b, 0x75, 0xe5, 0x8b, 0x4f, 0x6c, 0x27, 0xec, 0x0d, 0x2d, 0xad, 0x83, 0x5d, 0xfd, 0xe3, - 0xc9, 0x88, 0x87, 0xd0, 0x22, 0xc9, 0x47, 0xcd, 0x61, 0x07, 0x07, 0x28, 0x6d, 0xf6, 0xa0, 0xe3, - 0xe9, 0x2e, 0xee, 0x0e, 0x07, 0x88, 0x4c, 0x7d, 0xf1, 0x84, 0xa7, 0x3e, 0x22, 0xd6, 0x46, 0xf4, - 0x45, 0x73, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0x97, 0x38, 0xd1, 0x14, 0x0e, 0x00, - 0x00, + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xce, 0x36, 0x75, 0xc0, 0xd3, 0x04, 0xb7, 0x43, 0x50, 0x37, 0x0e, 0x75, 0x22, 0x23, 0x50, + 0xea, 0xaa, 0xbb, 0x72, 0x90, 0x22, 0xe1, 0x5b, 0xe2, 0x0b, 0x48, 0x4d, 0x29, 0x9b, 0x92, 0x03, + 0x42, 0xb2, 0xc6, 0xbb, 0x8f, 0xf5, 0x60, 0xef, 0xce, 0x6a, 0x66, 0xec, 0xe2, 0x53, 0x51, 0xb9, + 0x21, 0x0e, 0xfc, 0x29, 0x39, 0x70, 0x85, 0x73, 0x8f, 0x15, 0x27, 0x4e, 0x15, 0x4a, 0x0e, 0xb9, + 0xf3, 0x17, 0x20, 0xcf, 0x8c, 0xbd, 0x9b, 0x8d, 0xa9, 0xd7, 0xf4, 0x92, 0xf8, 0xfd, 0xfa, 0xde, + 0xf7, 0xbd, 0x79, 0x3b, 0xbb, 0xe8, 0x13, 0x1a, 0x7f, 0x0f, 0xbe, 0xa4, 0x23, 0x70, 0x13, 0xe0, + 0x11, 0x15, 0x82, 0xb2, 0x58, 0xb8, 0xa3, 0x66, 0x17, 0x24, 0x69, 0xba, 0xf2, 0x07, 0x27, 0xe1, + 0x4c, 0x32, 0x7c, 0x6f, 0x96, 0xe7, 0x64, 0xf2, 0x1c, 0x93, 0x57, 0xdd, 0x0c, 0x59, 0xc8, 0x54, + 0xa6, 0x3b, 0xf9, 0xa5, 0x8b, 0xaa, 0x35, 0x9f, 0x89, 0x88, 0x09, 0xb7, 0x4b, 0x04, 0xcc, 0x20, + 0x7d, 0x46, 0xe3, 0x6b, 0xf1, 0xb8, 0x3f, 0x8b, 0x4f, 0x0c, 0x13, 0xbf, 0x6b, 0xe2, 0x91, 0x08, + 0xdd, 0x51, 0x73, 0xf2, 0xcf, 0x04, 0xb6, 0x74, 0xa0, 0xa3, 0x3b, 0x6a, 0xc3, 0x84, 0x1a, 0x6f, + 0x16, 0x94, 0x10, 0x4e, 0xa2, 0x69, 0xae, 0xbb, 0x20, 0x37, 0x23, 0x54, 0x17, 0xdc, 0x21, 0x11, + 0x8d, 0x99, 0xab, 0xfe, 0x6a, 0x57, 0xfd, 0x0f, 0x0b, 0x55, 0x8e, 0x45, 0xf8, 0x75, 0x12, 0x10, + 0x09, 0x4f, 0x14, 0x3a, 0x3e, 0x40, 0x65, 0x32, 0x94, 0x3d, 0xc6, 0xa9, 0x1c, 0xdb, 0xd6, 0xae, + 0xb5, 0x57, 0x3e, 0xb2, 0xff, 0xfc, 0xed, 0xe1, 0xa6, 0x21, 0x7a, 0x18, 0x04, 0x1c, 0x84, 0x38, + 0x91, 0x9c, 0xc6, 0xa1, 0x97, 0xa6, 0xe2, 0x36, 0x5a, 0xd3, 0xfc, 0xec, 0x1b, 0xbb, 0xd6, 0xde, + 0xad, 0xfd, 0x8f, 0x9d, 0x37, 0x4e, 0xdd, 0xd1, 0xed, 0x8e, 0x6e, 0xbe, 0x7c, 0xbd, 0xb3, 0xe2, + 0x99, 0xd2, 0x96, 0xf3, 0xe2, 0xf2, 0xac, 0x91, 0x82, 0xfe, 0x7c, 0x79, 0xd6, 0xd8, 0xce, 0xaa, + 0xcb, 0x91, 0xad, 0x6f, 0xa1, 0xbb, 0x39, 0x97, 0x07, 0x22, 0x61, 0xb1, 0x80, 0xfa, 0xef, 0x16, + 0xc2, 0xc7, 0x22, 0x6c, 0x73, 0x20, 0x12, 0x1e, 0x93, 0x08, 0x44, 0x42, 0x7c, 0xc0, 0xf7, 0xd1, + 0x9a, 0x80, 0x38, 0x00, 0x6e, 0xb4, 0xdd, 0xf9, 0xe7, 0xf5, 0xce, 0xc6, 0x98, 0x44, 0x83, 0x56, + 0x5d, 0xfb, 0xeb, 0x9e, 0x49, 0xc0, 0x8f, 0x50, 0x39, 0x9e, 0xd6, 0x19, 0x51, 0x7b, 0x0b, 0x44, + 0xcd, 0xfa, 0x18, 0x5d, 0x29, 0x80, 0x96, 0x66, 0xa0, 0x27, 0xba, 0x6a, 0x39, 0x5d, 0x39, 0xa2, + 0xf5, 0x0f, 0x51, 0xf5, 0xba, 0x77, 0xa6, 0xee, 0x97, 0x92, 0x52, 0xa7, 0x95, 0xff, 0x2f, 0x75, + 0x9b, 0xa8, 0x14, 0x40, 0xcc, 0x22, 0xa5, 0xac, 0xec, 0x69, 0x03, 0x7f, 0x87, 0x36, 0x7c, 0x16, + 0x4b, 0x4e, 0x7c, 0xd9, 0xe9, 0x31, 0xd6, 0xb7, 0x57, 0x95, 0xee, 0xc3, 0x05, 0xba, 0xaf, 0x53, + 0x71, 0x4e, 0x40, 0xb6, 0x0d, 0xd2, 0xe7, 0x8c, 0xf5, 0xbd, 0x75, 0x3f, 0x63, 0xe1, 0xc7, 0xe8, + 0x36, 0x67, 0x03, 0xe8, 0x64, 0xc0, 0xec, 0x9b, 0xbb, 0xab, 0x7b, 0xb7, 0xf6, 0x3f, 0x5a, 0xd0, + 0xca, 0x63, 0x03, 0xf0, 0x2a, 0x93, 0xe2, 0x27, 0x69, 0x14, 0x7f, 0x89, 0x36, 0x14, 0x5e, 0x44, + 0x62, 0x12, 0x02, 0x17, 0x76, 0x49, 0x81, 0x35, 0x0a, 0x80, 0x1d, 0xeb, 0x12, 0x6f, 0x9d, 0xa7, + 0x86, 0xc0, 0x4f, 0x51, 0x25, 0x61, 0x03, 0xea, 0x8f, 0x3b, 0x42, 0x12, 0x39, 0x14, 0x20, 0xec, + 0x35, 0x05, 0xf9, 0x60, 0xd1, 0x5e, 0xab, 0xaa, 0x13, 0x55, 0xe4, 0xbd, 0x97, 0x64, 0x2c, 0x10, + 0x78, 0x84, 0xb6, 0x0d, 0xaa, 0x21, 0xda, 0xf1, 0x49, 0x42, 0xba, 0x74, 0x40, 0x25, 0x05, 0x61, + 0xbf, 0xa3, 0x3a, 0x1c, 0x14, 0xea, 0x60, 0x98, 0xb6, 0xa7, 0xf5, 0x63, 0x6f, 0x2b, 0x99, 0x1b, + 0xa0, 0x20, 0xaa, 0x0e, 0xaa, 0xe4, 0xce, 0x03, 0x6f, 0xa3, 0x72, 0x0c, 0xcf, 0x3a, 0x23, 0x32, + 0x18, 0x82, 0xde, 0x16, 0xef, 0xdd, 0x18, 0x9e, 0x9d, 0x4e, 0xec, 0x85, 0xcb, 0x9a, 0x3b, 0x6c, + 0xb3, 0xac, 0x39, 0x6f, 0xfa, 0x28, 0xde, 0x40, 0xef, 0xcf, 0xc2, 0x87, 0xbe, 0x64, 0x7c, 0x32, + 0x77, 0xf1, 0xf6, 0xdb, 0x7a, 0x8a, 0xb0, 0x3a, 0x75, 0x32, 0xc1, 0x14, 0x1d, 0xc9, 0x3a, 0x24, + 0x08, 0xec, 0x55, 0x35, 0xc5, 0xfb, 0x05, 0x8e, 0x5e, 0x71, 0x11, 0x7a, 0x9b, 0xf4, 0xef, 0xa7, + 0xec, 0x30, 0x08, 0xf0, 0xb7, 0xe8, 0x83, 0x1c, 0x2e, 0x87, 0x11, 0xeb, 0x83, 0xd9, 0xaa, 0x25, + 0xa0, 0x71, 0x16, 0xda, 0x53, 0x20, 0x2d, 0x37, 0x37, 0xdc, 0x9d, 0xb9, 0xc3, 0x4d, 0xe7, 0x54, + 0xbf, 0x87, 0xb6, 0xe7, 0xb8, 0x67, 0xe3, 0x7d, 0xae, 0x2e, 0xf1, 0xf6, 0x80, 0xd0, 0xe8, 0x94, + 0x0d, 0xfd, 0x1e, 0xf0, 0xb7, 0x9e, 0x6c, 0xeb, 0x41, 0x8e, 0x63, 0xfe, 0x16, 0xce, 0x76, 0x33, + 0xb7, 0x70, 0xd6, 0x35, 0xe5, 0xb6, 0xff, 0x53, 0x09, 0xad, 0x1e, 0x8b, 0x10, 0x8f, 0xd0, 0xfa, + 0x95, 0xb7, 0x8c, 0x53, 0xf4, 0x42, 0xd1, 0xf9, 0xd5, 0x83, 0xe5, 0xf2, 0xa7, 0xfd, 0xf1, 0x73, + 0x54, 0xc9, 0xbf, 0x01, 0x9a, 0x8b, 0xa1, 0x72, 0x25, 0xd5, 0xcf, 0x96, 0x2e, 0xc9, 0x12, 0xc8, + 0x5f, 0xd2, 0xcd, 0xa5, 0x2f, 0xd3, 0x22, 0x04, 0xfe, 0xe3, 0xe1, 0xc3, 0x2f, 0x2c, 0x74, 0xfb, + 0xda, 0x93, 0xb7, 0x5f, 0x14, 0x2f, 0xad, 0xa9, 0xb6, 0x96, 0xaf, 0x99, 0x91, 0x18, 0xa1, 0xf5, + 0x2b, 0xfb, 0x59, 0xe0, 0xf8, 0xb3, 0xf9, 0x45, 0x8e, 0x7f, 0xde, 0xfa, 0x55, 0x4b, 0x3f, 0x5e, + 0x9e, 0x35, 0xac, 0xa3, 0xfe, 0xcb, 0xf3, 0x9a, 0xf5, 0xea, 0xbc, 0x66, 0xfd, 0x7d, 0x5e, 0xb3, + 0x7e, 0xbd, 0xa8, 0xad, 0xbc, 0xba, 0xa8, 0xad, 0xfc, 0x75, 0x51, 0x5b, 0xf9, 0xe6, 0xab, 0x90, + 0xca, 0xde, 0xb0, 0xeb, 0xf8, 0x2c, 0x72, 0xbf, 0x98, 0xb6, 0x78, 0x44, 0xba, 0x22, 0xfd, 0xbc, + 0x7a, 0xe8, 0x33, 0x0e, 0x59, 0xb3, 0x47, 0x68, 0xec, 0x46, 0x2c, 0x18, 0x0e, 0x40, 0x5c, 0xf9, + 0xf6, 0x92, 0xe3, 0x04, 0x44, 0x77, 0x4d, 0x7d, 0x5b, 0x7d, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x89, 0x70, 0x57, 0xeb, 0x9e, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -989,10 +669,8 @@ const _ = grpc.SupportPackageIsVersion4 type MsgClient interface { UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) CreateNamespace(ctx context.Context, in *MsgCreateNamespace, opts ...grpc.CallOption) (*MsgCreateNamespaceResponse, error) - DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) - UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) - RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) + UpdateActorRoles(ctx context.Context, in *MsgUpdateActorRoles, opts ...grpc.CallOption) (*MsgUpdateActorRolesResponse, error) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) } @@ -1022,15 +700,6 @@ func (c *msgClient) CreateNamespace(ctx context.Context, in *MsgCreateNamespace, return out, nil } -func (c *msgClient) DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) { - out := new(MsgDeleteNamespaceResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/DeleteNamespace", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) { out := new(MsgUpdateNamespaceResponse) err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespace", in, out, opts...) @@ -1040,18 +709,9 @@ func (c *msgClient) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, return out, nil } -func (c *msgClient) UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) { - out := new(MsgUpdateNamespaceRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *msgClient) RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) { - out := new(MsgRevokeNamespaceRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", in, out, opts...) +func (c *msgClient) UpdateActorRoles(ctx context.Context, in *MsgUpdateActorRoles, opts ...grpc.CallOption) (*MsgUpdateActorRolesResponse, error) { + out := new(MsgUpdateActorRolesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateActorRoles", in, out, opts...) if err != nil { return nil, err } @@ -1071,10 +731,8 @@ func (c *msgClient) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts type MsgServer interface { UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) CreateNamespace(context.Context, *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) - DeleteNamespace(context.Context, *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) UpdateNamespace(context.Context, *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) - UpdateNamespaceRoles(context.Context, *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) - RevokeNamespaceRoles(context.Context, *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) + UpdateActorRoles(context.Context, *MsgUpdateActorRoles) (*MsgUpdateActorRolesResponse, error) ClaimVoucher(context.Context, *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) } @@ -1088,17 +746,11 @@ func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateP func (*UnimplementedMsgServer) CreateNamespace(ctx context.Context, req *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented") } -func (*UnimplementedMsgServer) DeleteNamespace(ctx context.Context, req *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteNamespace not implemented") -} func (*UnimplementedMsgServer) UpdateNamespace(ctx context.Context, req *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespace not implemented") } -func (*UnimplementedMsgServer) UpdateNamespaceRoles(ctx context.Context, req *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespaceRoles not implemented") -} -func (*UnimplementedMsgServer) RevokeNamespaceRoles(ctx context.Context, req *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RevokeNamespaceRoles not implemented") +func (*UnimplementedMsgServer) UpdateActorRoles(ctx context.Context, req *MsgUpdateActorRoles) (*MsgUpdateActorRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateActorRoles not implemented") } func (*UnimplementedMsgServer) ClaimVoucher(ctx context.Context, req *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ClaimVoucher not implemented") @@ -1144,24 +796,6 @@ func _Msg_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _Msg_DeleteNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgDeleteNamespace) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).DeleteNamespace(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/DeleteNamespace", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).DeleteNamespace(ctx, req.(*MsgDeleteNamespace)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateNamespace) if err := dec(in); err != nil { @@ -1180,38 +814,20 @@ func _Msg_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _Msg_UpdateNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateNamespaceRoles) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).UpdateNamespaceRoles(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateNamespaceRoles(ctx, req.(*MsgUpdateNamespaceRoles)) - } - return interceptor(ctx, in, info, handler) -} - -func _Msg_RevokeNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgRevokeNamespaceRoles) +func _Msg_UpdateActorRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateActorRoles) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).RevokeNamespaceRoles(ctx, in) + return srv.(MsgServer).UpdateActorRoles(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", + FullMethod: "/injective.permissions.v1beta1.Msg/UpdateActorRoles", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).RevokeNamespaceRoles(ctx, req.(*MsgRevokeNamespaceRoles)) + return srv.(MsgServer).UpdateActorRoles(ctx, req.(*MsgUpdateActorRoles)) } return interceptor(ctx, in, info, handler) } @@ -1246,21 +862,13 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "CreateNamespace", Handler: _Msg_CreateNamespace_Handler, }, - { - MethodName: "DeleteNamespace", - Handler: _Msg_DeleteNamespace_Handler, - }, { MethodName: "UpdateNamespace", Handler: _Msg_UpdateNamespace_Handler, }, { - MethodName: "UpdateNamespaceRoles", - Handler: _Msg_UpdateNamespaceRoles_Handler, - }, - { - MethodName: "RevokeNamespaceRoles", - Handler: _Msg_RevokeNamespaceRoles_Handler, + MethodName: "UpdateActorRoles", + Handler: _Msg_UpdateActorRoles_Handler, }, { MethodName: "ClaimVoucher", @@ -1397,7 +1005,7 @@ func (m *MsgCreateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *MsgDeleteNamespace) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateNamespace) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1407,115 +1015,75 @@ func (m *MsgDeleteNamespace) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgDeleteNamespace) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgDeleteNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) - i-- - dAtA[i] = 0x12 - } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgDeleteNamespaceResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgDeleteNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgDeleteNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.BurnsPaused != nil { - { - size, err := m.BurnsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 } - i-- - dAtA[i] = 0x32 } - if m.SendsPaused != nil { - { - size, err := m.SendsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x2a } - if m.MintsPaused != nil { - { - size, err := m.MintsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 } - i-- - dAtA[i] = 0x22 } - if m.WasmHook != nil { + if m.ContractHook != nil { { - size, err := m.WasmHook.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ContractHook.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1525,10 +1093,10 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) i-- dAtA[i] = 0x12 } @@ -1542,7 +1110,7 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MsgUpdateNamespace_MsgSetWasmHook) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateNamespace_SetContractHook) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1552,12 +1120,12 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace_SetContractHook) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace_SetContractHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1572,105 +1140,6 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - func (m *MsgUpdateNamespaceResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1694,7 +1163,7 @@ func (m *MsgUpdateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *MsgUpdateNamespaceRoles) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateActorRoles) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1704,34 +1173,20 @@ func (m *MsgUpdateNamespaceRoles) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRoles) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.AddressRoles) > 0 { - for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if len(m.RolePermissions) > 0 { - for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + if len(m.RoleActorsToRevoke) > 0 { + for iNdEx := len(m.RoleActorsToRevoke) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RoleActorsToRevoke[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1739,73 +1194,13 @@ func (m *MsgUpdateNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintTx(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x2a } } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) - i-- - dAtA[i] = 0x12 - } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *MsgRevokeNamespaceRoles) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgRevokeNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.AddressRolesToRevoke) > 0 { - for iNdEx := len(m.AddressRolesToRevoke) - 1; iNdEx >= 0; iNdEx-- { + if len(m.RoleActorsToAdd) > 0 { + for iNdEx := len(m.RoleActorsToAdd) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.AddressRolesToRevoke[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RoleActorsToAdd[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1816,10 +1211,10 @@ func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) dAtA[i] = 0x1a } } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) i-- dAtA[i] = 0x12 } @@ -1833,7 +1228,7 @@ func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *MsgRevokeNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateActorRolesResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1843,12 +1238,12 @@ func (m *MsgRevokeNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgRevokeNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRolesResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgRevokeNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1975,7 +1370,7 @@ func (m *MsgCreateNamespaceResponse) Size() (n int) { return n } -func (m *MsgDeleteNamespace) Size() (n int) { +func (m *MsgUpdateNamespace) Size() (n int) { if m == nil { return 0 } @@ -1985,56 +1380,42 @@ func (m *MsgDeleteNamespace) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.NamespaceDenom) + l = len(m.Denom) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - return n -} - -func (m *MsgDeleteNamespaceResponse) Size() (n int) { - if m == nil { - return 0 + if m.ContractHook != nil { + l = m.ContractHook.Size() + n += 1 + l + sovTx(uint64(l)) } - var l int - _ = l - return n -} - -func (m *MsgUpdateNamespace) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.NamespaceDenom) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if m.WasmHook != nil { - l = m.WasmHook.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.MintsPaused != nil { - l = m.MintsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.SendsPaused != nil { - l = m.SendsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.BurnsPaused != nil { - l = m.BurnsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } return n } -func (m *MsgUpdateNamespace_MsgSetWasmHook) Size() (n int) { +func (m *MsgUpdateNamespace_SetContractHook) Size() (n int) { if m == nil { return 0 } @@ -2047,42 +1428,6 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) Size() (n int) { return n } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - func (m *MsgUpdateNamespaceResponse) Size() (n int) { if m == nil { return 0 @@ -2092,7 +1437,7 @@ func (m *MsgUpdateNamespaceResponse) Size() (n int) { return n } -func (m *MsgUpdateNamespaceRoles) Size() (n int) { +func (m *MsgUpdateActorRoles) Size() (n int) { if m == nil { return 0 } @@ -2102,50 +1447,18 @@ func (m *MsgUpdateNamespaceRoles) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.NamespaceDenom) + l = len(m.Denom) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - if len(m.RolePermissions) > 0 { - for _, e := range m.RolePermissions { - l = e.Size() - n += 1 + l + sovTx(uint64(l)) - } - } - if len(m.AddressRoles) > 0 { - for _, e := range m.AddressRoles { + if len(m.RoleActorsToAdd) > 0 { + for _, e := range m.RoleActorsToAdd { l = e.Size() n += 1 + l + sovTx(uint64(l)) } } - return n -} - -func (m *MsgUpdateNamespaceRolesResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *MsgRevokeNamespaceRoles) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.NamespaceDenom) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if len(m.AddressRolesToRevoke) > 0 { - for _, e := range m.AddressRolesToRevoke { + if len(m.RoleActorsToRevoke) > 0 { + for _, e := range m.RoleActorsToRevoke { l = e.Size() n += 1 + l + sovTx(uint64(l)) } @@ -2153,7 +1466,7 @@ func (m *MsgRevokeNamespaceRoles) Size() (n int) { return n } -func (m *MsgRevokeNamespaceRolesResponse) Size() (n int) { +func (m *MsgUpdateActorRolesResponse) Size() (n int) { if m == nil { return 0 } @@ -2413,795 +1726,18 @@ func (m *MsgCreateNamespace) Unmarshal(dAtA []byte) error { } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgCreateNamespaceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgCreateNamespaceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgDeleteNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgDeleteNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDeleteNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgDeleteNamespaceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgDeleteNamespaceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDeleteNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.WasmHook == nil { - m.WasmHook = &MsgUpdateNamespace_MsgSetWasmHook{} - } - if err := m.WasmHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MintsPaused == nil { - m.MintsPaused = &MsgUpdateNamespace_MsgSetMintsPaused{} - } - if err := m.MintsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SendsPaused == nil { - m.SendsPaused = &MsgUpdateNamespace_MsgSetSendsPaused{} - } - if err := m.SendsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.BurnsPaused == nil { - m.BurnsPaused = &MsgUpdateNamespace_MsgSetBurnsPaused{} - } - if err := m.BurnsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetWasmHook: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetWasmHook: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NewValue = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetMintsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetMintsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NewValue = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetSendsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetSendsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NewValue = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + return ErrInvalidLengthTx } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetBurnsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetBurnsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -3211,12 +1747,25 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.NewValue = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -3238,7 +1787,7 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCreateNamespaceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3261,10 +1810,10 @@ func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateNamespaceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -3288,7 +1837,7 @@ func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3311,10 +1860,10 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceRoles: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateNamespace: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateNamespace: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3351,7 +1900,7 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3379,9 +1928,45 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ContractHook == nil { + m.ContractHook = &MsgUpdateNamespace_SetContractHook{} + } + if err := m.ContractHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) } @@ -3415,9 +2000,77 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3444,10 +2097,92 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) - if err := m.AddressRoles[len(m.AddressRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { return err } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateNamespace_SetContractHook) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetContractHook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetContractHook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NewValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3470,7 +2205,7 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3493,10 +2228,10 @@ func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateNamespaceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -3520,7 +2255,7 @@ func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateActorRoles) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3543,10 +2278,10 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeNamespaceRoles: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateActorRoles: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeNamespaceRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateActorRoles: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3583,7 +2318,7 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3611,11 +2346,45 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRolesToRevoke", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RoleActorsToAdd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleActorsToAdd = append(m.RoleActorsToAdd, &RoleActors{}) + if err := m.RoleActorsToAdd[len(m.RoleActorsToAdd)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleActorsToRevoke", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3642,8 +2411,8 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AddressRolesToRevoke = append(m.AddressRolesToRevoke, &AddressRoles{}) - if err := m.AddressRolesToRevoke[len(m.AddressRolesToRevoke)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.RoleActorsToRevoke = append(m.RoleActorsToRevoke, &RoleActors{}) + if err := m.RoleActorsToRevoke[len(m.RoleActorsToRevoke)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3668,7 +2437,7 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeNamespaceRolesResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateActorRolesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3691,10 +2460,10 @@ func (m *MsgRevokeNamespaceRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeNamespaceRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateActorRolesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeNamespaceRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateActorRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/chain/permissions/types/types.go b/chain/permissions/types/types.go deleted file mode 100644 index 12a6b08f..00000000 --- a/chain/permissions/types/types.go +++ /dev/null @@ -1,156 +0,0 @@ -package types - -import ( - "encoding/json" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -const ( - EVERYONE = "EVERYONE" - MaxPerm = uint32(Action_MINT) | uint32(Action_RECEIVE) | uint32(Action_BURN) -) - -type WasmHookMsg struct { - From sdk.AccAddress `json:"from_address"` - To sdk.AccAddress `json:"to_address"` - Action string `json:"action"` - Amounts sdk.Coins `json:"amounts"` -} - -func NewWasmHookMsg(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) WasmHookMsg { - return WasmHookMsg{ - From: fromAddr, - To: toAddr, - Action: action.String(), - Amounts: sdk.NewCoins(amount), - } -} - -func GetWasmHookMsgBytes(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) ([]byte, error) { - wasmHookMsg := struct { - SendRestriction WasmHookMsg `json:"send_restriction"` - }{NewWasmHookMsg(fromAddr, toAddr, action, amount)} - - bz, err := json.Marshal(wasmHookMsg) - if err != nil { - return nil, err - } - - return bz, nil -} - -func (n *Namespace) Validate() error { - if err := n.ValidateBasicParams(); err != nil { - return err - } - - if err := n.ValidateEveryoneRole(); err != nil { - return err - } - - if err := n.ValidateRoles(false); err != nil { - return err - } - - return nil -} - -func (n *Namespace) ValidateBasicParams() error { - if _, _, err := tftypes.DeconstructDenom(n.Denom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - // existing wasm hook contract - if n.WasmHook != "" { - if _, err := sdk.AccAddressFromBech32(n.WasmHook); err != nil { - return ErrInvalidWasmHook - } - } - - return nil -} - -func (n *Namespace) ValidateRoles(isForUpdate bool) error { - // role_permissions - foundRoles := make(map[string]struct{}, len(n.RolePermissions)) - for _, rolePerm := range n.RolePermissions { - if _, ok := foundRoles[rolePerm.Role]; ok { - return errors.Wrapf(ErrInvalidPermission, "permissions for the role %s set multiple times?", rolePerm.Role) - } - if rolePerm.Permissions > MaxPerm { - return errors.Wrapf(ErrInvalidPermission, "permissions %d for the role %s is bigger than maximum expected %d", rolePerm.Permissions, rolePerm.Role, MaxPerm) - } - foundRoles[rolePerm.Role] = struct{}{} - } - - // address_roles - foundAddresses := make(map[string]struct{}, len(n.AddressRoles)) - for _, addrRoles := range n.AddressRoles { - if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", addrRoles.Address) - } - if _, ok := foundAddresses[addrRoles.Address]; ok { - return errors.Wrapf(ErrInvalidRole, "address %s is assigned new roles multiple times?", addrRoles.Address) - } - for _, role := range addrRoles.Roles { - _, found := foundRoles[role] - if !isForUpdate && !found { - return errors.Wrapf(ErrUnknownRole, "role %s has no defined permissions", role) - } - if role == EVERYONE { - return errors.Wrapf(ErrInvalidRole, "role %s should not be explicitly attached to address, you need to remove address from the list completely instead", EVERYONE) - } - } - foundAddresses[addrRoles.Address] = struct{}{} - } - - return nil -} - -func (n *Namespace) ValidateEveryoneRole() error { - // role_permissions - for _, rolePerm := range n.RolePermissions { - if rolePerm.Role == EVERYONE { - return nil - } - } - - return errors.Wrapf(ErrInvalidPermission, "permissions for role %s should be explicitly set", EVERYONE) -} - -func (n *Namespace) CheckActionValidity(action Action) error { - // check that action is not paused - switch action { - case Action_MINT: - if n.MintsPaused { - return errors.Wrap(ErrRestrictedAction, "mints paused") - } - case Action_RECEIVE: - if n.SendsPaused { - return errors.Wrap(ErrRestrictedAction, "sends paused") - } - case Action_BURN: - if n.BurnsPaused { - return errors.Wrap(ErrRestrictedAction, "burns paused") - } - } - return nil -} - -func (a Action) DeriveActor(fromAddr, toAddr sdk.AccAddress) sdk.AccAddress { - switch a { - case Action_MINT, Action_RECEIVE: - return toAddr - case Action_BURN: - return fromAddr - } - return fromAddr -} - -func NewEmptyVoucher(denom string) sdk.Coin { - return sdk.NewInt64Coin(denom, 0) -} diff --git a/chain/stream/types/query.pb.go b/chain/stream/types/query.pb.go index be31fd77..73d96e9e 100644 --- a/chain/stream/types/query.pb.go +++ b/chain/stream/types/query.pb.go @@ -581,7 +581,7 @@ func (m *SubaccountDeposit) GetDeposit() types.Deposit { type SpotOrderUpdate struct { Status OrderUpdateStatus `protobuf:"varint,1,opt,name=status,proto3,enum=injective.stream.v1beta1.OrderUpdateStatus" json:"status,omitempty"` - OrderHash []byte `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` Order *SpotOrder `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` } @@ -626,11 +626,11 @@ func (m *SpotOrderUpdate) GetStatus() OrderUpdateStatus { return OrderUpdateStatus_Unspecified } -func (m *SpotOrderUpdate) GetOrderHash() []byte { +func (m *SpotOrderUpdate) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *SpotOrderUpdate) GetCid() string { @@ -701,7 +701,7 @@ func (m *SpotOrder) GetOrder() types.SpotLimitOrder { type DerivativeOrderUpdate struct { Status OrderUpdateStatus `protobuf:"varint,1,opt,name=status,proto3,enum=injective.stream.v1beta1.OrderUpdateStatus" json:"status,omitempty"` - OrderHash []byte `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` Order *DerivativeOrder `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` } @@ -746,11 +746,11 @@ func (m *DerivativeOrderUpdate) GetStatus() OrderUpdateStatus { return OrderUpdateStatus_Unspecified } -func (m *DerivativeOrderUpdate) GetOrderHash() []byte { +func (m *DerivativeOrderUpdate) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *DerivativeOrderUpdate) GetCid() string { @@ -953,7 +953,7 @@ type SpotTrade struct { // bytes32 subaccount ID that executed the trade SubaccountId string `protobuf:"bytes,6,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` - OrderHash []byte `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` @@ -1020,11 +1020,11 @@ func (m *SpotTrade) GetSubaccountId() string { return "" } -func (m *SpotTrade) GetOrderHash() []byte { +func (m *SpotTrade) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *SpotTrade) GetFeeRecipientAddress() string { @@ -1521,110 +1521,110 @@ func init() { } var fileDescriptor_e23b7dcfb2fbc9c7 = []byte{ - // 1640 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x16, 0xb6, 0x2c, 0x5b, 0x16, 0x8f, 0x64, 0x5b, 0x9e, 0x38, 0x06, 0xe3, 0xdc, 0x6b, 0x27, 0x74, - 0x72, 0x63, 0xe7, 0x47, 0x72, 0x7c, 0x71, 0x81, 0x5b, 0x74, 0x91, 0x44, 0x76, 0x83, 0x38, 0x70, - 0xd0, 0x80, 0x76, 0x5a, 0x20, 0x68, 0x4a, 0x50, 0xe4, 0x48, 0x9a, 0x4a, 0x22, 0x65, 0x0e, 0x69, - 0x44, 0x4f, 0xd0, 0xae, 0x8a, 0x6c, 0xbb, 0xec, 0xb6, 0x8b, 0x3e, 0x44, 0xbb, 0xc9, 0xaa, 0xc8, - 0xb2, 0x28, 0x8a, 0xb4, 0x48, 0x5e, 0xa4, 0x98, 0x1f, 0x52, 0x24, 0x25, 0x4b, 0x72, 0x9a, 0x22, - 0x2b, 0x91, 0xa3, 0x73, 0xbe, 0x6f, 0xce, 0x99, 0x39, 0xdf, 0x1c, 0x0e, 0x5c, 0x21, 0xce, 0x57, - 0xd8, 0xf2, 0xc9, 0x09, 0xae, 0x50, 0xdf, 0xc3, 0x66, 0xa7, 0x72, 0x72, 0xbb, 0x86, 0x7d, 0xf3, - 0x76, 0xe5, 0x38, 0xc0, 0x5e, 0xaf, 0xdc, 0xf5, 0x5c, 0xdf, 0x45, 0x6a, 0x64, 0x55, 0x16, 0x56, - 0x65, 0x69, 0xb5, 0xba, 0x66, 0xb9, 0xb4, 0xe3, 0xd2, 0x4a, 0xcd, 0xa4, 0x38, 0x72, 0xb5, 0x5c, - 0xe2, 0x08, 0xcf, 0xd5, 0xe5, 0x86, 0xdb, 0x70, 0xf9, 0x63, 0x85, 0x3d, 0xc9, 0xd1, 0x6b, 0x7d, - 0x56, 0xfc, 0xdc, 0x6a, 0x9a, 0x4e, 0xa3, 0xef, 0x8c, 0x4f, 0xb0, 0xe3, 0x53, 0x69, 0xb8, 0x35, - 0xca, 0x50, 0x0e, 0x08, 0x53, 0xed, 0xdb, 0x3c, 0xcc, 0x1f, 0xf2, 0xc9, 0xe9, 0xf8, 0x38, 0xc0, - 0xd4, 0x47, 0x36, 0x2c, 0xd7, 0x4c, 0xa7, 0x65, 0xd4, 0xcc, 0xb6, 0xe9, 0x58, 0x98, 0x1a, 0x75, - 0xd2, 0xf6, 0xb1, 0xa7, 0x66, 0x2e, 0x65, 0x36, 0x0b, 0x3b, 0x37, 0xcb, 0xa7, 0x05, 0x55, 0xae, - 0x9a, 0x4e, 0xab, 0x2a, 0x9d, 0xee, 0x73, 0x9f, 0xea, 0xcc, 0xcb, 0xd7, 0xeb, 0x19, 0x1d, 0xd5, - 0x06, 0xfe, 0x41, 0x27, 0xb0, 0x4a, 0x83, 0x9a, 0x69, 0x59, 0x6e, 0xe0, 0xf8, 0x86, 0x8d, 0xbb, - 0x2e, 0x25, 0x7e, 0xc4, 0x35, 0xcd, 0xb9, 0x76, 0x4e, 0xe7, 0x3a, 0x8c, 0x7c, 0xf7, 0xa4, 0x6b, - 0x82, 0x51, 0xa5, 0xa7, 0xfc, 0x8f, 0x9e, 0x02, 0xa2, 0x5d, 0xd7, 0x37, 0x7c, 0xcf, 0xb4, 0xfb, - 0xb1, 0x65, 0x39, 0xdf, 0x7f, 0x4e, 0xe7, 0x3b, 0xe2, 0xe6, 0x09, 0x8e, 0x12, 0xc3, 0x89, 0x8f, - 0xa3, 0x3a, 0xa8, 0x36, 0xf6, 0xc8, 0x89, 0xc9, 0x10, 0x52, 0x0c, 0x33, 0xef, 0xc0, 0xb0, 0xd2, - 0x47, 0x4b, 0xf0, 0x84, 0x31, 0xb8, 0x9e, 0x8d, 0xbd, 0x88, 0x61, 0x76, 0x1c, 0xc3, 0xa7, 0xdc, - 0x7c, 0x30, 0x86, 0xf8, 0x78, 0x2a, 0x86, 0x24, 0x43, 0xee, 0x1d, 0x18, 0x62, 0x31, 0x24, 0x78, - 0x30, 0xac, 0xf4, 0x63, 0xa8, 0xb9, 0x6e, 0x2b, 0x62, 0x99, 0xe3, 0x2c, 0x5b, 0x63, 0x58, 0x98, - 0x4b, 0x82, 0x68, 0x39, 0x0a, 0x85, 0xa3, 0x49, 0x9a, 0x63, 0xf8, 0x57, 0x3a, 0x9c, 0x04, 0x59, - 0xfe, 0xdd, 0xc8, 0x56, 0x53, 0x51, 0xc5, 0x29, 0x9f, 0x42, 0x89, 0xef, 0x38, 0xe2, 0x3a, 0x11, - 0x8d, 0x32, 0x8e, 0xe6, 0x71, 0xe8, 0x91, 0xa0, 0x59, 0xec, 0x26, 0x87, 0x91, 0x09, 0xe7, 0x5c, - 0xcf, 0xb4, 0xda, 0xd8, 0xe8, 0x7a, 0xc4, 0xc2, 0x21, 0x3c, 0x70, 0xf8, 0x1b, 0xa3, 0xa2, 0x60, - 0x4e, 0x8f, 0x99, 0x4f, 0x82, 0x60, 0xc9, 0x4d, 0xff, 0xa1, 0x7d, 0x3f, 0x07, 0x0b, 0xa1, 0x20, - 0xd0, 0xae, 0xeb, 0x50, 0x8c, 0x2e, 0x43, 0xb1, 0xd6, 0x76, 0xad, 0x96, 0xd1, 0xc4, 0xa4, 0xd1, - 0xf4, 0xb9, 0x12, 0xcc, 0xe8, 0x05, 0x3e, 0xf6, 0x80, 0x0f, 0xa1, 0x7f, 0x03, 0x08, 0x13, 0x9f, - 0x74, 0x30, 0x2f, 0xdf, 0xac, 0xae, 0xf0, 0x91, 0x23, 0xd2, 0xc1, 0xe8, 0x21, 0xcc, 0x27, 0x34, - 0x45, 0xcd, 0x5e, 0xca, 0x6e, 0x16, 0x76, 0xae, 0x4e, 0x24, 0x26, 0x7a, 0x31, 0xae, 0x1f, 0xe8, - 0x19, 0x9c, 0x1b, 0xa2, 0x1c, 0xea, 0x0c, 0x47, 0xbc, 0x79, 0x16, 0xc9, 0xd0, 0xd1, 0xa0, 0x4c, - 0xa0, 0x3d, 0x28, 0xc4, 0x04, 0x42, 0x9d, 0xe5, 0xb0, 0x1b, 0x23, 0x60, 0x43, 0x15, 0xd0, 0xa1, - 0x2f, 0x08, 0xe8, 0x33, 0x58, 0x1a, 0x90, 0x02, 0x35, 0xc7, 0xb1, 0x46, 0xec, 0x82, 0xbd, 0x64, - 0xbd, 0xeb, 0xa5, 0xb4, 0x00, 0xa0, 0x87, 0x72, 0x76, 0xa2, 0x30, 0xd5, 0xb9, 0x71, 0x88, 0x87, - 0x61, 0x51, 0x3c, 0xe9, 0xda, 0xa6, 0x2f, 0xe7, 0x28, 0x0a, 0x11, 0x7d, 0x91, 0x98, 0xa3, 0x44, - 0xcc, 0x73, 0xc4, 0xca, 0x24, 0x73, 0x8c, 0xe3, 0x96, 0xd2, 0x65, 0x8e, 0x8c, 0x74, 0x81, 0x1b, - 0x01, 0x37, 0xa5, 0xaa, 0x32, 0x6e, 0xd2, 0x51, 0x49, 0x49, 0xf0, 0x64, 0x69, 0x8b, 0x41, 0x8a, - 0x5a, 0xc3, 0x4b, 0x3b, 0xa2, 0x81, 0xb3, 0xd2, 0x0c, 0x2b, 0xea, 0x90, 0xec, 0x2e, 0x28, 0x51, - 0x2d, 0xaa, 0x05, 0x8e, 0xac, 0x8d, 0xaf, 0x66, 0xbd, 0xef, 0xc4, 0x4a, 0x20, 0x5e, 0xba, 0x54, - 0x2d, 0x8e, 0x2b, 0x81, 0x58, 0xd1, 0xea, 0xc5, 0x58, 0xa1, 0x52, 0xad, 0x0e, 0x8b, 0xa9, 0x19, - 0xa2, 0x12, 0x64, 0x29, 0x3e, 0x96, 0xa5, 0xc9, 0x1e, 0xd1, 0x3d, 0x50, 0xa2, 0xa4, 0xc8, 0x03, - 0x75, 0x63, 0x82, 0x64, 0xe8, 0x7d, 0x2f, 0xed, 0xc7, 0x0c, 0x28, 0xd1, 0x1f, 0xe8, 0x22, 0x28, - 0x1d, 0xd3, 0x6b, 0x61, 0xdf, 0x20, 0x36, 0x27, 0x52, 0xf4, 0xbc, 0x18, 0xd8, 0xb7, 0xd1, 0x5d, - 0x80, 0x5a, 0xd0, 0x33, 0xda, 0xf8, 0x04, 0xb7, 0xa9, 0x3a, 0xcd, 0x63, 0xbb, 0x1c, 0xa3, 0x8b, - 0xda, 0x8e, 0x90, 0xf0, 0x80, 0x59, 0xea, 0x4a, 0x2d, 0xe8, 0xf1, 0x27, 0x8a, 0xaa, 0x50, 0xa0, - 0xb8, 0xdd, 0x0e, 0x21, 0xb2, 0x93, 0x42, 0x00, 0xf3, 0x12, 0x18, 0xda, 0x8b, 0x0c, 0x14, 0x62, - 0xca, 0x81, 0x54, 0x98, 0x93, 0xf5, 0x2d, 0x27, 0x1c, 0xbe, 0xa2, 0x06, 0xe4, 0x23, 0x31, 0x12, - 0xb3, 0xbd, 0x50, 0x16, 0x4d, 0x59, 0x99, 0x35, 0x65, 0x11, 0xc7, 0xae, 0x4b, 0x9c, 0xea, 0xf6, - 0xcb, 0xd7, 0xeb, 0x53, 0x3f, 0xfc, 0xb1, 0xbe, 0xd9, 0x20, 0x7e, 0x33, 0xa8, 0x95, 0x2d, 0xb7, - 0x53, 0x91, 0x1d, 0x9c, 0xf8, 0xb9, 0x45, 0xed, 0x56, 0xc5, 0xef, 0x75, 0x31, 0xe5, 0x0e, 0x54, - 0x8f, 0xc0, 0xb5, 0x6f, 0x32, 0x80, 0x06, 0xa5, 0x07, 0x6d, 0xc0, 0x7c, 0x4c, 0xc5, 0xa2, 0x84, - 0x16, 0xfb, 0x83, 0xfb, 0x36, 0x7a, 0x04, 0xf9, 0x48, 0xdf, 0xc4, 0x24, 0x6f, 0x9c, 0x41, 0xdf, - 0xb8, 0xc6, 0x4f, 0xe9, 0x11, 0x84, 0xe6, 0xc0, 0xd2, 0x80, 0x11, 0x5a, 0x86, 0x59, 0x1b, 0x3b, - 0x6e, 0x47, 0x4e, 0x40, 0xbc, 0xa0, 0x5d, 0x98, 0x93, 0x6e, 0x43, 0xb6, 0xce, 0xc0, 0x42, 0x24, - 0x09, 0x43, 0x4f, 0xed, 0xa7, 0x0c, 0x2c, 0xa6, 0x04, 0x08, 0xed, 0x42, 0x8e, 0xfa, 0xa6, 0x1f, - 0x50, 0xce, 0xb7, 0x30, 0xfa, 0xd0, 0x8a, 0xdc, 0x0e, 0xb9, 0x8b, 0x2e, 0x5d, 0xd9, 0x69, 0xc3, - 0x37, 0xa9, 0xd1, 0x34, 0x69, 0x93, 0x4f, 0xb0, 0x28, 0xb7, 0xed, 0x03, 0x93, 0x36, 0x59, 0x2d, - 0x58, 0xc4, 0xe6, 0x4d, 0x9d, 0xa2, 0xb3, 0x47, 0xf4, 0x11, 0xcc, 0xf2, 0xbf, 0x65, 0x1b, 0xb6, - 0x31, 0x81, 0x60, 0xea, 0xc2, 0x43, 0xeb, 0x82, 0x12, 0x8d, 0x8d, 0x2e, 0x81, 0xfb, 0x21, 0x89, - 0xc8, 0xd8, 0xf5, 0x51, 0x19, 0x63, 0x90, 0x07, 0xa4, 0x43, 0x04, 0xae, 0x4c, 0x9c, 0x64, 0xfc, - 0x25, 0x03, 0xe7, 0x87, 0xaa, 0xec, 0x07, 0x4a, 0xde, 0x9d, 0x64, 0xf2, 0xb6, 0x26, 0x3e, 0x1b, - 0xc2, 0x80, 0xbe, 0xcb, 0xc0, 0x62, 0xea, 0xaf, 0xd1, 0x99, 0x3c, 0x48, 0x66, 0x72, 0x7b, 0xf4, - 0xde, 0x0b, 0x81, 0x4f, 0xc9, 0x27, 0xa3, 0x22, 0xd4, 0x10, 0xe0, 0x3c, 0xae, 0xbc, 0x9e, 0x27, - 0xf4, 0x11, 0x7f, 0xd7, 0xbe, 0xce, 0x42, 0x3e, 0x94, 0xeb, 0xd1, 0x93, 0x1a, 0xa8, 0xd8, 0xe9, - 0x21, 0x15, 0xbb, 0x02, 0x39, 0x42, 0x0f, 0x5c, 0xa7, 0x21, 0x89, 0xe4, 0x1b, 0xba, 0x03, 0xf9, - 0xe3, 0xc0, 0x74, 0x7c, 0xe2, 0xf7, 0x78, 0x1a, 0x95, 0xea, 0x06, 0x9b, 0xe2, 0x6f, 0xaf, 0xd7, - 0x2f, 0x0a, 0x05, 0xa1, 0x76, 0xab, 0x4c, 0xdc, 0x4a, 0xc7, 0xf4, 0x9b, 0xe5, 0x03, 0xdc, 0x30, - 0xad, 0xde, 0x1e, 0xb6, 0xf4, 0xc8, 0x89, 0xb5, 0x25, 0xd8, 0xf1, 0xbd, 0x9e, 0x38, 0x3d, 0x78, - 0xb3, 0x3f, 0x21, 0x06, 0x70, 0x3f, 0x7e, 0x72, 0xa0, 0x8f, 0x21, 0xd7, 0x31, 0xbd, 0x06, 0x71, - 0x78, 0x2f, 0x3f, 0x21, 0x80, 0x74, 0x41, 0xcf, 0x40, 0xb5, 0x82, 0x4e, 0xd0, 0x16, 0x07, 0x6e, - 0x3d, 0x70, 0x6c, 0xe2, 0x34, 0x0c, 0x8e, 0xce, 0x9b, 0xf6, 0x09, 0xe1, 0x56, 0xfa, 0x20, 0xf7, - 0x05, 0xc6, 0x27, 0x0c, 0x42, 0xf3, 0xa1, 0x10, 0x3b, 0xf1, 0x58, 0x26, 0x69, 0xaf, 0x53, 0x73, - 0xdb, 0x72, 0x21, 0xe4, 0x1b, 0x2b, 0x65, 0x91, 0x82, 0xe9, 0xc9, 0x29, 0x85, 0x07, 0x42, 0x30, - 0xc3, 0x34, 0x5a, 0xee, 0x6d, 0xfe, 0xac, 0xfd, 0x9c, 0x15, 0xf5, 0xcd, 0xfb, 0xab, 0xd1, 0x1b, - 0xe0, 0x3c, 0x5b, 0x5b, 0xa3, 0x16, 0xf4, 0x38, 0x75, 0x5e, 0x9f, 0x25, 0xb4, 0x1a, 0xf4, 0xd0, - 0x15, 0x98, 0xc7, 0xcf, 0xb1, 0x15, 0xb0, 0x1d, 0x74, 0xd4, 0x87, 0x4f, 0x0e, 0xfe, 0xfd, 0x0d, - 0x10, 0xc5, 0x3d, 0x7b, 0xe6, 0xb8, 0x07, 0x76, 0x6e, 0x6e, 0xc8, 0xce, 0xfd, 0x1f, 0x64, 0xeb, - 0x18, 0x9f, 0x65, 0x21, 0x99, 0x7d, 0x4a, 0x4d, 0xf2, 0x69, 0x35, 0xf9, 0x3f, 0x9c, 0xaf, 0x63, - 0x6c, 0x78, 0xd8, 0x22, 0x5d, 0x82, 0x1d, 0xdf, 0x30, 0x6d, 0xdb, 0xc3, 0x94, 0xf2, 0x2f, 0x22, - 0x45, 0x7e, 0x85, 0x9c, 0xab, 0x63, 0xac, 0x87, 0x16, 0xf7, 0x84, 0x41, 0xa8, 0x43, 0xd0, 0xd7, - 0xa1, 0x0b, 0x90, 0xe7, 0x8d, 0x34, 0x8b, 0xa0, 0x20, 0x4e, 0x73, 0xfe, 0xbe, 0x6f, 0x6b, 0xbf, - 0x67, 0xe3, 0x0a, 0xf3, 0x4f, 0xaf, 0xe5, 0x40, 0x3e, 0x67, 0x86, 0xe4, 0xf3, 0x31, 0x2c, 0x84, - 0xcd, 0x9f, 0x61, 0xe3, 0xb6, 0x6f, 0xca, 0x0f, 0xf4, 0xad, 0x51, 0x62, 0x16, 0x2a, 0xd1, 0x1e, - 0x73, 0xd0, 0xe7, 0xbb, 0xf1, 0x57, 0x56, 0xbc, 0x5d, 0xb3, 0xe7, 0x06, 0xfe, 0x99, 0x8a, 0x57, - 0xb8, 0xbc, 0xbf, 0xe5, 0x55, 0x3e, 0xc0, 0xf2, 0x1e, 0x41, 0x31, 0x71, 0x01, 0x72, 0x15, 0x16, - 0x12, 0x0b, 0xc0, 0xce, 0xc3, 0x2c, 0x5b, 0xa7, 0xf8, 0x0a, 0xf0, 0x93, 0x2e, 0xda, 0x01, 0xa2, - 0x81, 0x52, 0x74, 0x25, 0xdc, 0x02, 0x54, 0xfb, 0x1c, 0x16, 0x53, 0x9f, 0xdd, 0xef, 0x09, 0xf8, - 0x08, 0x8a, 0x89, 0xbb, 0x8e, 0xf7, 0x83, 0xba, 0x1d, 0x6b, 0xfa, 0x25, 0x70, 0xd2, 0x23, 0x33, - 0xe8, 0x81, 0x06, 0xef, 0xe4, 0xd0, 0x2a, 0xe4, 0x25, 0x69, 0xe8, 0x12, 0xbd, 0x6b, 0xf7, 0x40, - 0x3d, 0xed, 0x66, 0x6d, 0xc2, 0x28, 0xb4, 0x1b, 0xb0, 0x34, 0x70, 0xdb, 0x90, 0x10, 0xf3, 0x6c, - 0x5f, 0xcc, 0xaf, 0x1f, 0x30, 0xe3, 0x54, 0xa3, 0x82, 0x16, 0xa1, 0xf0, 0xc4, 0xa1, 0x5d, 0x6c, - 0x91, 0x3a, 0xc1, 0x76, 0x69, 0x0a, 0x01, 0xe4, 0xaa, 0xae, 0xdb, 0xc2, 0x76, 0x29, 0x83, 0x0a, - 0x30, 0xf7, 0xc8, 0xf4, 0xad, 0x26, 0xb6, 0x4b, 0xd3, 0x68, 0x1e, 0x94, 0x5d, 0x16, 0x5a, 0xbb, - 0x8d, 0xed, 0x52, 0x76, 0xa7, 0x01, 0x39, 0x71, 0x73, 0x81, 0x9e, 0x45, 0x4f, 0xd7, 0x46, 0xb4, - 0x7a, 0xf1, 0x6b, 0xcf, 0xd5, 0xcd, 0xf1, 0x86, 0xe2, 0x3a, 0x64, 0x3b, 0x53, 0xfd, 0xf2, 0xe5, - 0x9b, 0xb5, 0xcc, 0xab, 0x37, 0x6b, 0x99, 0x3f, 0xdf, 0xac, 0x65, 0x5e, 0xbc, 0x5d, 0x9b, 0x7a, - 0xf5, 0x76, 0x6d, 0xea, 0xd7, 0xb7, 0x6b, 0x53, 0x4f, 0xf7, 0x62, 0x5f, 0x08, 0xfb, 0x21, 0xde, - 0x81, 0x59, 0xa3, 0x95, 0x08, 0xfd, 0x96, 0xe5, 0x7a, 0x38, 0xfe, 0xda, 0x34, 0x89, 0x13, 0x5e, - 0x23, 0xf3, 0x6f, 0x88, 0x5a, 0x8e, 0xdf, 0xcd, 0xfe, 0xf7, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x78, 0x25, 0xda, 0xad, 0x67, 0x16, 0x00, 0x00, + // 1638 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0x46, + 0x16, 0xb7, 0x2c, 0x5b, 0x16, 0x9f, 0xfc, 0x21, 0x4f, 0x1c, 0x83, 0x71, 0x76, 0xed, 0x84, 0x4e, + 0x36, 0x76, 0x3e, 0x24, 0xc7, 0x8b, 0x05, 0x76, 0xb1, 0x87, 0x24, 0xb2, 0x37, 0x88, 0x03, 0x07, + 0x1b, 0xd0, 0xce, 0x2e, 0x10, 0x6c, 0x96, 0xe0, 0xc7, 0x48, 0x9a, 0x4a, 0x22, 0x65, 0x0e, 0x69, + 0x44, 0x7f, 0x41, 0x7b, 0x2a, 0x72, 0xed, 0xb1, 0xd7, 0x1e, 0xfa, 0x47, 0xb4, 0x97, 0x9c, 0x8a, + 0x1c, 0x8b, 0xa2, 0x48, 0x8b, 0xe4, 0x1f, 0x29, 0xe6, 0x83, 0x14, 0x49, 0xc9, 0x92, 0x9c, 0xa6, + 0x28, 0x7a, 0x12, 0x39, 0x7a, 0xef, 0xf7, 0x9b, 0xf7, 0x66, 0xde, 0x6f, 0x1e, 0x07, 0xae, 0x11, + 0xf7, 0x13, 0x6c, 0x07, 0xe4, 0x14, 0x57, 0x69, 0xe0, 0x63, 0xb3, 0x53, 0x3d, 0xbd, 0x6b, 0xe1, + 0xc0, 0xbc, 0x5b, 0x3d, 0x09, 0xb1, 0xdf, 0xab, 0x74, 0x7d, 0x2f, 0xf0, 0x90, 0x1a, 0x5b, 0x55, + 0x84, 0x55, 0x45, 0x5a, 0xad, 0xad, 0xdb, 0x1e, 0xed, 0x78, 0xb4, 0x6a, 0x99, 0x14, 0xc7, 0xae, + 0xb6, 0x47, 0x5c, 0xe1, 0xb9, 0xb6, 0xd2, 0xf0, 0x1a, 0x1e, 0x7f, 0xac, 0xb2, 0x27, 0x39, 0x7a, + 0xa3, 0xcf, 0x8a, 0x5f, 0xda, 0x4d, 0xd3, 0x6d, 0xf4, 0x9d, 0xf1, 0x29, 0x76, 0x03, 0x2a, 0x0d, + 0xb7, 0x47, 0x19, 0xca, 0x01, 0x61, 0xaa, 0x7d, 0x5e, 0x84, 0x85, 0x23, 0x3e, 0x39, 0x1d, 0x9f, + 0x84, 0x98, 0x06, 0xc8, 0x81, 0x15, 0xcb, 0x74, 0x5b, 0x86, 0x65, 0xb6, 0x4d, 0xd7, 0xc6, 0xd4, + 0xa8, 0x93, 0x76, 0x80, 0x7d, 0x35, 0x77, 0x25, 0xb7, 0x55, 0xda, 0xbd, 0x5d, 0x39, 0x2b, 0xa8, + 0x4a, 0xcd, 0x74, 0x5b, 0x35, 0xe9, 0xf4, 0x90, 0xfb, 0xd4, 0x66, 0x5e, 0xbf, 0xdd, 0xc8, 0xe9, + 0xc8, 0x1a, 0xf8, 0x07, 0x9d, 0xc2, 0x1a, 0x0d, 0x2d, 0xd3, 0xb6, 0xbd, 0xd0, 0x0d, 0x0c, 0x07, + 0x77, 0x3d, 0x4a, 0x82, 0x98, 0x6b, 0x9a, 0x73, 0xed, 0x9e, 0xcd, 0x75, 0x14, 0xfb, 0xee, 0x4b, + 0xd7, 0x14, 0xa3, 0x4a, 0xcf, 0xf8, 0x1f, 0x3d, 0x07, 0x44, 0xbb, 0x5e, 0x60, 0x04, 0xbe, 0xe9, + 0xf4, 0x63, 0xcb, 0x73, 0xbe, 0xbf, 0x9c, 0xcd, 0x77, 0xcc, 0xcd, 0x53, 0x1c, 0x65, 0x86, 0x93, + 0x1c, 0x47, 0x75, 0x50, 0x1d, 0xec, 0x93, 0x53, 0x93, 0x21, 0x64, 0x18, 0x66, 0x3e, 0x80, 0x61, + 0xb5, 0x8f, 0x96, 0xe2, 0x89, 0x62, 0xf0, 0x7c, 0x07, 0xfb, 0x31, 0xc3, 0xec, 0x38, 0x86, 0x7f, + 0x73, 0xf3, 0xc1, 0x18, 0x92, 0xe3, 0x99, 0x18, 0xd2, 0x0c, 0x85, 0x0f, 0x60, 0x48, 0xc4, 0x90, + 0xe2, 0xc1, 0xb0, 0xda, 0x8f, 0xc1, 0xf2, 0xbc, 0x56, 0xcc, 0x32, 0xc7, 0x59, 0xb6, 0xc7, 0xb0, + 0x30, 0x97, 0x14, 0xd1, 0x4a, 0x1c, 0x0a, 0x47, 0x93, 0x34, 0x27, 0xf0, 0xa7, 0x6c, 0x38, 0x29, + 0xb2, 0xe2, 0x87, 0x91, 0xad, 0x65, 0xa2, 0x4a, 0x52, 0x3e, 0x87, 0x32, 0xdf, 0x71, 0xc4, 0x73, + 0x63, 0x1a, 0x65, 0x1c, 0xcd, 0xd3, 0xc8, 0x23, 0x45, 0xb3, 0xd4, 0x4d, 0x0f, 0x23, 0x13, 0x2e, + 0x78, 0xbe, 0x69, 0xb7, 0xb1, 0xd1, 0xf5, 0x89, 0x8d, 0x23, 0x78, 0xe0, 0xf0, 0xb7, 0x46, 0x45, + 0xc1, 0x9c, 0x9e, 0x32, 0x9f, 0x14, 0xc1, 0xb2, 0x97, 0xfd, 0x43, 0xfb, 0x72, 0x0e, 0x16, 0x23, + 0x41, 0xa0, 0x5d, 0xcf, 0xa5, 0x18, 0x5d, 0x85, 0x79, 0xab, 0xed, 0xd9, 0x2d, 0xa3, 0x89, 0x49, + 0xa3, 0x19, 0x70, 0x25, 0x98, 0xd1, 0x4b, 0x7c, 0xec, 0x11, 0x1f, 0x42, 0x7f, 0x06, 0x10, 0x26, + 0x01, 0xe9, 0x60, 0x5e, 0xbe, 0x79, 0x5d, 0xe1, 0x23, 0xc7, 0xa4, 0x83, 0xd1, 0x63, 0x58, 0x48, + 0x69, 0x8a, 0x9a, 0xbf, 0x92, 0xdf, 0x2a, 0xed, 0x5e, 0x9f, 0x48, 0x4c, 0xf4, 0xf9, 0xa4, 0x7e, + 0xa0, 0x17, 0x70, 0x61, 0x88, 0x72, 0xa8, 0x33, 0x1c, 0xf1, 0xf6, 0x79, 0x24, 0x43, 0x47, 0x83, + 0x32, 0x81, 0xf6, 0xa1, 0x94, 0x10, 0x08, 0x75, 0x96, 0xc3, 0x6e, 0x8e, 0x80, 0x8d, 0x54, 0x40, + 0x87, 0xbe, 0x20, 0xa0, 0xff, 0xc0, 0xf2, 0x80, 0x14, 0xa8, 0x05, 0x8e, 0x35, 0x62, 0x17, 0xec, + 0xa7, 0xeb, 0x5d, 0x2f, 0x67, 0x05, 0x00, 0x3d, 0x96, 0xb3, 0x13, 0x85, 0xa9, 0xce, 0x8d, 0x43, + 0x3c, 0x8a, 0x8a, 0xe2, 0x59, 0xd7, 0x31, 0x03, 0x39, 0x47, 0x51, 0x88, 0xe8, 0x7f, 0xa9, 0x39, + 0x4a, 0xc4, 0x22, 0x47, 0xac, 0x4e, 0x32, 0xc7, 0x24, 0x6e, 0x39, 0x5b, 0xe6, 0xc8, 0xc8, 0x16, + 0xb8, 0x11, 0x72, 0x53, 0xaa, 0x2a, 0xe3, 0x26, 0x1d, 0x97, 0x94, 0x04, 0x4f, 0x97, 0xb6, 0x18, + 0xa4, 0xa8, 0x35, 0xbc, 0xb4, 0x63, 0x1a, 0x38, 0x2f, 0xcd, 0xb0, 0xa2, 0x8e, 0xc8, 0xee, 0x83, + 0x12, 0xd7, 0xa2, 0x5a, 0xe2, 0xc8, 0xda, 0xf8, 0x6a, 0xd6, 0xfb, 0x4e, 0xac, 0x04, 0x92, 0xa5, + 0x4b, 0xd5, 0xf9, 0x71, 0x25, 0x90, 0x28, 0x5a, 0x7d, 0x3e, 0x51, 0xa8, 0x54, 0xab, 0xc3, 0x52, + 0x66, 0x86, 0xa8, 0x0c, 0x79, 0x8a, 0x4f, 0x64, 0x69, 0xb2, 0x47, 0xf4, 0x00, 0x94, 0x38, 0x29, + 0xf2, 0x40, 0xdd, 0x9c, 0x20, 0x19, 0x7a, 0xdf, 0x4b, 0xfb, 0x3a, 0x07, 0x4a, 0xfc, 0x07, 0xba, + 0x0c, 0x4a, 0xc7, 0xf4, 0x5b, 0x38, 0x30, 0x88, 0xc3, 0x89, 0x14, 0xbd, 0x28, 0x06, 0x0e, 0x1c, + 0x74, 0x1f, 0xc0, 0x0a, 0x7b, 0x46, 0x1b, 0x9f, 0xe2, 0x36, 0x55, 0xa7, 0x79, 0x6c, 0x57, 0x13, + 0x74, 0x71, 0xdb, 0x11, 0x11, 0x1e, 0x32, 0x4b, 0x5d, 0xb1, 0xc2, 0x1e, 0x7f, 0xa2, 0xa8, 0x06, + 0x25, 0x8a, 0xdb, 0xed, 0x08, 0x22, 0x3f, 0x29, 0x04, 0x30, 0x2f, 0x81, 0xa1, 0xbd, 0xca, 0x41, + 0x29, 0xa1, 0x1c, 0x48, 0x85, 0x39, 0x59, 0xdf, 0x72, 0xc2, 0xd1, 0x2b, 0x6a, 0x40, 0x31, 0x16, + 0x23, 0x31, 0xdb, 0x4b, 0x15, 0xd1, 0x94, 0x55, 0x58, 0x53, 0x16, 0x73, 0xec, 0x79, 0xc4, 0xad, + 0xed, 0xbc, 0x7e, 0xbb, 0x31, 0xf5, 0xd5, 0x4f, 0x1b, 0x5b, 0x0d, 0x12, 0x34, 0x43, 0xab, 0x62, + 0x7b, 0x9d, 0xaa, 0xec, 0xe0, 0xc4, 0xcf, 0x1d, 0xea, 0xb4, 0xaa, 0x41, 0xaf, 0x8b, 0x29, 0x77, + 0xa0, 0x7a, 0x0c, 0xae, 0x7d, 0x96, 0x03, 0x34, 0x28, 0x3d, 0x68, 0x13, 0x16, 0x12, 0x2a, 0x16, + 0x27, 0x74, 0xbe, 0x3f, 0x78, 0xe0, 0xa0, 0x27, 0x50, 0x8c, 0xf5, 0x4d, 0x4c, 0xf2, 0xd6, 0x39, + 0xf4, 0x8d, 0x6b, 0xfc, 0x94, 0x1e, 0x43, 0x68, 0x2e, 0x2c, 0x0f, 0x18, 0xa1, 0x15, 0x98, 0x75, + 0xb0, 0xeb, 0x75, 0xe4, 0x04, 0xc4, 0x0b, 0xda, 0x83, 0x39, 0xe9, 0x36, 0x64, 0xeb, 0x0c, 0x2c, + 0x44, 0x9a, 0x30, 0xf2, 0xd4, 0xbe, 0xc9, 0xc1, 0x52, 0x46, 0x80, 0xd0, 0x1e, 0x14, 0x68, 0x60, + 0x06, 0x21, 0xe5, 0x7c, 0x8b, 0xa3, 0x0f, 0xad, 0xd8, 0xed, 0x88, 0xbb, 0xe8, 0xd2, 0x95, 0x9d, + 0x36, 0x7c, 0x93, 0x1a, 0x4d, 0x93, 0x36, 0xf9, 0x04, 0x15, 0xb9, 0x6d, 0x1f, 0x99, 0xb4, 0xc9, + 0x6a, 0xc1, 0x26, 0x0e, 0x6f, 0xea, 0x14, 0x9d, 0x3d, 0xa2, 0x7f, 0xc0, 0x2c, 0xff, 0x5b, 0xb6, + 0x61, 0x9b, 0x13, 0x08, 0xa6, 0x2e, 0x3c, 0xb4, 0x2e, 0x28, 0xf1, 0xd8, 0xe8, 0x12, 0x78, 0x18, + 0x91, 0x88, 0x8c, 0xdd, 0x1c, 0x95, 0x31, 0x06, 0x79, 0x48, 0x3a, 0x44, 0xe0, 0xca, 0xc4, 0x49, + 0xc6, 0xef, 0x72, 0x70, 0x71, 0xa8, 0xca, 0xfe, 0x4e, 0xc9, 0xbb, 0x97, 0x4e, 0xde, 0xf6, 0xc4, + 0x67, 0x43, 0x14, 0xd0, 0x17, 0x39, 0x58, 0xca, 0xfc, 0x35, 0x3a, 0x93, 0x87, 0xe9, 0x4c, 0xee, + 0x8c, 0xde, 0x7b, 0x11, 0xf0, 0x19, 0xf9, 0x64, 0x54, 0x84, 0x1a, 0x02, 0x9c, 0xc7, 0x55, 0xd4, + 0x8b, 0x84, 0x3e, 0xe1, 0xef, 0xda, 0xa7, 0x79, 0x28, 0x46, 0x72, 0x3d, 0x7a, 0x52, 0x03, 0x15, + 0x3b, 0x3d, 0xa4, 0x62, 0x57, 0xa1, 0x40, 0xe8, 0xa1, 0xe7, 0x36, 0x24, 0x91, 0x7c, 0x43, 0xf7, + 0xa0, 0x78, 0x12, 0x9a, 0x6e, 0x40, 0x82, 0x1e, 0x4f, 0xa3, 0x52, 0xdb, 0x64, 0x53, 0xfc, 0xe1, + 0xed, 0xc6, 0x65, 0xa1, 0x20, 0xd4, 0x69, 0x55, 0x88, 0x57, 0xed, 0x98, 0x41, 0xb3, 0x72, 0x88, + 0x1b, 0xa6, 0xdd, 0xdb, 0xc7, 0xb6, 0x1e, 0x3b, 0xb1, 0xb6, 0x04, 0xbb, 0x81, 0xdf, 0x13, 0xa7, + 0x07, 0x6f, 0xf6, 0x27, 0xc4, 0x00, 0xee, 0xc7, 0x4f, 0x0e, 0xf4, 0x4f, 0x28, 0x74, 0x4c, 0xbf, + 0x41, 0x5c, 0xde, 0xcb, 0x4f, 0x08, 0x20, 0x5d, 0xd0, 0x0b, 0x50, 0xed, 0xb0, 0x13, 0xb6, 0xc5, + 0x81, 0x5b, 0x0f, 0x5d, 0x87, 0xb8, 0x0d, 0x83, 0xa3, 0xf3, 0xa6, 0x7d, 0x42, 0xb8, 0xd5, 0x3e, + 0xc8, 0x43, 0x81, 0xf1, 0x2f, 0x06, 0xa1, 0x05, 0x50, 0x4a, 0x9c, 0x78, 0x2c, 0x93, 0xb4, 0xd7, + 0xb1, 0xbc, 0xb6, 0x5c, 0x08, 0xf9, 0xc6, 0x4a, 0x59, 0xa4, 0x60, 0x7a, 0x72, 0x4a, 0xe1, 0x81, + 0x10, 0xcc, 0x30, 0x8d, 0x96, 0x7b, 0x9b, 0x3f, 0x6b, 0xdf, 0xe6, 0x45, 0x7d, 0xf3, 0xfe, 0x6a, + 0xf4, 0x06, 0xb8, 0xc8, 0xd6, 0xd6, 0xb0, 0xc2, 0x1e, 0xa7, 0x2e, 0xea, 0xb3, 0x84, 0xd6, 0xc2, + 0x1e, 0xba, 0x06, 0x0b, 0xf8, 0x25, 0xb6, 0x43, 0xb6, 0x83, 0x8e, 0xfb, 0xf0, 0xe9, 0xc1, 0x5f, + 0xbf, 0x01, 0xe2, 0xb8, 0x67, 0xcf, 0x1d, 0xf7, 0xc0, 0xce, 0x2d, 0x0c, 0xd9, 0xb9, 0x7f, 0x83, + 0x7c, 0x1d, 0xe3, 0xf3, 0x2c, 0x24, 0xb3, 0xcf, 0xa8, 0x49, 0x31, 0xab, 0x26, 0x7f, 0x87, 0x8b, + 0x75, 0x8c, 0x0d, 0x1f, 0xdb, 0xa4, 0x4b, 0xb0, 0x1b, 0x18, 0xa6, 0xe3, 0xf8, 0x98, 0x52, 0xfe, + 0x45, 0xa4, 0xc8, 0xaf, 0x90, 0x0b, 0x75, 0x8c, 0xf5, 0xc8, 0xe2, 0x81, 0x30, 0x88, 0x74, 0x08, + 0xfa, 0x3a, 0x74, 0x09, 0x8a, 0xbc, 0x91, 0x66, 0x11, 0x94, 0xc4, 0x69, 0xce, 0xdf, 0x0f, 0x1c, + 0xed, 0xc7, 0x7c, 0x52, 0x61, 0x7e, 0xeb, 0xb5, 0x1c, 0xc8, 0xe7, 0xcc, 0x90, 0x7c, 0x3e, 0x85, + 0xc5, 0xa8, 0xf9, 0x33, 0x1c, 0xdc, 0x0e, 0x4c, 0xf9, 0x81, 0xbe, 0x3d, 0x4a, 0xcc, 0x22, 0x25, + 0xda, 0x67, 0x0e, 0xfa, 0x42, 0x37, 0xf9, 0xca, 0x8a, 0xb7, 0x6b, 0xf6, 0xbc, 0x30, 0x38, 0x57, + 0xf1, 0x0a, 0x97, 0x3f, 0xf6, 0xf2, 0x1e, 0xc3, 0x7c, 0xea, 0x02, 0xe4, 0x3a, 0x2c, 0xa6, 0x16, + 0x80, 0x9d, 0x87, 0x79, 0xb6, 0x4e, 0xc9, 0x15, 0xe0, 0x27, 0x5d, 0xbc, 0x03, 0x44, 0x03, 0xa5, + 0xe8, 0x4a, 0xb4, 0x05, 0xa8, 0xf6, 0x5f, 0x58, 0xca, 0x7c, 0x76, 0x7f, 0x24, 0xe0, 0x63, 0x98, + 0x4f, 0xdd, 0x75, 0x7c, 0x1c, 0xd4, 0x9d, 0x44, 0xd3, 0x2f, 0x81, 0xd3, 0x1e, 0xb9, 0x41, 0x0f, + 0x34, 0x78, 0x27, 0x87, 0xd6, 0xa0, 0x28, 0x49, 0x23, 0x97, 0xf8, 0x5d, 0x7b, 0x00, 0xea, 0x59, + 0x37, 0x6b, 0x13, 0x46, 0xa1, 0xdd, 0x82, 0xe5, 0x81, 0xdb, 0x86, 0x94, 0x98, 0xe7, 0xfb, 0x62, + 0x7e, 0xf3, 0x90, 0x19, 0x67, 0x1a, 0x15, 0xb4, 0x04, 0xa5, 0x67, 0x2e, 0xed, 0x62, 0x9b, 0xd4, + 0x09, 0x76, 0xca, 0x53, 0x08, 0xa0, 0x50, 0xf3, 0xbc, 0x16, 0x76, 0xca, 0x39, 0x54, 0x82, 0xb9, + 0x27, 0x66, 0x60, 0x37, 0xb1, 0x53, 0x9e, 0x46, 0x0b, 0xa0, 0xec, 0xb1, 0xd0, 0xda, 0x6d, 0xec, + 0x94, 0xf3, 0xbb, 0x0d, 0x28, 0x88, 0x9b, 0x0b, 0xf4, 0x22, 0x7e, 0xba, 0x31, 0xa2, 0xd5, 0x4b, + 0x5e, 0x7b, 0xae, 0x6d, 0x8d, 0x37, 0x14, 0xd7, 0x21, 0x3b, 0xb9, 0xda, 0xff, 0x5f, 0xbf, 0x5b, + 0xcf, 0xbd, 0x79, 0xb7, 0x9e, 0xfb, 0xf9, 0xdd, 0x7a, 0xee, 0xd5, 0xfb, 0xf5, 0xa9, 0x37, 0xef, + 0xd7, 0xa7, 0xbe, 0x7f, 0xbf, 0x3e, 0xf5, 0x7c, 0x3f, 0xf1, 0x85, 0x70, 0x10, 0xe1, 0x1d, 0x9a, + 0x16, 0xad, 0xc6, 0xe8, 0x77, 0x6c, 0xcf, 0xc7, 0xc9, 0xd7, 0xa6, 0x49, 0xdc, 0xe8, 0x1a, 0x99, + 0x7f, 0x43, 0x58, 0x05, 0x7e, 0x37, 0xfb, 0xd7, 0x5f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x42, + 0x1d, 0x82, 0x67, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5157,7 +5157,7 @@ func (m *SpotOrderUpdate) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5167,25 +5167,23 @@ func (m *SpotOrderUpdate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { @@ -5443,7 +5441,7 @@ func (m *DerivativeOrderUpdate) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5453,25 +5451,23 @@ func (m *DerivativeOrderUpdate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { @@ -6366,7 +6362,7 @@ func (m *SpotTrade) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -6376,25 +6372,23 @@ func (m *SpotTrade) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 9: if wireType != 2 { diff --git a/chain/stream/types/request.go b/chain/stream/types/request.go deleted file mode 100644 index 3bf542aa..00000000 --- a/chain/stream/types/request.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -func NewFullStreamRequest() *StreamRequest { - return &StreamRequest{ - BankBalancesFilter: &BankBalancesFilter{ - Accounts: []string{}, - }, - SpotOrdersFilter: &OrdersFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - DerivativeOrdersFilter: &OrdersFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - SpotTradesFilter: &TradesFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - SubaccountDepositsFilter: &SubaccountDepositsFilter{ - SubaccountIds: []string{"*"}, - }, - DerivativeOrderbooksFilter: &OrderbookFilter{ - MarketIds: []string{"*"}, - }, - SpotOrderbooksFilter: &OrderbookFilter{ - MarketIds: []string{"*"}, - }, - PositionsFilter: &PositionsFilter{ - SubaccountIds: []string{"*"}, - MarketIds: []string{"*"}, - }, - DerivativeTradesFilter: &TradesFilter{ - SubaccountIds: []string{"*"}, - MarketIds: []string{"*"}, - }, - OraclePriceFilter: &OraclePriceFilter{ - Symbol: []string{"*"}, - }, - } -} - -// Empty query matches any set of events. -type Empty struct { -} - -// Matches always returns true. -func (Empty) Matches(tags map[string][]string) (bool, error) { - return true, nil -} - -func (Empty) String() string { - return "empty" -} diff --git a/chain/stream/types/response.go b/chain/stream/types/response.go deleted file mode 100644 index 3a215960..00000000 --- a/chain/stream/types/response.go +++ /dev/null @@ -1,84 +0,0 @@ -package types - -import ( - "fmt" - "time" -) - -type StreamResponseMap struct { - tradeEventsCounter uint64 - BlockHeight uint64 - BlockTime time.Time - BankBalancesByAccount map[string][]*BankBalance - SpotOrdersBySubaccount map[string][]*SpotOrderUpdate - SpotOrdersByMarketID map[string][]*SpotOrderUpdate - DerivativeOrdersBySubaccount map[string][]*DerivativeOrderUpdate - DerivativeOrdersByMarketID map[string][]*DerivativeOrderUpdate - SpotOrderbookUpdatesByMarketID map[string][]*OrderbookUpdate - DerivativeOrderbookUpdatesByMarketID map[string][]*OrderbookUpdate - SubaccountDepositsBySubaccountID map[string][]*SubaccountDeposits - SpotTradesBySubaccount map[string][]*SpotTrade - SpotTradesByMarketID map[string][]*SpotTrade - DerivativeTradesBySubaccount map[string][]*DerivativeTrade - DerivativeTradesByMarketID map[string][]*DerivativeTrade - PositionsBySubaccount map[string][]*Position - PositionsByMarketID map[string][]*Position - OraclePriceBySymbol map[string][]*OraclePrice -} - -func NewStreamResponseMap() *StreamResponseMap { - return &StreamResponseMap{ - BankBalancesByAccount: map[string][]*BankBalance{}, - SpotOrdersBySubaccount: map[string][]*SpotOrderUpdate{}, - SpotOrdersByMarketID: map[string][]*SpotOrderUpdate{}, - DerivativeOrdersBySubaccount: map[string][]*DerivativeOrderUpdate{}, - DerivativeOrdersByMarketID: map[string][]*DerivativeOrderUpdate{}, - SpotOrderbookUpdatesByMarketID: map[string][]*OrderbookUpdate{}, - DerivativeOrderbookUpdatesByMarketID: map[string][]*OrderbookUpdate{}, - SubaccountDepositsBySubaccountID: map[string][]*SubaccountDeposits{}, - SpotTradesBySubaccount: map[string][]*SpotTrade{}, - SpotTradesByMarketID: map[string][]*SpotTrade{}, - DerivativeTradesBySubaccount: map[string][]*DerivativeTrade{}, - DerivativeTradesByMarketID: map[string][]*DerivativeTrade{}, - PositionsBySubaccount: map[string][]*Position{}, - PositionsByMarketID: map[string][]*Position{}, - OraclePriceBySymbol: map[string][]*OraclePrice{}, - } -} - -func NewChainStreamResponse() *StreamResponse { - return &StreamResponse{ - BankBalances: []*BankBalance{}, - SubaccountDeposits: []*SubaccountDeposits{}, - SpotTrades: []*SpotTrade{}, - DerivativeTrades: []*DerivativeTrade{}, - SpotOrders: []*SpotOrderUpdate{}, - DerivativeOrders: []*DerivativeOrderUpdate{}, - SpotOrderbookUpdates: []*OrderbookUpdate{}, - DerivativeOrderbookUpdates: []*OrderbookUpdate{}, - Positions: []*Position{}, - OraclePrices: []*OraclePrice{}, - } -} - -func (m *StreamRequest) Validate() error { - if m.BankBalancesFilter == nil && - m.SubaccountDepositsFilter == nil && - m.SpotTradesFilter == nil && - m.DerivativeTradesFilter == nil && - m.SpotOrdersFilter == nil && - m.DerivativeOrdersFilter == nil && - m.SpotOrderbooksFilter == nil && - m.DerivativeOrderbooksFilter == nil && - m.PositionsFilter == nil && - m.OraclePriceFilter == nil { - return fmt.Errorf("at least one filter must be set") - } - return nil -} - -func (m *StreamResponseMap) NextTradeEventNumber() (tradeNumber uint64) { - currentTradesNumber := m.tradeEventsCounter - m.tradeEventsCounter++ - return currentTradesNumber -} diff --git a/chain/tokenfactory/types/authorityMetadata.go b/chain/tokenfactory/types/authorityMetadata.go deleted file mode 100644 index b45bffca..00000000 --- a/chain/tokenfactory/types/authorityMetadata.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func (metadata DenomAuthorityMetadata) Validate() error { - if metadata.Admin != "" { - _, err := sdk.AccAddressFromBech32(metadata.Admin) - if err != nil { - return err - } - } - return nil -} diff --git a/chain/tokenfactory/types/authorityMetadata.pb.go b/chain/tokenfactory/types/authorityMetadata.pb.go index 51337590..381387ae 100644 --- a/chain/tokenfactory/types/authorityMetadata.pb.go +++ b/chain/tokenfactory/types/authorityMetadata.pb.go @@ -30,6 +30,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type DenomAuthorityMetadata struct { // Can be empty for no admin, or a valid injective address Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty" yaml:"admin"` + // true if the admin can burn tokens from other addresses + AdminBurnAllowed bool `protobuf:"varint,2,opt,name=admin_burn_allowed,json=adminBurnAllowed,proto3" json:"admin_burn_allowed,omitempty" yaml:"admin_burn_allowed"` } func (m *DenomAuthorityMetadata) Reset() { *m = DenomAuthorityMetadata{} } @@ -72,6 +74,13 @@ func (m *DenomAuthorityMetadata) GetAdmin() string { return "" } +func (m *DenomAuthorityMetadata) GetAdminBurnAllowed() bool { + if m != nil { + return m.AdminBurnAllowed + } + return false +} + func init() { proto.RegisterType((*DenomAuthorityMetadata)(nil), "injective.tokenfactory.v1beta1.DenomAuthorityMetadata") } @@ -81,24 +90,27 @@ func init() { } var fileDescriptor_525494b77b96b2d3 = []byte{ - // 258 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xcb, 0xcc, 0xcb, 0x4a, - 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0xc9, 0xcf, 0x4e, 0xcd, 0x4b, 0x4b, 0x4c, 0x2e, 0xc9, - 0x2f, 0xaa, 0xd4, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xc8, - 0x2f, 0xca, 0x2c, 0xa9, 0xf4, 0x4d, 0x2d, 0x49, 0x4c, 0x49, 0x2c, 0x49, 0xd4, 0x2b, 0x28, 0xca, - 0x2f, 0xc9, 0x17, 0x92, 0x83, 0xeb, 0xd3, 0x43, 0xd6, 0xa7, 0x07, 0xd5, 0x27, 0x25, 0x92, 0x9e, - 0x9f, 0x9e, 0x0f, 0x56, 0xaa, 0x0f, 0x62, 0x41, 0x74, 0x49, 0xc9, 0x25, 0xe7, 0x17, 0xe7, 0xe6, - 0x17, 0xeb, 0x27, 0x25, 0x16, 0xa7, 0xc2, 0xad, 0x48, 0xce, 0xcf, 0xcc, 0x83, 0xc8, 0x2b, 0xb9, - 0x71, 0x89, 0xb9, 0xa4, 0xe6, 0xe5, 0xe7, 0x3a, 0xa2, 0xdb, 0x2a, 0xa4, 0xc6, 0xc5, 0x9a, 0x98, - 0x92, 0x9b, 0x99, 0x27, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0xe9, 0x24, 0xf0, 0xe9, 0x9e, 0x3c, 0x4f, - 0x65, 0x62, 0x6e, 0x8e, 0x95, 0x12, 0x58, 0x58, 0x29, 0x08, 0x22, 0x6d, 0xc5, 0xf2, 0x62, 0x81, - 0x3c, 0xa3, 0x53, 0xce, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, - 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x05, 0xa5, - 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0x7b, 0xc2, 0xbc, 0xe0, 0x93, 0x98, - 0x54, 0xac, 0x0f, 0xf7, 0x90, 0x6e, 0x72, 0x7e, 0x51, 0x2a, 0x32, 0x37, 0x23, 0x31, 0x33, 0x4f, - 0x3f, 0x37, 0x3f, 0xa5, 0x34, 0x27, 0xb5, 0x18, 0x35, 0x94, 0x4a, 0x2a, 0x0b, 0x52, 0x8b, 0x93, - 0xd8, 0xc0, 0x8e, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x17, 0x16, 0x28, 0x7a, 0x4c, 0x01, - 0x00, 0x00, + // 305 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xb1, 0x4a, 0x33, 0x41, + 0x10, 0xc7, 0xb3, 0x1f, 0x9f, 0xa2, 0x87, 0x45, 0x38, 0x44, 0x62, 0xc0, 0x4d, 0xb8, 0x42, 0xd2, + 0x78, 0x4b, 0x10, 0x2c, 0xd2, 0xe5, 0xb0, 0x11, 0xb5, 0x49, 0x69, 0x13, 0x66, 0xf7, 0xd6, 0x64, + 0xf5, 0x76, 0x27, 0xec, 0xee, 0x45, 0xee, 0x2d, 0x04, 0x5f, 0xc0, 0xc7, 0xb1, 0x4c, 0x69, 0x15, + 0x24, 0x69, 0xac, 0xf3, 0x04, 0xe2, 0x9d, 0x86, 0xc4, 0x6e, 0xe6, 0x3f, 0xf3, 0xe3, 0x0f, 0xbf, + 0xe0, 0x42, 0x99, 0x07, 0x29, 0xbc, 0x9a, 0x4a, 0xe6, 0xf1, 0x51, 0x9a, 0x7b, 0x10, 0x1e, 0x6d, + 0xc1, 0xa6, 0x5d, 0x2e, 0x3d, 0x74, 0x19, 0xe4, 0x7e, 0x8c, 0x56, 0xf9, 0xe2, 0x56, 0x7a, 0x48, + 0xc1, 0x43, 0x3c, 0xb1, 0xe8, 0x31, 0xa4, 0x6b, 0x2e, 0xde, 0xe4, 0xe2, 0x1f, 0xae, 0x79, 0x38, + 0xc2, 0x11, 0x96, 0xaf, 0xec, 0x7b, 0xaa, 0xa8, 0x26, 0x15, 0xe8, 0x34, 0x3a, 0xc6, 0xc1, 0xc9, + 0x75, 0x85, 0x40, 0x65, 0xaa, 0x7b, 0xf4, 0x42, 0x82, 0xa3, 0x4b, 0x69, 0x50, 0xf7, 0xff, 0xd6, + 0x86, 0xa7, 0xc1, 0x0e, 0xa4, 0x5a, 0x99, 0x06, 0x69, 0x93, 0xce, 0x7e, 0x52, 0x5f, 0xcd, 0x5b, + 0x07, 0x05, 0xe8, 0xac, 0x17, 0x95, 0x71, 0x34, 0xa8, 0xce, 0xe1, 0x75, 0x10, 0x96, 0xc3, 0x90, + 0xe7, 0xd6, 0x0c, 0x21, 0xcb, 0xf0, 0x49, 0xa6, 0x8d, 0x7f, 0x6d, 0xd2, 0xd9, 0x4b, 0x4e, 0x56, + 0xf3, 0xd6, 0xf1, 0x06, 0xb4, 0xf5, 0x13, 0x0d, 0xea, 0x65, 0x98, 0xe4, 0xd6, 0xf4, 0xab, 0xa8, + 0xf7, 0xff, 0xf3, 0xb5, 0x45, 0x92, 0xec, 0x6d, 0x41, 0xc9, 0x6c, 0x41, 0xc9, 0xc7, 0x82, 0x92, + 0xe7, 0x25, 0xad, 0xcd, 0x96, 0xb4, 0xf6, 0xbe, 0xa4, 0xb5, 0xbb, 0xc1, 0x48, 0xf9, 0x71, 0xce, + 0x63, 0x81, 0x9a, 0x5d, 0xfd, 0x0a, 0xb9, 0x01, 0xee, 0xd8, 0x5a, 0xcf, 0x99, 0x40, 0x2b, 0x37, + 0xd7, 0x31, 0x28, 0xc3, 0x34, 0xa6, 0x79, 0x26, 0xdd, 0xb6, 0x73, 0x5f, 0x4c, 0xa4, 0xe3, 0xbb, + 0xa5, 0x8a, 0xf3, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x06, 0x42, 0x33, 0x9a, 0x01, 0x00, + 0x00, } func (this *DenomAuthorityMetadata) Equal(that interface{}) bool { @@ -123,6 +135,9 @@ func (this *DenomAuthorityMetadata) Equal(that interface{}) bool { if this.Admin != that1.Admin { return false } + if this.AdminBurnAllowed != that1.AdminBurnAllowed { + return false + } return true } func (m *DenomAuthorityMetadata) Marshal() (dAtA []byte, err error) { @@ -145,6 +160,16 @@ func (m *DenomAuthorityMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.AdminBurnAllowed { + i-- + if m.AdminBurnAllowed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } if len(m.Admin) > 0 { i -= len(m.Admin) copy(dAtA[i:], m.Admin) @@ -176,6 +201,9 @@ func (m *DenomAuthorityMetadata) Size() (n int) { if l > 0 { n += 1 + l + sovAuthorityMetadata(uint64(l)) } + if m.AdminBurnAllowed { + n += 2 + } return n } @@ -246,6 +274,26 @@ func (m *DenomAuthorityMetadata) Unmarshal(dAtA []byte) error { } m.Admin = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminBurnAllowed", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthorityMetadata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AdminBurnAllowed = bool(v != 0) default: iNdEx = preIndex skippy, err := skipAuthorityMetadata(dAtA[iNdEx:]) diff --git a/chain/tokenfactory/types/denoms.go b/chain/tokenfactory/types/denoms.go deleted file mode 100644 index a31d5cef..00000000 --- a/chain/tokenfactory/types/denoms.go +++ /dev/null @@ -1,117 +0,0 @@ -package types - -import ( - "context" - "fmt" - "strings" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -const ( - ModuleDenomPrefix = "factory" - // See the TokenFactory readme for a derivation of these. - // TL;DR, MaxSubdenomLength + MaxHrpLength = 60 comes from SDK max denom length = 128 - // and the structure of tokenfactory denoms. - MaxSubdenomLength = 44 - MaxHrpLength = 16 - // MaxCreatorLength = 59 + MaxHrpLength - MaxCreatorLength = 59 + MaxHrpLength - MinSubdenomLength = 1 -) - -// GetTokenDenom constructs a denom string for tokens created by tokenfactory -// based on an input creator address and a subdenom -// The denom constructed is factory/{creator}/{subdenom} -func GetTokenDenom(creator, subdenom string) (string, error) { - if len(subdenom) > MaxSubdenomLength { - return "", ErrSubdenomTooLong - } - if len(subdenom) < MinSubdenomLength { - return "", ErrSubdenomTooShort - } - - strParts := strings.Split(subdenom, "/") - - for idx := range strParts { - if len(strParts[idx]) < MinSubdenomLength { - return "", ErrSubdenomNestedTooShort - } - } - - if len(creator) > MaxCreatorLength { - return "", ErrCreatorTooLong - } - if strings.Contains(creator, "/") || len(creator) < 1 { - return "", ErrInvalidCreator - } - - // ensure creator address is in lowercase Bech32 form - creatorAddr, err := sdk.AccAddressFromBech32(creator) - if err != nil { - return "", err - } - - denom := strings.Join([]string{ModuleDenomPrefix, creatorAddr.String(), subdenom}, "/") - return denom, sdk.ValidateDenom(denom) -} - -// DeconstructDenom takes a token denom string and verifies that it is a valid -// denom of the tokenfactory module, and is of the form `factory/{creator}/{subdenom}` -// If valid, it returns the creator address and subdenom -func DeconstructDenom(denom string) (creator, subdenom string, err error) { - err = sdk.ValidateDenom(denom) - if err != nil { - return "", "", err - } - - strParts := strings.Split(denom, "/") - if len(strParts) < 3 { - return "", "", errors.Wrapf(ErrInvalidDenom, "not enough parts of denom %s", denom) - } - - if strParts[0] != ModuleDenomPrefix { - return "", "", errors.Wrapf(ErrInvalidDenom, "denom prefix is incorrect. Is: %s. Should be: %s", strParts[0], ModuleDenomPrefix) - } - - creator = strParts[1] - creatorAddr, err := sdk.AccAddressFromBech32(creator) - if err != nil { - return "", "", errors.Wrapf(ErrInvalidDenom, "Invalid creator address (%s)", err) - } - - if len(strParts[2]) < MinSubdenomLength { - return "", "", errors.Wrapf(ErrSubdenomTooShort, "subdenom too short. Has length of: %d. Should have length at least of: %d", len(strParts[2]), MinSubdenomLength) - } - - if len(strParts) > 3 { - for i := 2; i <= len(strParts)-1; i++ { - if len(strParts[i]) < MinSubdenomLength { - return "", "", errors.Wrapf(ErrSubdenomNestedTooShort, "nested subdenom too short. Has length of: %d. Should have length at least of: %d", len(strParts[i]), MinSubdenomLength) - } - } - } - - // Handle the case where a denom has a slash in its subdenom. For example, - // when we did the split, we'd turn factory/accaddr/atomderivative/sikka into ["factory", "accaddr", "atomderivative", "sikka"] - // So we have to join [2:] with a "/" as the delimiter to get back the correct subdenom which should be "atomderivative/sikka" - subdenom = strings.Join(strParts[2:], "/") - - return creatorAddr.String(), subdenom, nil -} - -// NewTokenFactoryDenomMintCoinsRestriction creates and returns a MintingRestrictionFn that only allows minting of -// valid tokenfactory denoms -func NewTokenFactoryDenomMintCoinsRestriction() banktypes.MintingRestrictionFn { - return func(ctx context.Context, coinsToMint sdk.Coins) error { - for _, coin := range coinsToMint { - _, _, err := DeconstructDenom(coin.Denom) - if err != nil { - return fmt.Errorf("does not have permission to mint %s", coin.Denom) - } - } - return nil - } -} diff --git a/chain/tokenfactory/types/errors.go b/chain/tokenfactory/types/errors.go deleted file mode 100644 index 48ebec3a..00000000 --- a/chain/tokenfactory/types/errors.go +++ /dev/null @@ -1,25 +0,0 @@ -package types - -// DONTCOVER - -import ( - "fmt" - - "cosmossdk.io/errors" -) - -// x/tokenfactory module sentinel errors -var ( - ErrDenomExists = errors.Register(ModuleName, 2, "attempting to create a denom that already exists (has bank metadata)") - ErrUnauthorized = errors.Register(ModuleName, 3, "unauthorized account") - ErrInvalidDenom = errors.Register(ModuleName, 4, "invalid denom") - ErrInvalidCreator = errors.Register(ModuleName, 5, "invalid creator") - ErrInvalidAuthorityMetadata = errors.Register(ModuleName, 6, "invalid authority metadata") - ErrInvalidGenesis = errors.Register(ModuleName, 7, "invalid genesis") - ErrSubdenomTooLong = errors.Register(ModuleName, 8, fmt.Sprintf("subdenom too long, max length is %d bytes", MaxSubdenomLength)) - ErrSubdenomTooShort = errors.Register(ModuleName, 9, fmt.Sprintf("subdenom too short, min length is %d bytes", MinSubdenomLength)) - ErrSubdenomNestedTooShort = errors.Register(ModuleName, 10, fmt.Sprintf("nested subdenom too short, each one should have at least %d bytes", MinSubdenomLength)) - ErrCreatorTooLong = errors.Register(ModuleName, 11, fmt.Sprintf("creator too long, max length is %d bytes", MaxCreatorLength)) - ErrDenomDoesNotExist = errors.Register(ModuleName, 12, "denom does not exist") - ErrAmountNotPositive = errors.Register(ModuleName, 13, "amount has to be positive") -) diff --git a/chain/tokenfactory/types/events.pb.go b/chain/tokenfactory/types/events.pb.go index 8d71b85d..d6e06990 100644 --- a/chain/tokenfactory/types/events.pb.go +++ b/chain/tokenfactory/types/events.pb.go @@ -25,23 +25,23 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -type EventCreateTFDenom struct { +type EventCreateDenom struct { Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *EventCreateTFDenom) Reset() { *m = EventCreateTFDenom{} } -func (m *EventCreateTFDenom) String() string { return proto.CompactTextString(m) } -func (*EventCreateTFDenom) ProtoMessage() {} -func (*EventCreateTFDenom) Descriptor() ([]byte, []int) { +func (m *EventCreateDenom) Reset() { *m = EventCreateDenom{} } +func (m *EventCreateDenom) String() string { return proto.CompactTextString(m) } +func (*EventCreateDenom) ProtoMessage() {} +func (*EventCreateDenom) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{0} } -func (m *EventCreateTFDenom) XXX_Unmarshal(b []byte) error { +func (m *EventCreateDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventCreateTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventCreateDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventCreateTFDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventCreateDenom.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -51,49 +51,50 @@ func (m *EventCreateTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *EventCreateTFDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventCreateTFDenom.Merge(m, src) +func (m *EventCreateDenom) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCreateDenom.Merge(m, src) } -func (m *EventCreateTFDenom) XXX_Size() int { +func (m *EventCreateDenom) XXX_Size() int { return m.Size() } -func (m *EventCreateTFDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventCreateTFDenom.DiscardUnknown(m) +func (m *EventCreateDenom) XXX_DiscardUnknown() { + xxx_messageInfo_EventCreateDenom.DiscardUnknown(m) } -var xxx_messageInfo_EventCreateTFDenom proto.InternalMessageInfo +var xxx_messageInfo_EventCreateDenom proto.InternalMessageInfo -func (m *EventCreateTFDenom) GetAccount() string { +func (m *EventCreateDenom) GetAccount() string { if m != nil { return m.Account } return "" } -func (m *EventCreateTFDenom) GetDenom() string { +func (m *EventCreateDenom) GetDenom() string { if m != nil { return m.Denom } return "" } -type EventMintTFDenom struct { - RecipientAddress string `protobuf:"bytes,1,opt,name=recipient_address,json=recipientAddress,proto3" json:"recipient_address,omitempty"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` +type EventMint struct { + Minter string `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` } -func (m *EventMintTFDenom) Reset() { *m = EventMintTFDenom{} } -func (m *EventMintTFDenom) String() string { return proto.CompactTextString(m) } -func (*EventMintTFDenom) ProtoMessage() {} -func (*EventMintTFDenom) Descriptor() ([]byte, []int) { +func (m *EventMint) Reset() { *m = EventMint{} } +func (m *EventMint) String() string { return proto.CompactTextString(m) } +func (*EventMint) ProtoMessage() {} +func (*EventMint) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{1} } -func (m *EventMintTFDenom) XXX_Unmarshal(b []byte) error { +func (m *EventMint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventMintTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventMint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventMintTFDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventMint.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -103,49 +104,57 @@ func (m *EventMintTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, er return b[:n], nil } } -func (m *EventMintTFDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventMintTFDenom.Merge(m, src) +func (m *EventMint) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMint.Merge(m, src) } -func (m *EventMintTFDenom) XXX_Size() int { +func (m *EventMint) XXX_Size() int { return m.Size() } -func (m *EventMintTFDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventMintTFDenom.DiscardUnknown(m) +func (m *EventMint) XXX_DiscardUnknown() { + xxx_messageInfo_EventMint.DiscardUnknown(m) } -var xxx_messageInfo_EventMintTFDenom proto.InternalMessageInfo +var xxx_messageInfo_EventMint proto.InternalMessageInfo -func (m *EventMintTFDenom) GetRecipientAddress() string { +func (m *EventMint) GetMinter() string { if m != nil { - return m.RecipientAddress + return m.Minter } return "" } -func (m *EventMintTFDenom) GetAmount() types.Coin { +func (m *EventMint) GetAmount() types.Coin { if m != nil { return m.Amount } return types.Coin{} } -type EventBurnDenom struct { - BurnerAddress string `protobuf:"bytes,1,opt,name=burner_address,json=burnerAddress,proto3" json:"burner_address,omitempty"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` +func (m *EventMint) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + +type EventBurn struct { + Burner string `protobuf:"bytes,1,opt,name=burner,proto3" json:"burner,omitempty"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` + BurnFrom string `protobuf:"bytes,3,opt,name=burn_from,json=burnFrom,proto3" json:"burn_from,omitempty"` } -func (m *EventBurnDenom) Reset() { *m = EventBurnDenom{} } -func (m *EventBurnDenom) String() string { return proto.CompactTextString(m) } -func (*EventBurnDenom) ProtoMessage() {} -func (*EventBurnDenom) Descriptor() ([]byte, []int) { +func (m *EventBurn) Reset() { *m = EventBurn{} } +func (m *EventBurn) String() string { return proto.CompactTextString(m) } +func (*EventBurn) ProtoMessage() {} +func (*EventBurn) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{2} } -func (m *EventBurnDenom) XXX_Unmarshal(b []byte) error { +func (m *EventBurn) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventBurnDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventBurn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventBurnDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventBurn.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -155,49 +164,56 @@ func (m *EventBurnDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro return b[:n], nil } } -func (m *EventBurnDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventBurnDenom.Merge(m, src) +func (m *EventBurn) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBurn.Merge(m, src) } -func (m *EventBurnDenom) XXX_Size() int { +func (m *EventBurn) XXX_Size() int { return m.Size() } -func (m *EventBurnDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventBurnDenom.DiscardUnknown(m) +func (m *EventBurn) XXX_DiscardUnknown() { + xxx_messageInfo_EventBurn.DiscardUnknown(m) } -var xxx_messageInfo_EventBurnDenom proto.InternalMessageInfo +var xxx_messageInfo_EventBurn proto.InternalMessageInfo -func (m *EventBurnDenom) GetBurnerAddress() string { +func (m *EventBurn) GetBurner() string { if m != nil { - return m.BurnerAddress + return m.Burner } return "" } -func (m *EventBurnDenom) GetAmount() types.Coin { +func (m *EventBurn) GetAmount() types.Coin { if m != nil { return m.Amount } return types.Coin{} } -type EventChangeTFAdmin struct { +func (m *EventBurn) GetBurnFrom() string { + if m != nil { + return m.BurnFrom + } + return "" +} + +type EventChangeAdmin struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` NewAdminAddress string `protobuf:"bytes,2,opt,name=new_admin_address,json=newAdminAddress,proto3" json:"new_admin_address,omitempty"` } -func (m *EventChangeTFAdmin) Reset() { *m = EventChangeTFAdmin{} } -func (m *EventChangeTFAdmin) String() string { return proto.CompactTextString(m) } -func (*EventChangeTFAdmin) ProtoMessage() {} -func (*EventChangeTFAdmin) Descriptor() ([]byte, []int) { +func (m *EventChangeAdmin) Reset() { *m = EventChangeAdmin{} } +func (m *EventChangeAdmin) String() string { return proto.CompactTextString(m) } +func (*EventChangeAdmin) ProtoMessage() {} +func (*EventChangeAdmin) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{3} } -func (m *EventChangeTFAdmin) XXX_Unmarshal(b []byte) error { +func (m *EventChangeAdmin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventChangeTFAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventChangeAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventChangeTFAdmin.Marshal(b, m, deterministic) + return xxx_messageInfo_EventChangeAdmin.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -207,49 +223,49 @@ func (m *EventChangeTFAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *EventChangeTFAdmin) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventChangeTFAdmin.Merge(m, src) +func (m *EventChangeAdmin) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventChangeAdmin.Merge(m, src) } -func (m *EventChangeTFAdmin) XXX_Size() int { +func (m *EventChangeAdmin) XXX_Size() int { return m.Size() } -func (m *EventChangeTFAdmin) XXX_DiscardUnknown() { - xxx_messageInfo_EventChangeTFAdmin.DiscardUnknown(m) +func (m *EventChangeAdmin) XXX_DiscardUnknown() { + xxx_messageInfo_EventChangeAdmin.DiscardUnknown(m) } -var xxx_messageInfo_EventChangeTFAdmin proto.InternalMessageInfo +var xxx_messageInfo_EventChangeAdmin proto.InternalMessageInfo -func (m *EventChangeTFAdmin) GetDenom() string { +func (m *EventChangeAdmin) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *EventChangeTFAdmin) GetNewAdminAddress() string { +func (m *EventChangeAdmin) GetNewAdminAddress() string { if m != nil { return m.NewAdminAddress } return "" } -type EventSetTFDenomMetadata struct { +type EventSetDenomMetadata struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata"` } -func (m *EventSetTFDenomMetadata) Reset() { *m = EventSetTFDenomMetadata{} } -func (m *EventSetTFDenomMetadata) String() string { return proto.CompactTextString(m) } -func (*EventSetTFDenomMetadata) ProtoMessage() {} -func (*EventSetTFDenomMetadata) Descriptor() ([]byte, []int) { +func (m *EventSetDenomMetadata) Reset() { *m = EventSetDenomMetadata{} } +func (m *EventSetDenomMetadata) String() string { return proto.CompactTextString(m) } +func (*EventSetDenomMetadata) ProtoMessage() {} +func (*EventSetDenomMetadata) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{4} } -func (m *EventSetTFDenomMetadata) XXX_Unmarshal(b []byte) error { +func (m *EventSetDenomMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventSetTFDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventSetDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventSetTFDenomMetadata.Marshal(b, m, deterministic) + return xxx_messageInfo_EventSetDenomMetadata.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -259,26 +275,26 @@ func (m *EventSetTFDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]b return b[:n], nil } } -func (m *EventSetTFDenomMetadata) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventSetTFDenomMetadata.Merge(m, src) +func (m *EventSetDenomMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSetDenomMetadata.Merge(m, src) } -func (m *EventSetTFDenomMetadata) XXX_Size() int { +func (m *EventSetDenomMetadata) XXX_Size() int { return m.Size() } -func (m *EventSetTFDenomMetadata) XXX_DiscardUnknown() { - xxx_messageInfo_EventSetTFDenomMetadata.DiscardUnknown(m) +func (m *EventSetDenomMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_EventSetDenomMetadata.DiscardUnknown(m) } -var xxx_messageInfo_EventSetTFDenomMetadata proto.InternalMessageInfo +var xxx_messageInfo_EventSetDenomMetadata proto.InternalMessageInfo -func (m *EventSetTFDenomMetadata) GetDenom() string { +func (m *EventSetDenomMetadata) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *EventSetTFDenomMetadata) GetMetadata() types1.Metadata { +func (m *EventSetDenomMetadata) GetMetadata() types1.Metadata { if m != nil { return m.Metadata } @@ -286,11 +302,11 @@ func (m *EventSetTFDenomMetadata) GetMetadata() types1.Metadata { } func init() { - proto.RegisterType((*EventCreateTFDenom)(nil), "injective.tokenfactory.v1beta1.EventCreateTFDenom") - proto.RegisterType((*EventMintTFDenom)(nil), "injective.tokenfactory.v1beta1.EventMintTFDenom") - proto.RegisterType((*EventBurnDenom)(nil), "injective.tokenfactory.v1beta1.EventBurnDenom") - proto.RegisterType((*EventChangeTFAdmin)(nil), "injective.tokenfactory.v1beta1.EventChangeTFAdmin") - proto.RegisterType((*EventSetTFDenomMetadata)(nil), "injective.tokenfactory.v1beta1.EventSetTFDenomMetadata") + proto.RegisterType((*EventCreateDenom)(nil), "injective.tokenfactory.v1beta1.EventCreateDenom") + proto.RegisterType((*EventMint)(nil), "injective.tokenfactory.v1beta1.EventMint") + proto.RegisterType((*EventBurn)(nil), "injective.tokenfactory.v1beta1.EventBurn") + proto.RegisterType((*EventChangeAdmin)(nil), "injective.tokenfactory.v1beta1.EventChangeAdmin") + proto.RegisterType((*EventSetDenomMetadata)(nil), "injective.tokenfactory.v1beta1.EventSetDenomMetadata") } func init() { @@ -298,38 +314,39 @@ func init() { } var fileDescriptor_b9fd0c5434c2a5b7 = []byte{ - // 442 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x52, 0xc1, 0x6a, 0x14, 0x41, - 0x10, 0xdd, 0x11, 0x8d, 0xda, 0x62, 0x4c, 0x86, 0x80, 0x6b, 0xc0, 0x51, 0x16, 0x04, 0x31, 0x38, - 0x43, 0x14, 0xf4, 0x28, 0xd9, 0xc4, 0x80, 0x60, 0x2e, 0x6b, 0xf0, 0xe0, 0x25, 0xf4, 0xf4, 0x94, - 0xbb, 0xed, 0x66, 0xaa, 0x86, 0xee, 0x9a, 0x8d, 0xfb, 0x17, 0x7e, 0x56, 0x8e, 0x39, 0x7a, 0x12, - 0xd9, 0xfd, 0x11, 0x99, 0x99, 0xee, 0xce, 0xaa, 0x88, 0x87, 0xdc, 0xa6, 0xba, 0x5e, 0xbd, 0x57, - 0xef, 0x4d, 0x89, 0x1d, 0x8d, 0x5f, 0x40, 0xb1, 0x9e, 0x41, 0xc6, 0x34, 0x05, 0xfc, 0x2c, 0x15, - 0x93, 0x99, 0x67, 0xb3, 0xdd, 0x1c, 0x58, 0xee, 0x66, 0x30, 0x03, 0x64, 0x9b, 0x56, 0x86, 0x98, - 0xe2, 0x24, 0x80, 0xd3, 0x55, 0x70, 0xea, 0xc0, 0xdb, 0x5b, 0x63, 0x1a, 0x53, 0x0b, 0xcd, 0x9a, - 0xaf, 0x6e, 0x6a, 0x3b, 0x51, 0x64, 0x4b, 0xb2, 0x59, 0x2e, 0x2d, 0x04, 0x5e, 0x45, 0x1a, 0xff, - 0xea, 0xe3, 0x34, 0xf4, 0x9b, 0xc2, 0xf5, 0x5f, 0xfd, 0x67, 0x45, 0x59, 0xf3, 0x84, 0x8c, 0xe6, - 0xf9, 0x11, 0xb0, 0x2c, 0x24, 0xcb, 0x6e, 0x6e, 0x70, 0x20, 0xe2, 0xb7, 0xcd, 0xf6, 0xfb, 0x06, - 0x24, 0xc3, 0xf1, 0xe1, 0x01, 0x20, 0x95, 0x71, 0x5f, 0xdc, 0x94, 0x4a, 0x51, 0x8d, 0xdc, 0x8f, - 0x1e, 0x47, 0x4f, 0x6f, 0x8f, 0x7c, 0x19, 0x6f, 0x89, 0x1b, 0x45, 0x03, 0xe9, 0x5f, 0x6b, 0xdf, - 0xbb, 0x62, 0xf0, 0x55, 0x6c, 0xb4, 0x2c, 0x47, 0x1a, 0xd9, 0x73, 0xec, 0x88, 0x4d, 0x03, 0x4a, - 0x57, 0x1a, 0x90, 0x4f, 0x64, 0x51, 0x18, 0xb0, 0xd6, 0xb1, 0x6d, 0x84, 0xc6, 0x5e, 0xf7, 0x1e, - 0xbf, 0x16, 0x6b, 0xb2, 0x6c, 0xf5, 0x1a, 0xde, 0x3b, 0x2f, 0x1e, 0xa4, 0x9d, 0xdf, 0xb4, 0xc9, - 0xc3, 0x47, 0x97, 0xee, 0x93, 0xc6, 0xe1, 0xf5, 0xf3, 0x1f, 0x8f, 0x7a, 0x23, 0x07, 0x1f, 0x54, - 0x62, 0xbd, 0x55, 0x1e, 0xd6, 0x06, 0x3b, 0xdd, 0x27, 0x62, 0x3d, 0xaf, 0x0d, 0x82, 0xf9, 0x43, - 0xf4, 0x6e, 0xf7, 0x7a, 0x65, 0xc5, 0x8f, 0x3e, 0xb1, 0x89, 0xc4, 0x31, 0x1c, 0x1f, 0xee, 0x15, - 0xa5, 0xc6, 0xcb, 0x5c, 0xa2, 0x95, 0x5c, 0xe2, 0x67, 0x62, 0x13, 0xe1, 0xec, 0x44, 0x36, 0x90, - 0xb0, 0x4e, 0x97, 0xdc, 0x3d, 0x84, 0xb3, 0x76, 0xd4, 0x2d, 0x34, 0xa8, 0xc4, 0xfd, 0x96, 0xf7, - 0x03, 0xf8, 0x08, 0xfd, 0xaf, 0xfa, 0x07, 0xf9, 0x1b, 0x71, 0xab, 0x74, 0x08, 0xe7, 0xe1, 0xe1, - 0xa5, 0x07, 0x9c, 0x06, 0x0f, 0x9e, 0xc6, 0xf9, 0x08, 0x43, 0xc3, 0xd3, 0xf3, 0x45, 0x12, 0x5d, - 0x2c, 0x92, 0xe8, 0xe7, 0x22, 0x89, 0xbe, 0x2d, 0x93, 0xde, 0xc5, 0x32, 0xe9, 0x7d, 0x5f, 0x26, - 0xbd, 0x4f, 0xa3, 0xb1, 0xe6, 0x49, 0x9d, 0xa7, 0x8a, 0xca, 0xec, 0x9d, 0x3f, 0xac, 0xf7, 0x32, - 0xb7, 0x59, 0x38, 0xb3, 0xe7, 0x8a, 0x0c, 0xac, 0x96, 0x13, 0xa9, 0x31, 0x2b, 0xa9, 0xa8, 0x4f, - 0xc1, 0xfe, 0x7e, 0x83, 0x3c, 0xaf, 0xc0, 0xe6, 0x6b, 0xed, 0xc1, 0xbd, 0xfc, 0x15, 0x00, 0x00, - 0xff, 0xff, 0x0f, 0x75, 0x34, 0xbb, 0x4d, 0x03, 0x00, 0x00, + // 449 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x8d, 0xf9, 0x08, 0xcd, 0x72, 0x00, 0xac, 0x82, 0x42, 0x10, 0x06, 0xf9, 0x84, 0x40, 0xd8, + 0x2a, 0x48, 0x70, 0x44, 0x4d, 0x01, 0x09, 0x89, 0x5e, 0x02, 0x27, 0x2e, 0xd1, 0x7a, 0x3d, 0x4d, + 0x96, 0x74, 0x67, 0xaa, 0xdd, 0x75, 0x8a, 0xff, 0x05, 0x3f, 0xab, 0xc7, 0x1c, 0x39, 0x21, 0x94, + 0xfc, 0x11, 0xb4, 0xeb, 0xb5, 0x13, 0x84, 0x10, 0x52, 0x6f, 0x7e, 0x33, 0xef, 0xbd, 0xf1, 0x9b, + 0x1d, 0xf6, 0x4c, 0xe2, 0x57, 0x10, 0x56, 0x2e, 0x21, 0xb7, 0xb4, 0x00, 0x3c, 0xe1, 0xc2, 0x92, + 0xae, 0xf3, 0xe5, 0x41, 0x01, 0x96, 0x1f, 0xe4, 0xb0, 0x04, 0xb4, 0x26, 0x3b, 0xd3, 0x64, 0x29, + 0x4e, 0x3a, 0x72, 0xb6, 0x4b, 0xce, 0x02, 0x79, 0xb4, 0x3f, 0xa3, 0x19, 0x79, 0x6a, 0xee, 0xbe, + 0x1a, 0xd5, 0x28, 0x11, 0x64, 0x14, 0x99, 0xbc, 0xe0, 0x06, 0x3a, 0x5f, 0x41, 0x12, 0xff, 0xea, + 0xe3, 0xa2, 0xeb, 0x3b, 0x10, 0xfa, 0xaf, 0xfe, 0xf3, 0x8b, 0xbc, 0xb2, 0x73, 0xd2, 0xd2, 0xd6, + 0xc7, 0x60, 0x79, 0xc9, 0x2d, 0x6f, 0x74, 0xe9, 0x98, 0xdd, 0x7e, 0xe7, 0xfe, 0xfe, 0x48, 0x03, + 0xb7, 0xf0, 0x16, 0x90, 0x54, 0x3c, 0x64, 0x37, 0xb8, 0x10, 0x54, 0xa1, 0x1d, 0x46, 0x8f, 0xa3, + 0x27, 0x83, 0x49, 0x0b, 0xe3, 0x7d, 0x76, 0xbd, 0x74, 0x94, 0xe1, 0x15, 0x5f, 0x6f, 0x40, 0xfa, + 0x8d, 0x0d, 0xbc, 0xc7, 0xb1, 0x44, 0x1b, 0xdf, 0x63, 0x7d, 0x25, 0xd1, 0x82, 0x0e, 0xda, 0x80, + 0xe2, 0xd7, 0xac, 0xcf, 0x95, 0xf7, 0x74, 0xda, 0x9b, 0x2f, 0xee, 0x67, 0x4d, 0xa2, 0xcc, 0x25, + 0x6e, 0x97, 0x93, 0x1d, 0x91, 0xc4, 0xf1, 0xb5, 0x8b, 0x9f, 0x8f, 0x7a, 0x93, 0x40, 0x8f, 0x47, + 0x6c, 0x4f, 0x83, 0x00, 0xb9, 0x04, 0x3d, 0xbc, 0xea, 0x2d, 0x3b, 0x9c, 0xd6, 0x61, 0xf2, 0xb8, + 0xd2, 0xe8, 0x26, 0x17, 0x95, 0xc6, 0xed, 0xe4, 0x06, 0x5d, 0x7e, 0xf2, 0x03, 0x36, 0x70, 0x16, + 0xd3, 0x13, 0x4d, 0xaa, 0x1d, 0xed, 0x0a, 0xef, 0x35, 0xa9, 0xf4, 0x73, 0xbb, 0xb8, 0x39, 0xc7, + 0x19, 0x1c, 0x96, 0x4a, 0xe2, 0x76, 0x3d, 0xd1, 0xce, 0x7a, 0xe2, 0xa7, 0xec, 0x0e, 0xc2, 0xf9, + 0x94, 0x3b, 0xca, 0x94, 0x97, 0xa5, 0x06, 0x63, 0xc2, 0x02, 0x6f, 0x21, 0x9c, 0x7b, 0xe9, 0x61, + 0x53, 0x4e, 0x91, 0xdd, 0xf5, 0xae, 0x9f, 0xc0, 0xfa, 0xb7, 0x68, 0x5f, 0xeb, 0x1f, 0xd6, 0x6f, + 0xd8, 0x9e, 0x0a, 0x8c, 0x10, 0xee, 0xe1, 0x36, 0x1c, 0x2e, 0xba, 0x70, 0xad, 0x4d, 0x08, 0xd8, + 0x89, 0xc6, 0xa7, 0x17, 0xeb, 0x24, 0x5a, 0xad, 0x93, 0xe8, 0xd7, 0x3a, 0x89, 0xbe, 0x6f, 0x92, + 0xde, 0x6a, 0x93, 0xf4, 0x7e, 0x6c, 0x92, 0xde, 0x97, 0xc9, 0x4c, 0xda, 0x79, 0x55, 0x64, 0x82, + 0x54, 0xfe, 0xa1, 0xbd, 0xad, 0x8f, 0xbc, 0x30, 0x79, 0x77, 0x69, 0xcf, 0x05, 0x69, 0xd8, 0x85, + 0x73, 0x2e, 0x31, 0x57, 0x54, 0x56, 0xa7, 0x60, 0xfe, 0x3c, 0x43, 0x5b, 0x9f, 0x81, 0x29, 0xfa, + 0xfe, 0xe6, 0x5e, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x69, 0xd3, 0xee, 0x9b, 0x50, 0x03, 0x00, + 0x00, } -func (m *EventCreateTFDenom) Marshal() (dAtA []byte, err error) { +func (m *EventCreateDenom) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -339,12 +356,12 @@ func (m *EventCreateTFDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventCreateTFDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventCreateDenom) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventCreateTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventCreateDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -366,7 +383,7 @@ func (m *EventCreateTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *EventMintTFDenom) Marshal() (dAtA []byte, err error) { +func (m *EventMint) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -376,16 +393,23 @@ func (m *EventMintTFDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventMintTFDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventMint) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventMintTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventMint) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -396,17 +420,17 @@ func (m *EventMintTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x12 - if len(m.RecipientAddress) > 0 { - i -= len(m.RecipientAddress) - copy(dAtA[i:], m.RecipientAddress) - i = encodeVarintEvents(dAtA, i, uint64(len(m.RecipientAddress))) + if len(m.Minter) > 0 { + i -= len(m.Minter) + copy(dAtA[i:], m.Minter) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Minter))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EventBurnDenom) Marshal() (dAtA []byte, err error) { +func (m *EventBurn) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -416,16 +440,23 @@ func (m *EventBurnDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventBurnDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventBurn) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventBurnDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventBurn) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.BurnFrom) > 0 { + i -= len(m.BurnFrom) + copy(dAtA[i:], m.BurnFrom) + i = encodeVarintEvents(dAtA, i, uint64(len(m.BurnFrom))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -436,17 +467,17 @@ func (m *EventBurnDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x12 - if len(m.BurnerAddress) > 0 { - i -= len(m.BurnerAddress) - copy(dAtA[i:], m.BurnerAddress) - i = encodeVarintEvents(dAtA, i, uint64(len(m.BurnerAddress))) + if len(m.Burner) > 0 { + i -= len(m.Burner) + copy(dAtA[i:], m.Burner) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Burner))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EventChangeTFAdmin) Marshal() (dAtA []byte, err error) { +func (m *EventChangeAdmin) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -456,12 +487,12 @@ func (m *EventChangeTFAdmin) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventChangeTFAdmin) MarshalTo(dAtA []byte) (int, error) { +func (m *EventChangeAdmin) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventChangeTFAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventChangeAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -483,7 +514,7 @@ func (m *EventChangeTFAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *EventSetTFDenomMetadata) Marshal() (dAtA []byte, err error) { +func (m *EventSetDenomMetadata) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -493,12 +524,12 @@ func (m *EventSetTFDenomMetadata) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventSetTFDenomMetadata) MarshalTo(dAtA []byte) (int, error) { +func (m *EventSetDenomMetadata) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventSetTFDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -534,7 +565,7 @@ func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *EventCreateTFDenom) Size() (n int) { +func (m *EventCreateDenom) Size() (n int) { if m == nil { return 0 } @@ -551,37 +582,45 @@ func (m *EventCreateTFDenom) Size() (n int) { return n } -func (m *EventMintTFDenom) Size() (n int) { +func (m *EventMint) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RecipientAddress) + l = len(m.Minter) if l > 0 { n += 1 + l + sovEvents(uint64(l)) } l = m.Amount.Size() n += 1 + l + sovEvents(uint64(l)) + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } -func (m *EventBurnDenom) Size() (n int) { +func (m *EventBurn) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.BurnerAddress) + l = len(m.Burner) if l > 0 { n += 1 + l + sovEvents(uint64(l)) } l = m.Amount.Size() n += 1 + l + sovEvents(uint64(l)) + l = len(m.BurnFrom) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } -func (m *EventChangeTFAdmin) Size() (n int) { +func (m *EventChangeAdmin) Size() (n int) { if m == nil { return 0 } @@ -598,7 +637,7 @@ func (m *EventChangeTFAdmin) Size() (n int) { return n } -func (m *EventSetTFDenomMetadata) Size() (n int) { +func (m *EventSetDenomMetadata) Size() (n int) { if m == nil { return 0 } @@ -619,7 +658,7 @@ func sovEvents(x uint64) (n int) { func sozEvents(x uint64) (n int) { return sovEvents(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { +func (m *EventCreateDenom) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -642,10 +681,10 @@ func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventCreateTFDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventCreateDenom: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventCreateTFDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventCreateDenom: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -733,7 +772,7 @@ func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { +func (m *EventMint) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -756,15 +795,15 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventMintTFDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventMint: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventMintTFDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventMint: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RecipientAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -792,7 +831,7 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RecipientAddress = string(dAtA[iNdEx:postIndex]) + m.Minter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -827,6 +866,38 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -848,7 +919,7 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { +func (m *EventBurn) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -871,15 +942,15 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventBurnDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventBurn: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventBurnDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventBurn: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnerAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Burner", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -907,7 +978,7 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BurnerAddress = string(dAtA[iNdEx:postIndex]) + m.Burner = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -942,6 +1013,38 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnFrom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BurnFrom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -963,7 +1066,7 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { +func (m *EventChangeAdmin) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -986,10 +1089,10 @@ func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventChangeTFAdmin: wiretype end group for non-group") + return fmt.Errorf("proto: EventChangeAdmin: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventChangeTFAdmin: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventChangeAdmin: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1077,7 +1180,7 @@ func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventSetTFDenomMetadata) Unmarshal(dAtA []byte) error { +func (m *EventSetDenomMetadata) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1100,10 +1203,10 @@ func (m *EventSetTFDenomMetadata) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventSetTFDenomMetadata: wiretype end group for non-group") + return fmt.Errorf("proto: EventSetDenomMetadata: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventSetTFDenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventSetDenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: diff --git a/chain/tokenfactory/types/expected_keepers.go b/chain/tokenfactory/types/expected_keepers.go deleted file mode 100644 index 27c25b23..00000000 --- a/chain/tokenfactory/types/expected_keepers.go +++ /dev/null @@ -1,35 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -type BankKeeper interface { - // Methods imported from bank should be defined here - GetDenomMetaData(ctx context.Context, denom string) (banktypes.Metadata, bool) - SetDenomMetaData(ctx context.Context, denomMetaData banktypes.Metadata) - - HasSupply(ctx context.Context, denom string) bool - - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - - SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error - HasBalance(ctx context.Context, addr sdk.AccAddress, amt sdk.Coin) bool - BlockedAddr(addr sdk.AccAddress) bool -} - -type AccountKeeper interface { - SetModuleAccount(ctx context.Context, macc sdk.ModuleAccountI) - NewAccount(ctx context.Context, acc sdk.AccountI) sdk.AccountI -} - -// CommunityPoolKeeper defines the contract needed to be fulfilled for community pool interactions. -type CommunityPoolKeeper interface { - FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error -} diff --git a/chain/tokenfactory/types/genesis.go b/chain/tokenfactory/types/genesis.go deleted file mode 100644 index 3c4bdb6d..00000000 --- a/chain/tokenfactory/types/genesis.go +++ /dev/null @@ -1,51 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// this line is used by starport scaffolding # genesis/types/import - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -// DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - FactoryDenoms: []GenesisDenom{}, - } -} - -// Validate performs basic genesis state validation returning an error upon any -// failure. -func (gs GenesisState) Validate() error { - err := gs.Params.Validate() - if err != nil { - return err - } - - seenDenoms := map[string]bool{} - - for _, denom := range gs.GetFactoryDenoms() { - if seenDenoms[denom.GetDenom()] { - return errors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", denom.GetDenom()) - } - seenDenoms[denom.GetDenom()] = true - - _, _, err := DeconstructDenom(denom.GetDenom()) - if err != nil { - return err - } - - if denom.AuthorityMetadata.Admin != "" { - _, err = sdk.AccAddressFromBech32(denom.AuthorityMetadata.Admin) - if err != nil { - return errors.Wrapf(ErrInvalidAuthorityMetadata, "Invalid admin address (%s)", err) - } - } - } - - return nil -} diff --git a/chain/tokenfactory/types/gov.go b/chain/tokenfactory/types/gov.go deleted file mode 100644 index 346c24ae..00000000 --- a/chain/tokenfactory/types/gov.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - errorsmod "cosmossdk.io/errors" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" -) - -const ( - ProposalTypeUpdateDenomsMetaData = "UpdateDenomsMetaData" -) - -func init() { - govtypes.RegisterProposalType(ProposalTypeUpdateDenomsMetaData) -} - -var ( - _ govtypes.Content = &UpdateDenomsMetadataProposal{} -) - -func NewUpdateDenomsMetadataProposal(title, description string, metadatas []banktypes.Metadata) govtypes.Content { - return &UpdateDenomsMetadataProposal{ - Title: title, - Description: description, - Metadatas: metadatas, - } -} - -func (p *UpdateDenomsMetadataProposal) GetTitle() string { return p.Title } - -func (p *UpdateDenomsMetadataProposal) GetDescription() string { return p.Description } - -func (p *UpdateDenomsMetadataProposal) ProposalRoute() string { return RouterKey } - -func (p *UpdateDenomsMetadataProposal) ProposalType() string { - return ProposalTypeUpdateDenomsMetaData -} - -func (p *UpdateDenomsMetadataProposal) ValidateBasic() error { - err := govtypes.ValidateAbstract(p) - if err != nil { - return err - } - - for idx := range p.Metadatas { - metadata := p.Metadatas[idx] - if metadata.Base == "" { - return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid denom (%s)", metadata.Base) - } - } - - return nil -} diff --git a/chain/tokenfactory/types/gov.pb.go b/chain/tokenfactory/types/gov.pb.go deleted file mode 100644 index 0a090625..00000000 --- a/chain/tokenfactory/types/gov.pb.go +++ /dev/null @@ -1,465 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: injective/tokenfactory/v1beta1/gov.proto - -package types - -import ( - fmt "fmt" - types "github.com/cosmos/cosmos-sdk/x/bank/types" - _ "github.com/cosmos/gogoproto/gogoproto" - proto "github.com/cosmos/gogoproto/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type UpdateDenomsMetadataProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Metadatas []types.Metadata `protobuf:"bytes,3,rep,name=metadatas,proto3" json:"metadatas"` - Deposit string `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty" yaml:"deposit"` -} - -func (m *UpdateDenomsMetadataProposal) Reset() { *m = UpdateDenomsMetadataProposal{} } -func (m *UpdateDenomsMetadataProposal) String() string { return proto.CompactTextString(m) } -func (*UpdateDenomsMetadataProposal) ProtoMessage() {} -func (*UpdateDenomsMetadataProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_2c4dd8ce2ae85492, []int{0} -} -func (m *UpdateDenomsMetadataProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UpdateDenomsMetadataProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_UpdateDenomsMetadataProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *UpdateDenomsMetadataProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateDenomsMetadataProposal.Merge(m, src) -} -func (m *UpdateDenomsMetadataProposal) XXX_Size() int { - return m.Size() -} -func (m *UpdateDenomsMetadataProposal) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateDenomsMetadataProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateDenomsMetadataProposal proto.InternalMessageInfo - -func init() { - proto.RegisterType((*UpdateDenomsMetadataProposal)(nil), "injective.tokenfactory.v1beta1.UpdateDenomsMetadataProposal") -} - -func init() { - proto.RegisterFile("injective/tokenfactory/v1beta1/gov.proto", fileDescriptor_2c4dd8ce2ae85492) -} - -var fileDescriptor_2c4dd8ce2ae85492 = []byte{ - // 332 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0xc1, 0x4e, 0xf2, 0x40, - 0x14, 0x85, 0xdb, 0x1f, 0x7e, 0x0d, 0x25, 0x71, 0xd1, 0xb0, 0x68, 0x88, 0x0e, 0x84, 0x15, 0x0b, - 0x9d, 0x09, 0xba, 0x63, 0x27, 0x71, 0x63, 0xa2, 0x89, 0x69, 0xe2, 0xc6, 0xdd, 0xb4, 0xbd, 0x96, - 0x91, 0xb6, 0x77, 0xd2, 0xb9, 0x90, 0xf0, 0x06, 0x2e, 0x7d, 0x04, 0x1f, 0x87, 0x8d, 0x09, 0x4b, - 0x57, 0xc4, 0xc0, 0x1b, 0xf8, 0x04, 0x86, 0xb6, 0x20, 0xee, 0x7a, 0x7a, 0xbe, 0x7b, 0xcf, 0xcd, - 0x19, 0xa7, 0xaf, 0xb2, 0x17, 0x08, 0x49, 0xcd, 0x40, 0x10, 0x4e, 0x20, 0x7b, 0x96, 0x21, 0x61, - 0x3e, 0x17, 0xb3, 0x41, 0x00, 0x24, 0x07, 0x22, 0xc6, 0x19, 0xd7, 0x39, 0x12, 0xba, 0x6c, 0x4f, - 0xf2, 0x43, 0x92, 0x57, 0x64, 0xbb, 0x15, 0x63, 0x8c, 0x05, 0x2a, 0xb6, 0x5f, 0xe5, 0x54, 0x9b, - 0x85, 0x68, 0x52, 0x34, 0x22, 0x90, 0xd9, 0x64, 0xbf, 0x74, 0x2b, 0x4a, 0xbf, 0xf7, 0x61, 0x3b, - 0xa7, 0x8f, 0x3a, 0x92, 0x04, 0x37, 0x90, 0x61, 0x6a, 0xee, 0x81, 0x64, 0x24, 0x49, 0x3e, 0xe4, - 0xa8, 0xd1, 0xc8, 0xc4, 0x6d, 0x39, 0xff, 0x49, 0x51, 0x02, 0x9e, 0xdd, 0xb5, 0xfb, 0x0d, 0xbf, - 0x14, 0x6e, 0xd7, 0x69, 0x46, 0x60, 0xc2, 0x5c, 0x69, 0x52, 0x98, 0x79, 0xff, 0x0a, 0xef, 0xf0, - 0x97, 0x7b, 0xed, 0x34, 0xd2, 0x6a, 0x97, 0xf1, 0x6a, 0xdd, 0x5a, 0xbf, 0x79, 0x79, 0xc6, 0xcb, - 0x63, 0x78, 0x91, 0x5f, 0x1d, 0xc3, 0x77, 0x89, 0xa3, 0xfa, 0x62, 0xd5, 0xb1, 0xfc, 0xdf, 0x29, - 0xf7, 0xdc, 0x39, 0x8e, 0x40, 0xa3, 0x51, 0xe4, 0xd5, 0xb7, 0x01, 0x23, 0xf7, 0x7b, 0xd5, 0x39, - 0x99, 0xcb, 0x34, 0x19, 0xf6, 0x2a, 0xa3, 0xe7, 0xef, 0x90, 0x61, 0xfd, 0xf5, 0xbd, 0x63, 0x8d, - 0x92, 0xc5, 0x9a, 0xd9, 0xcb, 0x35, 0xb3, 0xbf, 0xd6, 0xcc, 0x7e, 0xdb, 0x30, 0x6b, 0xb9, 0x61, - 0xd6, 0xe7, 0x86, 0x59, 0x4f, 0x7e, 0xac, 0x68, 0x3c, 0x0d, 0x78, 0x88, 0xa9, 0xb8, 0xdd, 0x55, - 0x79, 0x27, 0x03, 0x23, 0xf6, 0xc5, 0x5e, 0x84, 0x98, 0xc3, 0xa1, 0x1c, 0x4b, 0x95, 0x89, 0x14, - 0xa3, 0x69, 0x02, 0xe6, 0xef, 0xfb, 0xd0, 0x5c, 0x83, 0x09, 0x8e, 0x8a, 0x12, 0xaf, 0x7e, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x31, 0xc4, 0xfd, 0x93, 0xc6, 0x01, 0x00, 0x00, -} - -func (m *UpdateDenomsMetadataProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UpdateDenomsMetadataProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UpdateDenomsMetadataProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Deposit) > 0 { - i -= len(m.Deposit) - copy(dAtA[i:], m.Deposit) - i = encodeVarintGov(dAtA, i, uint64(len(m.Deposit))) - i-- - dAtA[i] = 0x22 - } - if len(m.Metadatas) > 0 { - for iNdEx := len(m.Metadatas) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Metadatas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGov(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintGov(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintGov(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintGov(dAtA []byte, offset int, v uint64) int { - offset -= sovGov(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *UpdateDenomsMetadataProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - if len(m.Metadatas) > 0 { - for _, e := range m.Metadatas { - l = e.Size() - n += 1 + l + sovGov(uint64(l)) - } - } - l = len(m.Deposit) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - return n -} - -func sovGov(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGov(x uint64) (n int) { - return sovGov(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *UpdateDenomsMetadataProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateDenomsMetadataProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateDenomsMetadataProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadatas", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadatas = append(m.Metadatas, types.Metadata{}) - if err := m.Metadatas[len(m.Metadatas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Deposit", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Deposit = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGov(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGov - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGov(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGov - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGov - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGov - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGov = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGov = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGov = fmt.Errorf("proto: unexpected end of group") -) diff --git a/chain/tokenfactory/types/keys.go b/chain/tokenfactory/types/keys.go deleted file mode 100644 index 6d8aed08..00000000 --- a/chain/tokenfactory/types/keys.go +++ /dev/null @@ -1,50 +0,0 @@ -package types - -import ( - "strings" -) - -const ( - // ModuleName defines the module name - ModuleName = "tokenfactory" - - // StoreKey defines the primary module store key - StoreKey = ModuleName - - // RouterKey is the message route for slashing - RouterKey = ModuleName - - // QuerierRoute defines the module's query routing key - QuerierRoute = ModuleName - - // MemStoreKey defines the in-memory store key - MemStoreKey = "mem_tokenfactory" -) - -// KeySeparator is used to combine parts of the keys in the store -const KeySeparator = "|" - -var ( - DenomAuthorityMetadataKey = []byte{0x01} - DenomsPrefixKey = []byte{0x02} - CreatorPrefixKey = []byte{0x03} - AdminPrefixKey = []byte{0x04} - ParamsKey = []byte{0x05} -) - -// GetDenomPrefixStore returns the store prefix where all the data associated with a specific denom -// is stored -func GetDenomPrefixStore(denom string) []byte { - return []byte(strings.Join([]string{string(DenomsPrefixKey), denom, ""}, KeySeparator)) -} - -// GetCreatorPrefix returns the store prefix where the list of the denoms created by a specific -// creator are stored. -func GetCreatorPrefix(creator string) []byte { - return []byte(strings.Join([]string{string(CreatorPrefixKey), creator, ""}, KeySeparator)) -} - -// GetCreatorsPrefix returns the store prefix where a list of all creator addresses are stored -func GetCreatorsPrefix() []byte { - return append(CreatorPrefixKey, []byte(KeySeparator)...) -} diff --git a/chain/tokenfactory/types/msgs.go b/chain/tokenfactory/types/msgs.go deleted file mode 100644 index c3a62338..00000000 --- a/chain/tokenfactory/types/msgs.go +++ /dev/null @@ -1,288 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - "cosmossdk.io/math" - "github.com/InjectiveLabs/sdk-go/chain/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "strings" -) - -// constants -const ( - TypeMsgCreateDenom = "create_denom" - TypeMsgMint = "tf_mint" - TypeMsgBurn = "tf_burn" - TypeMsgChangeAdmin = "change_admin" - TypeMsgSetDenomMetadata = "set_denom_metadata" - TypeMsgUpdateParams = "update_params" -) - -var _ sdk.Msg = &MsgCreateDenom{} -var _ sdk.Msg = &MsgMint{} -var _ sdk.Msg = &MsgBurn{} -var _ sdk.Msg = &MsgSetDenomMetadata{} -var _ sdk.Msg = &MsgChangeAdmin{} -var _ sdk.Msg = &MsgUpdateParams{} - -func (m MsgUpdateParams) Route() string { return RouterKey } - -func (m MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -func (m MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := m.Params.Validate(); err != nil { - return err - } - - return nil -} - -func (m *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Authority) - return []sdk.AccAddress{addr} -} - -// NewMsgCreateDenom creates a msg to create a new denom -func NewMsgCreateDenom(sender, subdenom, name, symbol string, decimals uint32) *MsgCreateDenom { - return &MsgCreateDenom{ - Sender: sender, - Subdenom: subdenom, - Name: name, - Symbol: symbol, - Decimals: decimals, - } -} - -func (m MsgCreateDenom) Route() string { return RouterKey } -func (m MsgCreateDenom) Type() string { return TypeMsgCreateDenom } -func (m MsgCreateDenom) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - _, err = GetTokenDenom(m.Sender, m.Subdenom) - if err != nil { - return errors.Wrap(ErrInvalidDenom, err.Error()) - } - - return nil -} - -func (m *MsgCreateDenom) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgCreateDenom) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgMint creates a message to mint tokens -func NewMsgMint(sender string, amount sdk.Coin) *MsgMint { - return &MsgMint{ - Sender: sender, - Amount: amount, - } -} - -func (m MsgMint) Route() string { return RouterKey } -func (m MsgMint) Type() string { return TypeMsgMint } -func (m MsgMint) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - if !m.Amount.IsValid() || m.Amount.Amount.Equal(math.ZeroInt()) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) - } - - return nil -} - -func (m MsgMint) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(&m)) -} - -func (m MsgMint) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgBurn creates a message to burn tokens -func NewMsgBurn(sender string, amount sdk.Coin) *MsgBurn { - return &MsgBurn{ - Sender: sender, - Amount: amount, - } -} - -func (m MsgBurn) Route() string { return RouterKey } -func (m MsgBurn) Type() string { return TypeMsgBurn } -func (m MsgBurn) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - if !m.Amount.IsValid() || !m.Amount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) - } - - return nil -} - -func (m *MsgBurn) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgBurn) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgChangeAdmin creates a message to change the admin -func NewMsgChangeAdmin(sender, denom, newAdmin string) *MsgChangeAdmin { - return &MsgChangeAdmin{ - Sender: sender, - Denom: denom, - NewAdmin: newAdmin, - } -} - -func (m MsgChangeAdmin) Route() string { return RouterKey } -func (m MsgChangeAdmin) Type() string { return TypeMsgChangeAdmin } -func (m MsgChangeAdmin) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - _, err = sdk.AccAddressFromBech32(m.NewAdmin) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) - } - - _, _, err = DeconstructDenom(m.Denom) - if err != nil { - return err - } - - return nil -} - -func (m *MsgChangeAdmin) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgChangeAdmin) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgSetDenomMetadata creates a message to set the denom metadata -func NewMsgSetDenomMetadata(sender string, metadata banktypes.Metadata) *MsgSetDenomMetadata { - return &MsgSetDenomMetadata{ - Sender: sender, - Metadata: metadata, - } -} - -func (m MsgSetDenomMetadata) Route() string { return RouterKey } -func (m MsgSetDenomMetadata) Type() string { return TypeMsgSetDenomMetadata } -func (m MsgSetDenomMetadata) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - err = m.Metadata.Validate() - if err != nil { - return err - } - - if m.Metadata.Base == types.InjectiveCoin { - return errors.Wrap(ErrInvalidDenom, "cannot set metadata for INJ") - } - - err = sdk.ValidateDenom(m.Metadata.Base) - if err != nil { - return err - } - - // If denom metadata is for a TokenFactory denom, run the different components validations - strParts := strings.Split(m.Metadata.Base, "/") - if len(strParts) > 2 { - _, _, err = DeconstructDenom(m.Metadata.Base) - if err != nil { - return err - } - } - - return nil -} - -func (m *MsgSetDenomMetadata) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgSetDenomMetadata) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// var _ sdk.Msg = &MsgForceTransfer{} - -// // NewMsgForceTransfer creates a transfer funds from one account to another -// func NewMsgForceTransfer(sender string, amount sdk.Coin, fromAddr, toAddr string) *MsgForceTransfer { -// return &MsgForceTransfer{ -// Sender: sender, -// Amount: amount, -// TransferFromAddress: fromAddr, -// TransferToAddress: toAddr, -// } -// } - -// func (m MsgForceTransfer) Route() string { return RouterKey } -// func (m MsgForceTransfer) Type() string { return TypeMsgForceTransfer } -// func (m MsgForceTransfer) ValidateBasic() error { -// _, err := sdk.AccAddressFromBech32(m.Sender) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) -// } - -// _, err = sdk.AccAddressFromBech32(m.TransferFromAddress) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) -// } -// _, err = sdk.AccAddressFromBech32(m.TransferToAddress) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) -// } - -// if !m.Amount.IsValid() { -// return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) -// } - -// return nil -// } - -// func (m MsgForceTransfer) GetSignBytes() []byte { -// return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(&m)) -// } - -// func (m MsgForceTransfer) GetSigners() []sdk.AccAddress { -// sender, _ := sdk.AccAddressFromBech32(m.Sender) -// return []sdk.AccAddress{sender} -// } diff --git a/chain/tokenfactory/types/params.go b/chain/tokenfactory/types/params.go deleted file mode 100644 index f1d52477..00000000 --- a/chain/tokenfactory/types/params.go +++ /dev/null @@ -1,63 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - - chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" -) - -// Parameter store keys. -var ( - KeyDenomCreationFee = []byte("DenomCreationFee") -) - -// ParamTable for gamm module. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -func NewParams(denomCreationFee sdk.Coins) Params { - return Params{ - DenomCreationFee: denomCreationFee, - } -} - -// default gamm module parameters. -func DefaultParams() Params { - return Params{ - DenomCreationFee: sdk.NewCoins(sdk.NewCoin(chaintypes.InjectiveCoin, math.NewIntWithDecimal(10, 18))), // 10 INJ - } -} - -// validate params. -func (p Params) Validate() error { - if err := validateDenomCreationFee(p.DenomCreationFee); err != nil { - return err - } - - return nil -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyDenomCreationFee, &p.DenomCreationFee, validateDenomCreationFee), - } -} - -func validateDenomCreationFee(i interface{}) error { - v, ok := i.(sdk.Coins) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v.Validate() != nil { - return fmt.Errorf("invalid denom creation fee: %+v", i) - } - - return nil -} diff --git a/chain/tokenfactory/types/tx.pb.go b/chain/tokenfactory/types/tx.pb.go index 10dc706d..5bcfbf5a 100644 --- a/chain/tokenfactory/types/tx.pb.go +++ b/chain/tokenfactory/types/tx.pb.go @@ -49,6 +49,8 @@ type MsgCreateDenom struct { Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` + // true if admins are allowed to burn tokens from other addresses + AllowAdminBurn bool `protobuf:"varint,6,opt,name=allow_admin_burn,json=allowAdminBurn,proto3" json:"allow_admin_burn,omitempty" yaml:"allow_admin_burn"` } func (m *MsgCreateDenom) Reset() { *m = MsgCreateDenom{} } @@ -119,6 +121,13 @@ func (m *MsgCreateDenom) GetDecimals() uint32 { return 0 } +func (m *MsgCreateDenom) GetAllowAdminBurn() bool { + if m != nil { + return m.AllowAdminBurn + } + return false +} + // MsgCreateDenomResponse is the return value of MsgCreateDenom // It returns the full string of the newly created denom type MsgCreateDenomResponse struct { @@ -165,11 +174,12 @@ func (m *MsgCreateDenomResponse) GetNewTokenDenom() string { return "" } -// MsgMint is the sdk.Msg type for allowing an admin account to mint -// more of a token. For now, we only support minting to the sender account +// MsgMint is the sdk.Msg type for allowing an admin account or other permitted accounts to mint +// more of a token. type MsgMint struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` } func (m *MsgMint) Reset() { *m = MsgMint{} } @@ -219,6 +229,13 @@ func (m *MsgMint) GetAmount() types.Coin { return types.Coin{} } +func (m *MsgMint) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + type MsgMintResponse struct { } @@ -256,10 +273,11 @@ func (m *MsgMintResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgMintResponse proto.InternalMessageInfo // MsgBurn is the sdk.Msg type for allowing an admin account to burn -// a token. For now, we only support burning from the sender account. +// a token. type MsgBurn struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + BurnFromAddress string `protobuf:"bytes,3,opt,name=burnFromAddress,proto3" json:"burnFromAddress,omitempty" yaml:"burn_from_address"` } func (m *MsgBurn) Reset() { *m = MsgBurn{} } @@ -309,6 +327,13 @@ func (m *MsgBurn) GetAmount() types.Coin { return types.Coin{} } +func (m *MsgBurn) GetBurnFromAddress() string { + if m != nil { + return m.BurnFromAddress + } + return "" +} + type MsgBurnResponse struct { } @@ -448,8 +473,9 @@ var xxx_messageInfo_MsgChangeAdminResponse proto.InternalMessageInfo // MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set // the denom's bank metadata type MsgSetDenomMetadata struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata" yaml:"metadata"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata" yaml:"metadata"` + AdminBurnDisabled *MsgSetDenomMetadata_AdminBurnDisabled `protobuf:"bytes,3,opt,name=admin_burn_disabled,json=adminBurnDisabled,proto3" json:"admin_burn_disabled,omitempty" yaml:"admin_burn_disabled"` } func (m *MsgSetDenomMetadata) Reset() { *m = MsgSetDenomMetadata{} } @@ -499,6 +525,58 @@ func (m *MsgSetDenomMetadata) GetMetadata() types1.Metadata { return types1.Metadata{} } +func (m *MsgSetDenomMetadata) GetAdminBurnDisabled() *MsgSetDenomMetadata_AdminBurnDisabled { + if m != nil { + return m.AdminBurnDisabled + } + return nil +} + +type MsgSetDenomMetadata_AdminBurnDisabled struct { + // true if the admin burn capability should be disabled + ShouldDisable bool `protobuf:"varint,1,opt,name=should_disable,json=shouldDisable,proto3" json:"should_disable,omitempty" yaml:"should_disable"` +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Reset() { *m = MsgSetDenomMetadata_AdminBurnDisabled{} } +func (m *MsgSetDenomMetadata_AdminBurnDisabled) String() string { return proto.CompactTextString(m) } +func (*MsgSetDenomMetadata_AdminBurnDisabled) ProtoMessage() {} +func (*MsgSetDenomMetadata_AdminBurnDisabled) Descriptor() ([]byte, []int) { + return fileDescriptor_b0b26fd7f19ce3c4, []int{8, 0} +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.Merge(m, src) +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Size() int { + return m.Size() +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled proto.InternalMessageInfo + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) GetShouldDisable() bool { + if m != nil { + return m.ShouldDisable + } + return false +} + // MsgSetDenomMetadataResponse defines the response structure for an executed // MsgSetDenomMetadata message. type MsgSetDenomMetadataResponse struct { @@ -639,6 +717,7 @@ func init() { proto.RegisterType((*MsgChangeAdmin)(nil), "injective.tokenfactory.v1beta1.MsgChangeAdmin") proto.RegisterType((*MsgChangeAdminResponse)(nil), "injective.tokenfactory.v1beta1.MsgChangeAdminResponse") proto.RegisterType((*MsgSetDenomMetadata)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadata") + proto.RegisterType((*MsgSetDenomMetadata_AdminBurnDisabled)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadata.AdminBurnDisabled") proto.RegisterType((*MsgSetDenomMetadataResponse)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadataResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.tokenfactory.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.tokenfactory.v1beta1.MsgUpdateParamsResponse") @@ -649,63 +728,74 @@ func init() { } var fileDescriptor_b0b26fd7f19ce3c4 = []byte{ - // 888 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xbd, 0x6f, 0xdb, 0x46, - 0x14, 0x37, 0x13, 0x49, 0xb5, 0xcf, 0x71, 0x65, 0x33, 0x6e, 0x2c, 0x33, 0x08, 0x15, 0x30, 0x45, - 0x3e, 0x1c, 0x88, 0x84, 0x62, 0x20, 0x41, 0xd5, 0x29, 0x4a, 0x86, 0x16, 0xa8, 0x80, 0x82, 0x69, - 0x97, 0xa2, 0x80, 0x7b, 0x24, 0xaf, 0x14, 0x6b, 0xf1, 0x4e, 0xe0, 0x1d, 0xed, 0x68, 0x2b, 0x8a, - 0x4e, 0x9d, 0xfa, 0x37, 0x74, 0xed, 0xe2, 0xa1, 0x7b, 0x57, 0x03, 0x1d, 0x1a, 0x74, 0xea, 0x24, - 0x14, 0xf6, 0xe0, 0x5d, 0x7f, 0x41, 0x71, 0x1f, 0xa4, 0x28, 0xa9, 0x6a, 0xa8, 0x4e, 0x5d, 0x24, - 0xf2, 0xde, 0xef, 0x7d, 0xfc, 0x7e, 0xf7, 0xde, 0x93, 0xc0, 0x83, 0x08, 0x7f, 0x83, 0x7c, 0x16, - 0x9d, 0x20, 0x87, 0x91, 0x63, 0x84, 0xbf, 0x86, 0x3e, 0x23, 0xc9, 0xc8, 0x39, 0x69, 0x7b, 0x88, - 0xc1, 0xb6, 0xc3, 0x5e, 0xdb, 0xc3, 0x84, 0x30, 0xa2, 0x9b, 0x39, 0xd0, 0x2e, 0x02, 0x6d, 0x05, - 0x34, 0x76, 0x43, 0x12, 0x12, 0x01, 0x75, 0xf8, 0x93, 0xf4, 0x32, 0x4c, 0x9f, 0xd0, 0x98, 0x50, - 0xc7, 0x83, 0x14, 0xe5, 0x31, 0x7d, 0x12, 0xe1, 0x05, 0x3b, 0x3e, 0xce, 0xed, 0xfc, 0x45, 0xd9, - 0xf7, 0x94, 0x3d, 0xa6, 0xa1, 0x73, 0xd2, 0xe6, 0x5f, 0xca, 0xb0, 0x2f, 0x0d, 0x47, 0x32, 0xa3, - 0x7c, 0x51, 0xa6, 0xc7, 0x6f, 0xa1, 0x34, 0x84, 0x09, 0x8c, 0x33, 0xf0, 0x0e, 0x8c, 0x23, 0x4c, - 0x1c, 0xf1, 0x29, 0x8f, 0xac, 0x9f, 0xae, 0x81, 0x77, 0x7b, 0x34, 0x7c, 0x91, 0x20, 0xc8, 0xd0, - 0x4b, 0x84, 0x49, 0xac, 0x3f, 0x02, 0x35, 0x8a, 0x70, 0x80, 0x92, 0x86, 0x76, 0x57, 0x7b, 0xb8, - 0xd1, 0xdd, 0x99, 0x8c, 0x9b, 0x5b, 0x23, 0x18, 0x0f, 0x3a, 0x96, 0x3c, 0xb7, 0x5c, 0x05, 0xd0, - 0x1d, 0xb0, 0x4e, 0x53, 0x2f, 0xe0, 0x6e, 0x8d, 0x6b, 0x02, 0x7c, 0x73, 0x32, 0x6e, 0xd6, 0x15, - 0x58, 0x59, 0x2c, 0x37, 0x07, 0xe9, 0xf7, 0x40, 0x05, 0xc3, 0x18, 0x35, 0xae, 0x0b, 0x70, 0x7d, - 0x32, 0x6e, 0x6e, 0x4a, 0x30, 0x3f, 0xb5, 0x5c, 0x61, 0x14, 0x05, 0x8c, 0x62, 0x8f, 0x0c, 0x1a, - 0x95, 0x85, 0x02, 0xc4, 0x39, 0x2f, 0x40, 0x3c, 0xf0, 0x02, 0x02, 0xe4, 0x47, 0x31, 0x1c, 0xd0, - 0x46, 0xf5, 0xae, 0xf6, 0x70, 0xab, 0x58, 0x40, 0x66, 0xb1, 0xdc, 0x1c, 0xd4, 0x39, 0xfc, 0xee, - 0xea, 0xec, 0x40, 0x95, 0xff, 0xc3, 0xd5, 0xd9, 0xc1, 0xbd, 0x25, 0xfa, 0xf9, 0x42, 0x90, 0x96, - 0x24, 0xf0, 0x25, 0xb8, 0x35, 0xab, 0x91, 0x8b, 0xe8, 0x90, 0x60, 0x8a, 0xf4, 0x2e, 0xa8, 0x63, - 0x74, 0x7a, 0x24, 0x5c, 0x8f, 0xa4, 0x0e, 0x52, 0x34, 0x63, 0x32, 0x6e, 0xde, 0x52, 0xd4, 0x66, - 0x01, 0x96, 0xbb, 0x85, 0xd1, 0xe9, 0x67, 0xfc, 0x40, 0xc4, 0xb2, 0x7e, 0xd6, 0xc0, 0x3b, 0x3d, - 0x1a, 0xf6, 0x22, 0xcc, 0x56, 0xd1, 0xfe, 0x23, 0x50, 0x83, 0x31, 0x49, 0x31, 0x13, 0xca, 0x6f, - 0x3e, 0xd9, 0xb7, 0x55, 0x63, 0xf0, 0xf6, 0xcb, 0x3a, 0xd5, 0x7e, 0x41, 0x22, 0xdc, 0x7d, 0xef, - 0x7c, 0xdc, 0x5c, 0x9b, 0x46, 0x92, 0x6e, 0x96, 0xab, 0xfc, 0x3b, 0x8f, 0xe7, 0x34, 0xb9, 0xbd, - 0x44, 0x93, 0x38, 0xc2, 0xcc, 0xda, 0x01, 0x75, 0x55, 0x6c, 0x26, 0x42, 0x46, 0xa0, 0x9b, 0x26, - 0xf8, 0xff, 0x4d, 0xc0, 0x4b, 0x13, 0xac, 0x08, 0xf0, 0x62, 0x73, 0x02, 0xbf, 0x69, 0x72, 0x08, - 0xfa, 0x10, 0x87, 0xe8, 0x79, 0x10, 0x47, 0x2b, 0xf1, 0xb8, 0x0f, 0xaa, 0xc5, 0x09, 0xd8, 0x9e, - 0x8c, 0x9b, 0x37, 0xb2, 0x06, 0x14, 0xf7, 0x2d, 0xcd, 0x7a, 0x1b, 0x6c, 0xf0, 0x56, 0x80, 0x3c, - 0xbe, 0x1a, 0x80, 0xdd, 0xc9, 0xb8, 0xb9, 0x3d, 0xed, 0x12, 0x61, 0xb2, 0xdc, 0x75, 0x8c, 0x4e, - 0x45, 0x15, 0xe5, 0xbb, 0x55, 0x54, 0xde, 0x92, 0xfe, 0x0d, 0xd9, 0xad, 0x53, 0x32, 0x39, 0xcf, - 0xdf, 0x35, 0x70, 0xb3, 0x47, 0xc3, 0x57, 0x88, 0x89, 0xce, 0xeb, 0x21, 0x06, 0x03, 0xc8, 0xe0, - 0x2a, 0x64, 0x5d, 0xb0, 0x1e, 0x2b, 0x37, 0x75, 0x6d, 0x77, 0xa6, 0xd7, 0x86, 0x8f, 0xf3, 0x6b, - 0xcb, 0x62, 0x77, 0xf7, 0xd4, 0xd5, 0xa9, 0x99, 0xcc, 0x9c, 0x2d, 0x37, 0x8f, 0xd3, 0xf9, 0x60, - 0x8e, 0xe5, 0xa3, 0x25, 0x2c, 0x29, 0x62, 0x72, 0x20, 0x5b, 0x79, 0x94, 0x3b, 0xe0, 0xf6, 0x3f, - 0x10, 0xca, 0x09, 0x9f, 0x6b, 0xe2, 0xb2, 0x3f, 0x1f, 0x06, 0x90, 0xa1, 0x4f, 0xc5, 0x2a, 0xd4, - 0x9f, 0x82, 0x0d, 0x98, 0xb2, 0x3e, 0x49, 0x22, 0x36, 0x52, 0x7c, 0x1b, 0x7f, 0xfc, 0xd2, 0xda, - 0x55, 0x2c, 0x9e, 0x07, 0x41, 0x82, 0x28, 0x7d, 0xc5, 0x92, 0x08, 0x87, 0xee, 0x14, 0xaa, 0xbf, - 0x04, 0x35, 0xb9, 0x4c, 0x15, 0xef, 0xfb, 0xf6, 0xbf, 0xff, 0x48, 0xd8, 0x32, 0x5f, 0xb7, 0xc2, - 0x05, 0x70, 0x95, 0x6f, 0xe7, 0x19, 0xe7, 0x3a, 0x8d, 0xca, 0xe9, 0xbe, 0xbf, 0x84, 0x6e, 0x2a, - 0xaa, 0x6e, 0x49, 0x47, 0x6b, 0x1f, 0xec, 0xcd, 0x31, 0xc9, 0x58, 0x3e, 0xf9, 0xb5, 0x0a, 0xae, - 0xf7, 0x68, 0xa8, 0xa7, 0x60, 0xb3, 0xb8, 0xc7, 0xed, 0xb7, 0x15, 0x38, 0xbb, 0xd3, 0x8c, 0xa7, - 0xab, 0xe1, 0xf3, 0x1d, 0xf8, 0x15, 0xa8, 0x88, 0xdd, 0xf5, 0xa0, 0x84, 0x3f, 0x07, 0x1a, 0x4e, - 0x49, 0x60, 0x31, 0x83, 0x58, 0x2e, 0x65, 0x32, 0x70, 0x60, 0xa9, 0x0c, 0xc5, 0x0d, 0x20, 0xa4, - 0x2b, 0x4c, 0x7f, 0x29, 0xe9, 0xa6, 0xf8, 0x72, 0xd2, 0x2d, 0x0e, 0xa4, 0xfe, 0xbd, 0x06, 0xb6, - 0x17, 0xa6, 0xf1, 0xb0, 0x44, 0xb0, 0x79, 0x27, 0xe3, 0xc3, 0xff, 0xe0, 0x94, 0x97, 0xf1, 0x1a, - 0xdc, 0x98, 0x19, 0x91, 0x32, 0xf2, 0x15, 0x1d, 0x8c, 0x67, 0x2b, 0x3a, 0x64, 0x99, 0x8d, 0xea, - 0xb7, 0x57, 0x67, 0x07, 0x5a, 0x77, 0x70, 0x7e, 0x61, 0x6a, 0x6f, 0x2e, 0x4c, 0xed, 0xaf, 0x0b, - 0x53, 0xfb, 0xf1, 0xd2, 0x5c, 0x7b, 0x73, 0x69, 0xae, 0xfd, 0x79, 0x69, 0xae, 0x7d, 0xe1, 0x86, - 0x11, 0xeb, 0xa7, 0x9e, 0xed, 0x93, 0xd8, 0xf9, 0x38, 0xcb, 0xf1, 0x09, 0xf4, 0xa8, 0x93, 0x67, - 0x6c, 0xf9, 0x24, 0x41, 0xc5, 0xd7, 0x3e, 0x8c, 0xb0, 0x13, 0x93, 0x20, 0x1d, 0x20, 0x3a, 0x3b, - 0x52, 0x6c, 0x34, 0x44, 0xd4, 0xab, 0x89, 0xbf, 0x3e, 0x87, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, - 0xf0, 0x22, 0x4e, 0x61, 0x0f, 0x0a, 0x00, 0x00, + // 1063 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0x8e, 0x9b, 0x1f, 0x24, 0x93, 0xe6, 0x97, 0x93, 0x36, 0x1b, 0x47, 0x5d, 0x07, 0x17, 0xb5, + 0x69, 0xaa, 0xb5, 0x95, 0x44, 0x6a, 0x45, 0xb8, 0x50, 0x37, 0x45, 0x20, 0x58, 0x09, 0xb9, 0xf4, + 0x82, 0x90, 0x96, 0xd9, 0xf5, 0xd4, 0x31, 0x59, 0xcf, 0x44, 0x9e, 0x71, 0xd2, 0xdc, 0x10, 0xe2, + 0xc4, 0x89, 0x0b, 0xff, 0x03, 0xc7, 0x1c, 0x38, 0xc3, 0x35, 0x12, 0x97, 0x8a, 0x13, 0x07, 0x64, + 0xa1, 0xe4, 0x10, 0x71, 0xf5, 0x89, 0x23, 0x9a, 0x1f, 0xf6, 0x3a, 0xbb, 0x0d, 0xf5, 0xf6, 0xd2, + 0x4b, 0xbb, 0x9e, 0xf7, 0x7d, 0xf3, 0xe6, 0x7d, 0xef, 0x7b, 0x33, 0x01, 0x77, 0x43, 0xfc, 0x0d, + 0xea, 0xb0, 0xf0, 0x10, 0x39, 0x8c, 0xec, 0x23, 0xfc, 0x1c, 0x76, 0x18, 0x89, 0x8f, 0x9d, 0xc3, + 0xcd, 0x36, 0x62, 0x70, 0xd3, 0x61, 0x2f, 0xec, 0x83, 0x98, 0x30, 0xa2, 0xd7, 0x0b, 0xa0, 0x5d, + 0x06, 0xda, 0x0a, 0x68, 0x2c, 0x05, 0x24, 0x20, 0x02, 0xea, 0xf0, 0x5f, 0x92, 0x65, 0xd4, 0x3b, + 0x84, 0x46, 0x84, 0x3a, 0x6d, 0x48, 0x51, 0xb1, 0x67, 0x87, 0x84, 0x78, 0x20, 0x8e, 0xf7, 0x8b, + 0x38, 0xff, 0x50, 0xf1, 0x65, 0x15, 0x8f, 0x68, 0xe0, 0x1c, 0x6e, 0xf2, 0xff, 0x54, 0x60, 0x45, + 0x06, 0x5a, 0x32, 0xa3, 0xfc, 0x50, 0xa1, 0xfb, 0xaf, 0x29, 0xe9, 0x00, 0xc6, 0x30, 0xca, 0xc1, + 0x0b, 0x30, 0x0a, 0x31, 0x71, 0xc4, 0xbf, 0x72, 0xc9, 0xfa, 0xe7, 0x1a, 0x98, 0x6d, 0xd2, 0xe0, + 0x71, 0x8c, 0x20, 0x43, 0xbb, 0x08, 0x93, 0x48, 0xbf, 0x07, 0x26, 0x28, 0xc2, 0x3e, 0x8a, 0x6b, + 0xda, 0x9a, 0xb6, 0x3e, 0xe5, 0x2e, 0x64, 0xa9, 0x39, 0x73, 0x0c, 0xa3, 0xee, 0x8e, 0x25, 0xd7, + 0x2d, 0x4f, 0x01, 0x74, 0x07, 0x4c, 0xd2, 0xa4, 0xed, 0x73, 0x5a, 0xed, 0x9a, 0x00, 0x2f, 0x66, + 0xa9, 0x39, 0xa7, 0xc0, 0x2a, 0x62, 0x79, 0x05, 0x48, 0xbf, 0x0d, 0xc6, 0x30, 0x8c, 0x50, 0x6d, + 0x54, 0x80, 0xe7, 0xb2, 0xd4, 0x9c, 0x96, 0x60, 0xbe, 0x6a, 0x79, 0x22, 0x28, 0x0e, 0x70, 0x1c, + 0xb5, 0x49, 0xb7, 0x36, 0x36, 0x70, 0x00, 0xb1, 0xce, 0x0f, 0x20, 0x7e, 0xf0, 0x03, 0xf8, 0xa8, + 0x13, 0x46, 0xb0, 0x4b, 0x6b, 0xe3, 0x6b, 0xda, 0xfa, 0x4c, 0xf9, 0x00, 0x79, 0xc4, 0xf2, 0x0a, + 0x90, 0xfe, 0x04, 0xcc, 0xc3, 0x6e, 0x97, 0x1c, 0xb5, 0xa0, 0x1f, 0x85, 0xb8, 0xd5, 0x4e, 0x62, + 0x5c, 0x9b, 0x58, 0xd3, 0xd6, 0x27, 0xdd, 0xd5, 0x2c, 0x35, 0x97, 0x25, 0xb1, 0x1f, 0x61, 0x79, + 0xb3, 0x62, 0xe9, 0x11, 0x5f, 0x71, 0x93, 0x18, 0xef, 0x6c, 0x7f, 0x77, 0x71, 0xb2, 0xa1, 0x54, + 0xf8, 0xe1, 0xe2, 0x64, 0xe3, 0xf6, 0x15, 0x6d, 0xe8, 0x08, 0x5d, 0x1b, 0x52, 0x87, 0xaf, 0xc0, + 0xcd, 0xcb, 0x52, 0x7b, 0x88, 0x1e, 0x10, 0x4c, 0x91, 0xee, 0x82, 0x39, 0x8c, 0x8e, 0x5a, 0x82, + 0xda, 0x92, 0x72, 0x4a, 0xed, 0x8d, 0x2c, 0x35, 0x6f, 0x2a, 0x85, 0x2e, 0x03, 0x2c, 0x6f, 0x06, + 0xa3, 0xa3, 0x2f, 0xf8, 0x82, 0xd8, 0xcb, 0xfa, 0x4b, 0x03, 0xef, 0x34, 0x69, 0xd0, 0x0c, 0x31, + 0x1b, 0xa6, 0x85, 0x1f, 0x83, 0x09, 0x18, 0x91, 0x04, 0x33, 0xd1, 0xc0, 0xe9, 0xad, 0x15, 0x5b, + 0xf9, 0x8b, 0xbb, 0x38, 0x37, 0xbc, 0xfd, 0x98, 0x84, 0xd8, 0xbd, 0x71, 0x9a, 0x9a, 0x23, 0xbd, + 0x9d, 0x24, 0xcd, 0xf2, 0x14, 0x9f, 0xf7, 0x22, 0x46, 0x1d, 0x14, 0x1e, 0xa2, 0x58, 0xf5, 0xb7, + 0xd4, 0x8b, 0x3c, 0x62, 0x79, 0x05, 0x68, 0xe7, 0x7e, 0x9f, 0x88, 0xab, 0x57, 0x88, 0x18, 0x85, + 0x98, 0x59, 0x0b, 0x60, 0x4e, 0x55, 0x97, 0xab, 0x66, 0xfd, 0x2b, 0x2b, 0xe6, 0x0d, 0x79, 0x3b, + 0x15, 0x7f, 0x0a, 0xe6, 0xb8, 0x3d, 0x3e, 0x8a, 0x49, 0xf4, 0xc8, 0xf7, 0x63, 0x44, 0xa9, 0x2a, + 0xfc, 0xdd, 0x2c, 0x35, 0x6b, 0x92, 0xc3, 0x01, 0xad, 0xe7, 0x31, 0x89, 0x5a, 0x50, 0x42, 0xac, + 0x9f, 0x2f, 0x4e, 0x36, 0x34, 0xaf, 0x9f, 0x59, 0x59, 0x0d, 0x61, 0x48, 0xa9, 0x06, 0xaf, 0xbc, + 0x50, 0xe3, 0x77, 0x4d, 0x4e, 0xf2, 0x1e, 0xc4, 0x01, 0x12, 0x4e, 0x1d, 0x46, 0x94, 0x3b, 0x60, + 0xbc, 0x3c, 0xc6, 0xf3, 0x59, 0x6a, 0x5e, 0xcf, 0xa7, 0x48, 0xb8, 0x4d, 0x86, 0xf5, 0x4d, 0x30, + 0xc5, 0x8d, 0x28, 0x66, 0x43, 0x15, 0xbb, 0x94, 0xa5, 0xe6, 0x7c, 0xcf, 0xa3, 0x22, 0x64, 0x79, + 0x93, 0x18, 0xc9, 0x79, 0xa9, 0x3e, 0x2b, 0xe2, 0xe4, 0x0d, 0xc9, 0xaf, 0xc9, 0x59, 0xe9, 0x15, + 0x53, 0xd4, 0xf9, 0xeb, 0x28, 0x58, 0x6c, 0xd2, 0xe0, 0x29, 0x62, 0xc2, 0xf7, 0x4d, 0xc4, 0xa0, + 0x0f, 0x19, 0x1c, 0xa6, 0x58, 0x0f, 0x4c, 0x46, 0x8a, 0xa6, 0x3c, 0x70, 0xab, 0xe7, 0x01, 0xbc, + 0x5f, 0x78, 0x20, 0xdf, 0xdb, 0x5d, 0x56, 0x3e, 0x50, 0x66, 0xce, 0xc9, 0x96, 0x57, 0xec, 0xa3, + 0xff, 0xa4, 0x81, 0xc5, 0xde, 0x8d, 0xd1, 0xf2, 0x43, 0x0a, 0xdb, 0x5d, 0xe4, 0x0b, 0x8d, 0xa6, + 0xb7, 0x9e, 0xd8, 0xff, 0xff, 0xa2, 0xd8, 0xaf, 0xa8, 0xc8, 0x2e, 0xae, 0x9b, 0x5d, 0xb5, 0x99, + 0x5b, 0xcf, 0x52, 0xd3, 0x50, 0x5e, 0x1c, 0xcc, 0x65, 0x79, 0x0b, 0xb0, 0x9f, 0x62, 0x3c, 0x03, + 0x0b, 0x03, 0xfb, 0xe8, 0x1f, 0x82, 0x59, 0xba, 0x47, 0x92, 0xae, 0x9f, 0x73, 0x85, 0x66, 0x93, + 0xee, 0x4a, 0x96, 0x9a, 0x37, 0x94, 0x66, 0x97, 0xe2, 0x96, 0x37, 0x23, 0x17, 0xd4, 0x16, 0x3b, + 0xef, 0xf7, 0x35, 0xf5, 0xde, 0x15, 0x4d, 0xa5, 0x88, 0xc9, 0xdb, 0xaf, 0x51, 0x88, 0x76, 0x0b, + 0xac, 0xbe, 0xa2, 0xda, 0xa2, 0xbf, 0xa7, 0x9a, 0xf0, 0xf6, 0xb3, 0x03, 0x1f, 0x32, 0xf4, 0xb9, + 0x78, 0xbe, 0xf4, 0x07, 0x60, 0x0a, 0x26, 0x6c, 0x8f, 0xc4, 0x21, 0x3b, 0x56, 0xed, 0xad, 0xfd, + 0xf1, 0x4b, 0x63, 0x49, 0x35, 0x4d, 0x8d, 0xd0, 0x53, 0x16, 0x87, 0x38, 0xf0, 0x7a, 0x50, 0x7d, + 0x17, 0x4c, 0xc8, 0x07, 0x50, 0xb5, 0xf9, 0xce, 0xeb, 0xda, 0x20, 0xf3, 0xb9, 0x63, 0xbc, 0xdf, + 0x9e, 0xe2, 0xee, 0x3c, 0xe4, 0xb5, 0xf6, 0x76, 0xe5, 0xe5, 0xbe, 0x77, 0x45, 0xb9, 0x89, 0x38, + 0x75, 0x43, 0x12, 0xad, 0x15, 0xb0, 0xdc, 0x57, 0x49, 0x5e, 0xe5, 0xd6, 0x6f, 0xe3, 0x60, 0xb4, + 0x49, 0x03, 0x3d, 0x01, 0xd3, 0xe5, 0xb7, 0xd7, 0xae, 0xe0, 0x93, 0x12, 0xde, 0x78, 0x30, 0x1c, + 0xbe, 0x78, 0x70, 0xbe, 0x06, 0x63, 0xe2, 0xa1, 0xb8, 0x5b, 0x81, 0xcf, 0x81, 0x86, 0x53, 0x11, + 0x58, 0xce, 0x20, 0x2e, 0xe6, 0x2a, 0x19, 0x38, 0xb0, 0x52, 0x86, 0xf2, 0x85, 0x27, 0xa4, 0x2b, + 0x5d, 0x76, 0x95, 0xa4, 0xeb, 0xe1, 0xab, 0x49, 0x37, 0x78, 0xff, 0xe8, 0xdf, 0x6b, 0x60, 0x7e, + 0xe0, 0xf2, 0xd9, 0x7e, 0x83, 0xf9, 0x36, 0x3e, 0x78, 0x03, 0x52, 0x71, 0x8c, 0x17, 0xe0, 0xfa, + 0xa5, 0x11, 0xa9, 0x22, 0x5f, 0x99, 0x60, 0x3c, 0x1c, 0x92, 0x90, 0x67, 0x36, 0xc6, 0xbf, 0xe5, + 0x0f, 0x98, 0xdb, 0x3d, 0x3d, 0xab, 0x6b, 0x2f, 0xcf, 0xea, 0xda, 0xdf, 0x67, 0x75, 0xed, 0xc7, + 0xf3, 0xfa, 0xc8, 0xcb, 0xf3, 0xfa, 0xc8, 0x9f, 0xe7, 0xf5, 0x91, 0x2f, 0xbd, 0x20, 0x64, 0x7b, + 0x49, 0xdb, 0xee, 0x90, 0xc8, 0xf9, 0x24, 0xcf, 0xf1, 0x19, 0x6c, 0x53, 0xa7, 0xc8, 0xd8, 0xe8, + 0x90, 0x18, 0x95, 0x3f, 0xf7, 0x60, 0x88, 0x9d, 0x88, 0xf8, 0x49, 0x17, 0xd1, 0xcb, 0x23, 0xc5, + 0x8e, 0x0f, 0x10, 0x6d, 0x4f, 0x88, 0x3f, 0x57, 0xb7, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xaa, + 0x21, 0x43, 0x44, 0xc3, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -988,6 +1078,16 @@ func (m *MsgCreateDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AllowAdminBurn { + i-- + if m.AllowAdminBurn { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.Decimals != 0 { i = encodeVarintTx(dAtA, i, uint64(m.Decimals)) i-- @@ -1074,6 +1174,13 @@ func (m *MsgMint) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintTx(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1137,6 +1244,13 @@ func (m *MsgBurn) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.BurnFromAddress) > 0 { + i -= len(m.BurnFromAddress) + copy(dAtA[i:], m.BurnFromAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.BurnFromAddress))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1267,6 +1381,18 @@ func (m *MsgSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AdminBurnDisabled != nil { + { + size, err := m.AdminBurnDisabled.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } { size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1287,6 +1413,39 @@ func (m *MsgSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ShouldDisable { + i-- + if m.ShouldDisable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *MsgSetDenomMetadataResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1409,6 +1568,9 @@ func (m *MsgCreateDenom) Size() (n int) { if m.Decimals != 0 { n += 1 + sovTx(uint64(m.Decimals)) } + if m.AllowAdminBurn { + n += 2 + } return n } @@ -1437,6 +1599,10 @@ func (m *MsgMint) Size() (n int) { } l = m.Amount.Size() n += 1 + l + sovTx(uint64(l)) + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -1461,6 +1627,10 @@ func (m *MsgBurn) Size() (n int) { } l = m.Amount.Size() n += 1 + l + sovTx(uint64(l)) + l = len(m.BurnFromAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -1515,6 +1685,22 @@ func (m *MsgSetDenomMetadata) Size() (n int) { } l = m.Metadata.Size() n += 1 + l + sovTx(uint64(l)) + if m.AdminBurnDisabled != nil { + l = m.AdminBurnDisabled.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ShouldDisable { + n += 2 + } return n } @@ -1733,6 +1919,26 @@ func (m *MsgCreateDenom) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowAdminBurn", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AllowAdminBurn = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -1930,6 +2136,38 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -2095,6 +2333,38 @@ func (m *MsgBurn) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnFromAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BurnFromAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -2456,6 +2726,112 @@ func (m *MsgSetDenomMetadata) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminBurnDisabled", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminBurnDisabled == nil { + m.AdminBurnDisabled = &MsgSetDenomMetadata_AdminBurnDisabled{} + } + if err := m.AdminBurnDisabled.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AdminBurnDisabled: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AdminBurnDisabled: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ShouldDisable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ShouldDisable = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/chain/types/account.go b/chain/types/account.go deleted file mode 100644 index 7d6be3d5..00000000 --- a/chain/types/account.go +++ /dev/null @@ -1,186 +0,0 @@ -package types - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" - - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "gopkg.in/yaml.v2" - - "cosmossdk.io/errors" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - ethcmn "github.com/ethereum/go-ethereum/common" - ethcrypto "github.com/ethereum/go-ethereum/crypto" -) - -var ( - _ sdk.AccountI = (*EthAccount)(nil) - _ authtypes.GenesisAccount = (*EthAccount)(nil) - _ codectypes.UnpackInterfacesMessage = (*EthAccount)(nil) -) - -var EmptyCodeHash = ethcrypto.Keccak256(nil) - -// ---------------------------------------------------------------------------- -// Main Ethermint account -// ---------------------------------------------------------------------------- - -// ProtoAccount defines the prototype function for BaseAccount used for an -// AccountKeeper. -func ProtoAccount() sdk.AccountI { - return &EthAccount{ - BaseAccount: &authtypes.BaseAccount{}, - CodeHash: ethcrypto.Keccak256(nil), - } -} - -// EthAddress returns the account address ethereum format. -func (acc EthAccount) EthAddress() ethcmn.Address { - return ethcmn.BytesToAddress(acc.GetAddress().Bytes()) -} - -type ethAccountPretty struct { - Address string `json:"address" yaml:"address"` - EthAddress string `json:"eth_address" yaml:"eth_address"` - PubKey string `json:"public_key" yaml:"public_key"` - AccountNumber uint64 `json:"account_number" yaml:"account_number"` - Sequence uint64 `json:"sequence" yaml:"sequence"` - CodeHash string `json:"code_hash" yaml:"code_hash"` -} - -// MarshalYAML returns the YAML representation of an account. -func (acc EthAccount) MarshalYAML() (interface{}, error) { - alias := ethAccountPretty{ - Address: acc.Address, - EthAddress: acc.EthAddress().String(), - AccountNumber: acc.AccountNumber, - Sequence: acc.Sequence, - CodeHash: ethcmn.Bytes2Hex(acc.CodeHash), - PubKey: "", - } - - var err error - - bz, err := yaml.Marshal(alias) - if err != nil { - return nil, err - } - - return string(bz), err -} - -// MarshalJSON returns the JSON representation of an EthAccount. -func (acc EthAccount) MarshalJSON() ([]byte, error) { - var ethAddress = "" - - if acc.BaseAccount != nil && acc.Address == "" { - ethAddress = acc.EthAddress().String() - } - - alias := ethAccountPretty{ - Address: acc.Address, - EthAddress: ethAddress, - AccountNumber: acc.AccountNumber, - Sequence: acc.Sequence, - CodeHash: ethcmn.Bytes2Hex(acc.CodeHash), - PubKey: "", - } - - return json.Marshal(alias) -} - -// UnmarshalJSON unmarshals raw JSON bytes into an EthAccount. -func (acc *EthAccount) UnmarshalJSON(bz []byte) error { - var ( - alias ethAccountPretty - err error - ) - - if err := json.Unmarshal(bz, &alias); err != nil { - return err - } - - switch { - case alias.Address != "" && alias.EthAddress != "": - // Both addresses provided. Verify correctness - ethAddress := ethcmn.HexToAddress(alias.EthAddress) - - var address sdk.AccAddress - address, err = sdk.AccAddressFromBech32(alias.Address) - if err != nil { - return err - } - - ethAddressFromAccAddress := ethcmn.BytesToAddress(address.Bytes()) - - if !bytes.Equal(ethAddress.Bytes(), address.Bytes()) { - err = errors.Wrapf( - sdkerrors.ErrInvalidAddress, - "expected %s, got %s", - ethAddressFromAccAddress.String(), ethAddress.String(), - ) - } - - case alias.Address != "" && alias.EthAddress == "": - // unmarshal sdk.AccAddress only. Do nothing here - case alias.Address == "" && alias.EthAddress != "": - // retrieve sdk.AccAddress from ethereum address - ethAddress := ethcmn.HexToAddress(alias.EthAddress) - alias.Address = sdk.AccAddress(ethAddress.Bytes()).String() - case alias.Address == "" && alias.EthAddress == "": - err = errors.Wrapf( - sdkerrors.ErrInvalidAddress, - "account must contain address in Ethereum Hex or Cosmos Bech32 format", - ) - } - - if err != nil { - return err - } - - acc.BaseAccount = &authtypes.BaseAccount{ - Address: alias.Address, - AccountNumber: alias.AccountNumber, - Sequence: alias.Sequence, - } - - acc.CodeHash = ethcmn.HexToHash(alias.CodeHash).Bytes() - - return nil -} - -// String implements the fmt.Stringer interface -func (acc EthAccount) String() string { - out, _ := yaml.Marshal(acc) - return string(out) -} - -func CosmosAddressToEthAddress(addr string) (ethcmn.Address, error) { - if strings.HasPrefix(addr, sdk.GetConfig().GetBech32AccountAddrPrefix()) { - // Check to see if address is Cosmos bech32 formatted - toAddr, err := sdk.AccAddressFromBech32(addr) - if err != nil { - return ethcmn.Address{}, errors.Wrap(err, "must provide a valid Bech32 address") - } - ethAddr := ethcmn.BytesToAddress(toAddr.Bytes()) - return ethAddr, nil - } - - if !strings.HasPrefix(addr, "0x") { - addr = "0x" + addr - } - - valid := ethcmn.IsHexAddress(addr) - if !valid { - return ethcmn.Address{}, fmt.Errorf("%s is not a valid Ethereum or Cosmos address", addr) - } - - ethAddr := ethcmn.HexToAddress(addr) - - return ethAddr, nil -} diff --git a/chain/types/chain_id.go b/chain/types/chain_id.go deleted file mode 100644 index 6882db48..00000000 --- a/chain/types/chain_id.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - "fmt" - "math/big" - "regexp" - "strings" - - "cosmossdk.io/errors" - tmrand "github.com/cometbft/cometbft/libs/rand" -) - -var ( - regexChainID = `[a-z]*` - regexSeparator = `-{1}` - regexEpoch = `[1-9][0-9]*` - injectiveChainID = regexp.MustCompile(fmt.Sprintf(`^(%s)%s(%s)$`, regexChainID, regexSeparator, regexEpoch)) -) - -// IsValidChainID returns false if the given chain identifier is incorrectly formatted. -func IsValidChainID(chainID string) bool { - if len(chainID) > 48 { - return false - } - - return injectiveChainID.MatchString(chainID) -} - -// ParseChainID parses a string chain identifier's epoch to an Ethereum-compatible -// chain-id in *big.Int format. The function returns an error if the chain-id has an invalid format -func ParseChainID(chainID string) (*big.Int, error) { - chainID = strings.TrimSpace(chainID) - if len(chainID) > 48 { - return nil, errors.Wrapf(ErrInvalidChainID, "chain-id '%s' cannot exceed 48 chars", chainID) - } - - matches := injectiveChainID.FindStringSubmatch(chainID) - if matches == nil || len(matches) != 3 || matches[1] == "" { - return nil, errors.Wrap(ErrInvalidChainID, chainID) - } - - // verify that the chain-id entered is a base 10 integer - chainIDInt, ok := new(big.Int).SetString(matches[2], 10) - if !ok { - return nil, errors.Wrapf(ErrInvalidChainID, "epoch %s must be base-10 integer format", matches[2]) - } - - return chainIDInt, nil -} - -// GenerateRandomChainID returns a random chain-id in the valid format. -func GenerateRandomChainID() string { - return fmt.Sprintf("injective-%d", 10+tmrand.Intn(10000)) -} diff --git a/chain/types/code.go b/chain/types/code.go deleted file mode 100644 index fa1da75d..00000000 --- a/chain/types/code.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -// ---------------------------------------------------------------------------- -// Code -// ---------------------------------------------------------------------------- - -// Code is account Code type alias -type Code []byte - -func (c Code) String() string { - return string(c) -} diff --git a/chain/types/coin.go b/chain/types/coin.go deleted file mode 100644 index b8ec01ae..00000000 --- a/chain/types/coin.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const ( - // INJ defines the default coin denomination used in Ethermint in: - // - // - Staking parameters: denomination used as stake in the dPoS chain - // - Mint parameters: denomination minted due to fee distribution rewards - // - Governance parameters: denomination used for spam prevention in proposal deposits - // - Crisis parameters: constant fee denomination used for spam prevention to check broken invariant - // - EVM parameters: denomination used for running EVM state transitions in Ethermint. - InjectiveCoin string = "inj" - - // BaseDenomUnit defines the base denomination unit for Photons. - // 1 photon = 1x10^{BaseDenomUnit} inj - BaseDenomUnit = 18 -) - -// NewInjectiveCoin is a utility function that returns an "inj" coin with the given math.Int amount. -// The function will panic if the provided amount is negative. -func NewInjectiveCoin(amount math.Int) sdk.Coin { - return sdk.NewCoin(InjectiveCoin, amount) -} - -// NewInjectiveCoinInt64 is a utility function that returns an "inj" coin with the given int64 amount. -// The function will panic if the provided amount is negative. -func NewInjectiveCoinInt64(amount int64) sdk.Coin { - return sdk.NewInt64Coin(InjectiveCoin, amount) -} diff --git a/chain/types/errors.go b/chain/types/errors.go deleted file mode 100644 index 2408fad5..00000000 --- a/chain/types/errors.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -const ( - // RootCodespace is the codespace for all errors defined in this package - RootCodespace = "injective" -) - -// NOTE: We can't use 1 since that error code is reserved for internal errors. - -var ( - // ErrInvalidChainID returns an error resulting from an invalid chain ID. - ErrInvalidChainID = errors.Register(RootCodespace, 3, "invalid chain ID") -) diff --git a/chain/types/gas.go b/chain/types/gas.go deleted file mode 100644 index b14660de..00000000 --- a/chain/types/gas.go +++ /dev/null @@ -1,97 +0,0 @@ -package types - -import ( - "fmt" - "math" - "sync" - - storetypes "cosmossdk.io/store/types" -) - -type infiniteGasMeter struct { - consumed storetypes.Gas - mux sync.RWMutex -} - -// NewThreadsafeInfiniteGasMeter returns a reference to a new thread-safe infiniteGasMeter. -func NewThreadsafeInfiniteGasMeter() storetypes.GasMeter { - return &infiniteGasMeter{ - consumed: 0, - } -} - -func (g *infiniteGasMeter) GasRemaining() storetypes.Gas { - return math.MaxUint64 -} - -func (g *infiniteGasMeter) GasConsumed() storetypes.Gas { - g.mux.RLock() - defer g.mux.RUnlock() - - return g.consumed -} - -func (g *infiniteGasMeter) GasConsumedToLimit() storetypes.Gas { - g.mux.RLock() - defer g.mux.RUnlock() - - return g.consumed -} - -func (g *infiniteGasMeter) Limit() storetypes.Gas { - return 0 -} - -func (g *infiniteGasMeter) ConsumeGas(amount storetypes.Gas, descriptor string) { - g.mux.Lock() - defer g.mux.Unlock() - - var overflow bool - // TODO: Should we set the consumed field after overflow checking? - g.consumed, overflow = addUint64Overflow(g.consumed, amount) - if overflow { - panic(storetypes.ErrorGasOverflow{Descriptor: descriptor}) - } -} - -// RefundGas will deduct the given amount from the gas consumed. If the amount is greater than the -// gas consumed, the function will panic. -// -// Use case: This functionality enables refunding gas to the trasaction or block gas pools so that -// EVM-compatible chains can fully support the go-ethereum StateDb interface. -// See https://github.com/cosmos/cosmos-sdk/pull/9403 for reference. -func (g *infiniteGasMeter) RefundGas(amount storetypes.Gas, descriptor string) { - g.mux.Lock() - defer g.mux.Unlock() - - if g.consumed < amount { - panic(storetypes.ErrorNegativeGasConsumed{Descriptor: descriptor}) - } - - g.consumed -= amount -} - -func (g *infiniteGasMeter) IsPastLimit() bool { - return false -} - -func (g *infiniteGasMeter) IsOutOfGas() bool { - return false -} - -func (g *infiniteGasMeter) String() string { - g.mux.RLock() - defer g.mux.RUnlock() - - return fmt.Sprintf("InfiniteGasMeter:\n consumed: %d", g.consumed) -} - -// addUint64Overflow performs the addition operation on two uint64 integers and -// returns a boolean on whether or not the result overflows. -func addUint64Overflow(a, b uint64) (uint64, bool) { - if math.MaxUint64-a < b { - return 0, true - } - - return a + b, false -} diff --git a/chain/types/int.go b/chain/types/int.go deleted file mode 100644 index af991c40..00000000 --- a/chain/types/int.go +++ /dev/null @@ -1,22 +0,0 @@ -package types - -import "math/big" - -// MarshalBigInt marshals big int into text string for consistent encoding -func MarshalBigInt(i *big.Int) (string, error) { - bz, err := i.MarshalText() - if err != nil { - return "", err - } - return string(bz), nil -} - -// UnmarshalBigInt unmarshals string from *big.Int -func UnmarshalBigInt(s string) (*big.Int, error) { - ret := new(big.Int) - err := ret.UnmarshalText([]byte(s)) - if err != nil { - return nil, err - } - return ret, nil -} diff --git a/chain/types/params.go b/chain/types/params.go deleted file mode 100644 index 9d322668..00000000 --- a/chain/types/params.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -const ( - // DefaultGasPrice is default gas price for evm transactions - DefaultGasPrice = 0 - // DefaultRPCGasLimit is default gas limit for RPC call operations - DefaultRPCGasLimit = 80000000 -) diff --git a/chain/wasmx/types/exec_callback_msgs.go b/chain/wasmx/types/exec_callback_msgs.go deleted file mode 100644 index 784a2abe..00000000 --- a/chain/wasmx/types/exec_callback_msgs.go +++ /dev/null @@ -1,25 +0,0 @@ -package types - -func NewRegistryDeregisterCallbackMsg() RegistryDeregisterCallbackMsg { - return RegistryDeregisterCallbackMsg{ - DeregisterCallback: &DeregisterCallbackMsg{}, - } -} - -type RegistryDeregisterCallbackMsg struct { - DeregisterCallback *DeregisterCallbackMsg `json:"deregister,omitempty"` -} - -type DeregisterCallbackMsg struct{} - -func NewRegistryDeactivateCallbackMsg() RegistryDeactivateCallbackMsg { - return RegistryDeactivateCallbackMsg{ - DeactivateCallback: &DeactivateCallbackMsg{}, - } -} - -type RegistryDeactivateCallbackMsg struct { - DeactivateCallback *DeactivateCallbackMsg `json:"deactivate,omitempty"` -} - -type DeactivateCallbackMsg struct{} diff --git a/chain/wasmx/types/exec_msgs.go b/chain/wasmx/types/exec_msgs.go deleted file mode 100644 index 1f6ad121..00000000 --- a/chain/wasmx/types/exec_msgs.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -import ( - "encoding/json" -) - -func NewBeginBlockerExecMsg() ([]byte, error) { - // Construct Exec message - beginBlocker := CWBeginBlockerExecMsg{BeginBlockerMsg: &BeginBlockerMsg{}} - - // nolint:all - // execMsg := []byte(`{"begin_blocker":{}}`) - execMsg, err := json.Marshal(beginBlocker) - if err != nil { - return nil, err - } - - return execMsg, nil -} - -type CWBeginBlockerExecMsg struct { - BeginBlockerMsg *BeginBlockerMsg `json:"begin_blocker,omitempty"` -} - -type BeginBlockerMsg struct { -} diff --git a/chain/wasmx/types/expected_keepers.go b/chain/wasmx/types/expected_keepers.go deleted file mode 100644 index e9d5d692..00000000 --- a/chain/wasmx/types/expected_keepers.go +++ /dev/null @@ -1,28 +0,0 @@ -package types - -import ( - "context" - - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error - SendCoins(ctx context.Context, from, to sdk.AccAddress, amt sdk.Coins) error -} - -type WasmViewKeeper interface { - wasmtypes.ViewKeeper -} - -type WasmContractOpsKeeper interface { - wasmtypes.ContractOpsKeeper -} diff --git a/chain/wasmx/types/genesis.go b/chain/wasmx/types/genesis.go deleted file mode 100644 index 3739aca4..00000000 --- a/chain/wasmx/types/genesis.go +++ /dev/null @@ -1,18 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/wasmx/types/paramset.go b/chain/wasmx/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/wasmx/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/wasmx/types/util.go b/chain/wasmx/types/util.go deleted file mode 100644 index 49eb4491..00000000 --- a/chain/wasmx/types/util.go +++ /dev/null @@ -1,17 +0,0 @@ -package types - -import ( - "github.com/CosmWasm/wasmd/x/wasm/types" - sdktypes "github.com/cosmos/cosmos-sdk/types" -) - -func IsAllowed(accessConfig types.AccessConfig, actor sdktypes.AccAddress) bool { - if accessConfig.Permission == types.AccessTypeAnyOfAddresses { - for _, v := range accessConfig.Addresses { - if v == actor.String() { - return true - } - } - } - return false -} diff --git a/client/chain/chain.go b/client/chain/chain.go index 7475f506..26d50e5b 100644 --- a/client/chain/chain.go +++ b/client/chain/chain.go @@ -287,11 +287,18 @@ type ChainClient interface { FetchIBCConnectionParams(ctx context.Context) (*ibcconnectiontypes.QueryConnectionParamsResponse, error) // Permissions module - FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) - FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) - FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) - FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) - FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) + FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) + FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) + FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) + FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) + FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) + FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) + FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) + FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) + FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) + FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) + FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) + FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) GetNetwork() common.Network Close() @@ -2602,48 +2609,108 @@ func (c *chainClient) FetchIBCConnectionParams(ctx context.Context) (*ibcconnect // Permissions module -func (c *chainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { - req := &permissionstypes.QueryAllNamespacesRequest{} - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AllNamespaces, req) +func (c *chainClient) FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) { + req := &permissionstypes.QueryNamespaceDenomsRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.NamespaceDenoms, req) return res, err } -func (c *chainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { - req := &permissionstypes.QueryNamespaceByDenomRequest{ - Denom: denom, - IncludeRoles: includeRoles, +func (c *chainClient) FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) { + req := &permissionstypes.QueryNamespacesRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Namespaces, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) { + req := &permissionstypes.QueryNamespaceRequest{ + Denom: denom, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.NamespaceByDenom, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Namespace, req) return res, err } -func (c *chainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { - req := &permissionstypes.QueryAddressRolesRequest{ - Denom: denom, - Address: address, +func (c *chainClient) FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) { + req := &permissionstypes.QueryRolesByActorRequest{ + Denom: denom, + Actor: actor, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressRoles, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RolesByActor, req) return res, err } -func (c *chainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { - req := &permissionstypes.QueryAddressesByRoleRequest{ +func (c *chainClient) FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) { + req := &permissionstypes.QueryActorsByRoleRequest{ Denom: denom, Role: role, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressesByRole, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.ActorsByRole, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) { + req := &permissionstypes.QueryRoleManagersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RoleManagers, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) { + req := &permissionstypes.QueryRoleManagerRequest{ + Denom: denom, + Manager: manager, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RoleManager, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) { + req := &permissionstypes.QueryPolicyStatusesRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PolicyStatuses, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) { + req := &permissionstypes.QueryPolicyManagerCapabilitiesRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PolicyManagerCapabilities, req) return res, err } -func (c *chainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { - req := &permissionstypes.QueryVouchersForAddressRequest{ +func (c *chainClient) FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) { + req := &permissionstypes.QueryVouchersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Vouchers, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) { + req := &permissionstypes.QueryVoucherRequest{ + Denom: denom, Address: address, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.VouchersForAddress, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Voucher, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) { + req := &permissionstypes.QueryModuleStateRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PermissionsModuleState, req) return res, err } diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index e7f6d750..d5881e50 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -751,24 +751,52 @@ func (c *MockChainClient) FetchIBCConnectionParams(ctx context.Context) (*ibccon // Permissions module -func (c *MockChainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { - return &permissionstypes.QueryAllNamespacesResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) { + return &permissionstypes.QueryNamespaceDenomsResponse{}, nil } -func (c *MockChainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { - return &permissionstypes.QueryNamespaceByDenomResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) { + return &permissionstypes.QueryNamespacesResponse{}, nil } -func (c *MockChainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { - return &permissionstypes.QueryAddressRolesResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) { + return &permissionstypes.QueryNamespaceResponse{}, nil } -func (c *MockChainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { - return &permissionstypes.QueryAddressesByRoleResponse{}, nil +func (c *MockChainClient) FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) { + return &permissionstypes.QueryRolesByActorResponse{}, nil } -func (c *MockChainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { - return &permissionstypes.QueryVouchersForAddressResponse{}, nil +func (c *MockChainClient) FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) { + return &permissionstypes.QueryActorsByRoleResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) { + return &permissionstypes.QueryRoleManagersResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) { + return &permissionstypes.QueryRoleManagerResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) { + return &permissionstypes.QueryPolicyStatusesResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) { + return &permissionstypes.QueryPolicyManagerCapabilitiesResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) { + return &permissionstypes.QueryVouchersResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) { + return &permissionstypes.QueryVoucherResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) { + return &permissionstypes.QueryModuleStateResponse{}, nil } func (c *MockChainClient) GetNetwork() common.Network { diff --git a/client/chain/markets_assistant.go b/client/chain/markets_assistant.go index 52340223..924f41c4 100644 --- a/client/chain/markets_assistant.go +++ b/client/chain/markets_assistant.go @@ -317,16 +317,16 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai continue } - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.SpotMarket{ Id: marketInfo.GetMarketId(), - Status: marketInfo.GetMarketStatus().String(), + Status: marketInfo.Status.String(), Ticker: marketInfo.GetTicker(), BaseToken: baseToken, QuoteToken: quoteToken, @@ -350,29 +350,29 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai for _, fullMarket := range derivativeMarkets.GetMarkets() { marketInfo := fullMarket.GetMarket() - quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.GetQuoteDenom()] + quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.QuoteDenom] if !quoteTokenFound { // Ignore the market because it references a token that is not in the token list continue } - initialMarginRatio := decimal.RequireFromString(marketInfo.GetInitialMarginRatio().String()) + initialMarginRatio := decimal.RequireFromString(marketInfo.InitialMarginRatio.String()) maintenanceMarginRatio := decimal.RequireFromString(marketInfo.MaintenanceMarginRatio.String()) - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.DerivativeMarket{ Id: marketInfo.MarketId, - Status: marketInfo.GetMarketStatus().String(), - Ticker: marketInfo.GetTicker(), + Status: marketInfo.Status.String(), + Ticker: marketInfo.Ticker, OracleBase: marketInfo.OracleBase, OracleQuote: marketInfo.OracleQuote, OracleType: marketInfo.OracleType.String(), - OracleScaleFactor: marketInfo.GetOracleScaleFactor(), + OracleScaleFactor: marketInfo.OracleScaleFactor, InitialMarginRatio: initialMarginRatio, MaintenanceMarginRatio: maintenanceMarginRatio, QuoteToken: quoteToken, @@ -394,27 +394,27 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai } for _, marketInfo := range binaryOptionsMarkets.GetMarkets() { - quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.GetQuoteDenom()] + quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.QuoteDenom] if !quoteTokenFound { // Ignore the market because it references a token that is not in the token list continue } - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.BinaryOptionMarket{ Id: marketInfo.MarketId, - Status: marketInfo.GetMarketStatus().String(), - Ticker: marketInfo.GetTicker(), + Status: marketInfo.Status.String(), + Ticker: marketInfo.Ticker, OracleSymbol: marketInfo.OracleSymbol, OracleProvider: marketInfo.OracleProvider, OracleType: marketInfo.OracleType.String(), - OracleScaleFactor: marketInfo.GetOracleScaleFactor(), + OracleScaleFactor: marketInfo.OracleScaleFactor, ExpirationTimestamp: marketInfo.ExpirationTimestamp, SettlementTimestamp: marketInfo.SettlementTimestamp, QuoteToken: quoteToken, diff --git a/examples/chain/permissions/1_MsgCreateNamespace/example.go b/examples/chain/permissions/1_MsgCreateNamespace/example.go new file mode 100644 index 00000000..087a4f81 --- /dev/null +++ b/examples/chain/permissions/1_MsgCreateNamespace/example.go @@ -0,0 +1,135 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + role1 := permissionstypes.Role{ + Name: "EVERYONE", + RoleId: 0, + Permissions: uint32(permissionstypes.Action_RECEIVE | permissionstypes.Action_SEND), + } + role2 := permissionstypes.Role{ + Name: "admin", + RoleId: 1, + Permissions: uint32(permissionstypes.Action_MODIFY_ROLE_PERMISSIONS), + } + role3 := permissionstypes.Role{ + Name: "user", + RoleId: 2, + Permissions: uint32( + permissionstypes.Action_MINT | + permissionstypes.Action_RECEIVE | + permissionstypes.Action_BURN | + permissionstypes.Action_SEND), + } + + actor_role1 := permissionstypes.ActorRoles{ + Actor: "inj1specificactoraddress", + Roles: []string{"admin"}, + } + actor_role2 := permissionstypes.ActorRoles{ + Actor: "inj1anotheractoraddress", + Roles: []string{"user"}, + } + + role_manager := permissionstypes.RoleManager{ + Manager: "inj1manageraddress", + Roles: []string{"admin"}, + } + + policy_status1 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_MINT, + IsDisabled: false, + IsSealed: false, + } + policy_status2 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_BURN, + IsDisabled: false, + IsSealed: false, + } + + policy_manager_capability := permissionstypes.PolicyManagerCapability{ + Manager: "inj1policymanageraddress", + Action: permissionstypes.Action_MODIFY_CONTRACT_HOOK, + CanDisable: true, + CanSeal: false, + } + + namespace := permissionstypes.Namespace{ + Denom: denom, + ContractHook: "", + RolePermissions: []*permissionstypes.Role{&role1, &role2, &role3}, + ActorRoles: []*permissionstypes.ActorRoles{&actor_role1, &actor_role2}, + RoleManagers: []*permissionstypes.RoleManager{&role_manager}, + PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2}, + PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability}, + } + + msg := &permissionstypes.MsgCreateNamespace{ + Sender: senderAddress.String(), + Namespace: namespace, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/2_DeleteNamespace/example.go b/examples/chain/permissions/2_DeleteNamespace/example.go deleted file mode 100644 index 611f569e..00000000 --- a/examples/chain/permissions/2_DeleteNamespace/example.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - - msg := &permissionstypes.MsgDeleteNamespace{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/2_MsgUpdateNamespace/example.go b/examples/chain/permissions/2_MsgUpdateNamespace/example.go new file mode 100644 index 00000000..6d50bd00 --- /dev/null +++ b/examples/chain/permissions/2_MsgUpdateNamespace/example.go @@ -0,0 +1,113 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + role1 := permissionstypes.Role{ + Name: "EVERYONE", + RoleId: 0, + Permissions: uint32(permissionstypes.Action_UNSPECIFIED), + } + role2 := permissionstypes.Role{ + Name: "user", + RoleId: 2, + Permissions: uint32(permissionstypes.Action_RECEIVE | permissionstypes.Action_SEND), + } + + role_manager := permissionstypes.RoleManager{ + Manager: "inj1manageraddress", + Roles: []string{"admin", "user"}, + } + + policy_status1 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_MINT, + IsDisabled: true, + IsSealed: false, + } + policy_status2 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_BURN, + IsDisabled: false, + IsSealed: true, + } + + policy_manager_capability := permissionstypes.PolicyManagerCapability{ + Manager: "inj1policymanageraddress", + Action: permissionstypes.Action_MODIFY_ROLE_PERMISSIONS, + CanDisable: true, + CanSeal: false, + } + + msg := &permissionstypes.MsgUpdateNamespace{ + Sender: senderAddress.String(), + Denom: denom, + ContractHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"}, + RolePermissions: []*permissionstypes.Role{&role1, &role2}, + RoleManagers: []*permissionstypes.RoleManager{&role_manager}, + PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2}, + PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability}, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/1_CreateNamespace/example.go b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go similarity index 64% rename from examples/chain/permissions/1_CreateNamespace/example.go rename to examples/chain/permissions/3_MsgUpdateActorRoles/example.go index 540d2a9b..dc9d5594 100644 --- a/examples/chain/permissions/1_CreateNamespace/example.go +++ b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go @@ -55,30 +55,29 @@ func main() { panic(err) } - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - namespace := permissionstypes.Namespace{ - Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", - RolePermissions: []*permissionstypes.Role{ - { - Role: permissionstypes.EVERYONE, - Permissions: uint32(permissionstypes.Action_MINT | permissionstypes.Action_RECEIVE | permissionstypes.Action_BURN), - }, - { - Role: "blacklisted", - Permissions: 0, - }, - }, - AddressRoles: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + roleActors1 := permissionstypes.RoleActors{ + Role: "admin", + Actors: []string{"inj1actoraddress1", "inj1actoraddress2"}, + } + roleActors2 := permissionstypes.RoleActors{ + Role: "user", + Actors: []string{"inj1actoraddress3"}, + } + roleActors3 := permissionstypes.RoleActors{ + Role: "user", + Actors: []string{"inj1actoraddress4"}, + } + roleActors4 := permissionstypes.RoleActors{ + Role: "admin", + Actors: []string{"inj1actoraddress5"}, } - msg := &permissionstypes.MsgCreateNamespace{ - Sender: senderAddress.String(), - Namespace: namespace, + msg := &permissionstypes.MsgUpdateActorRoles{ + Sender: senderAddress.String(), + Denom: denom, + RoleActorsToAdd: []*permissionstypes.RoleActors{&roleActors1, &roleActors2}, + RoleActorsToRevoke: []*permissionstypes.RoleActors{&roleActors3, &roleActors4}, } //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/permissions/3_UpdateNamespace/example.go b/examples/chain/permissions/3_UpdateNamespace/example.go deleted file mode 100644 index 2fd48eaf..00000000 --- a/examples/chain/permissions/3_UpdateNamespace/example.go +++ /dev/null @@ -1,78 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - - msg := &permissionstypes.MsgUpdateNamespace{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - WasmHook: &permissionstypes.MsgUpdateNamespace_MsgSetWasmHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"}, - SendsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetSendsPaused{NewValue: true}, - MintsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetMintsPaused{NewValue: true}, - BurnsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetBurnsPaused{NewValue: true}, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/6_ClaimVoucher/example.go b/examples/chain/permissions/4_MsgClaimVoucher/example.go similarity index 100% rename from examples/chain/permissions/6_ClaimVoucher/example.go rename to examples/chain/permissions/4_MsgClaimVoucher/example.go diff --git a/examples/chain/permissions/4_UpdateNamespaceRoles/example.go b/examples/chain/permissions/4_UpdateNamespaceRoles/example.go deleted file mode 100644 index 62941e9d..00000000 --- a/examples/chain/permissions/4_UpdateNamespaceRoles/example.go +++ /dev/null @@ -1,91 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - - msg := &permissionstypes.MsgUpdateNamespaceRoles{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - RolePermissions: []*permissionstypes.Role{ - { - Role: permissionstypes.EVERYONE, - Permissions: uint32(permissionstypes.Action_RECEIVE), - }, - { - Role: "blacklisted", - Permissions: 0, - }, - }, - AddressRoles: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/5_RevokeNamespaceRoles/example.go b/examples/chain/permissions/5_RevokeNamespaceRoles/example.go deleted file mode 100644 index 3bc62f57..00000000 --- a/examples/chain/permissions/5_RevokeNamespaceRoles/example.go +++ /dev/null @@ -1,81 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - - msg := &permissionstypes.MsgRevokeNamespaceRoles{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - AddressRolesToRevoke: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/query/5_VouchersForAddress/example.go b/examples/chain/permissions/query/10_Vouchers/example.go similarity index 90% rename from examples/chain/permissions/query/5_VouchersForAddress/example.go rename to examples/chain/permissions/query/10_Vouchers/example.go index fe7b9d96..fe7d9b84 100644 --- a/examples/chain/permissions/query/5_VouchersForAddress/example.go +++ b/examples/chain/permissions/query/10_Vouchers/example.go @@ -55,11 +55,11 @@ func main() { panic(err) } - address := senderAddress.String() - ctx := context.Background() - res, err := chainClient.FetchVouchersForAddress(ctx, address) + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsVouchers(ctx, denom) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/11_Voucher/example.go b/examples/chain/permissions/query/11_Voucher/example.go new file mode 100644 index 00000000..dc393327 --- /dev/null +++ b/examples/chain/permissions/query/11_Voucher/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + address := "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" + + res, err := chainClient.FetchPermissionsVoucher(ctx, denom, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/12_PermissionsModuleState/example.go b/examples/chain/permissions/query/12_PermissionsModuleState/example.go new file mode 100644 index 00000000..71687687 --- /dev/null +++ b/examples/chain/permissions/query/12_PermissionsModuleState/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchPermissionsModuleState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/permissions/query/1_NamespaceDenoms/example.go b/examples/chain/permissions/query/1_NamespaceDenoms/example.go new file mode 100644 index 00000000..23ac104f --- /dev/null +++ b/examples/chain/permissions/query/1_NamespaceDenoms/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchPermissionsNamespaceDenoms(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/permissions/query/1_AllNamespaces/example.go b/examples/chain/permissions/query/2_Namespaces/example.go similarity index 95% rename from examples/chain/permissions/query/1_AllNamespaces/example.go rename to examples/chain/permissions/query/2_Namespaces/example.go index 650477d2..10bceac6 100644 --- a/examples/chain/permissions/query/1_AllNamespaces/example.go +++ b/examples/chain/permissions/query/2_Namespaces/example.go @@ -58,7 +58,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchAllNamespaces(ctx) + res, err := chainClient.FetchPermissionsNamespaces(ctx) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/2_NamespaceByDenom/example.go b/examples/chain/permissions/query/3_Namespace/example.go similarity index 94% rename from examples/chain/permissions/query/2_NamespaceByDenom/example.go rename to examples/chain/permissions/query/3_Namespace/example.go index 69efeb11..3a48c57d 100644 --- a/examples/chain/permissions/query/2_NamespaceByDenom/example.go +++ b/examples/chain/permissions/query/3_Namespace/example.go @@ -59,7 +59,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchNamespaceByDenom(ctx, namespaceDenom, true) + res, err := chainClient.FetchPermissionsNamespace(ctx, namespaceDenom) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/3_AddressRoles/example.go b/examples/chain/permissions/query/4_RolesByActor/example.go similarity index 92% rename from examples/chain/permissions/query/3_AddressRoles/example.go rename to examples/chain/permissions/query/4_RolesByActor/example.go index 17fe06a0..b86c5d4b 100644 --- a/examples/chain/permissions/query/3_AddressRoles/example.go +++ b/examples/chain/permissions/query/4_RolesByActor/example.go @@ -56,11 +56,11 @@ func main() { } namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - address := senderAddress.String() + actor := senderAddress.String() ctx := context.Background() - res, err := chainClient.FetchAddressRoles(ctx, namespaceDenom, address) + res, err := chainClient.FetchPermissionsRolesByActor(ctx, namespaceDenom, actor) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/4_AddressesByRole/example.go b/examples/chain/permissions/query/5_ActorsByRole/example.go similarity index 94% rename from examples/chain/permissions/query/4_AddressesByRole/example.go rename to examples/chain/permissions/query/5_ActorsByRole/example.go index ca2b3f7f..35ed2e24 100644 --- a/examples/chain/permissions/query/4_AddressesByRole/example.go +++ b/examples/chain/permissions/query/5_ActorsByRole/example.go @@ -60,7 +60,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchAddressesByRole(ctx, namespaceDenom, role) + res, err := chainClient.FetchPermissionsActorsByRole(ctx, namespaceDenom, role) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/6_RoleManagers/example.go b/examples/chain/permissions/query/6_RoleManagers/example.go new file mode 100644 index 00000000..9e99b3aa --- /dev/null +++ b/examples/chain/permissions/query/6_RoleManagers/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsRoleManagers(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/7_RoleManager/example.go b/examples/chain/permissions/query/7_RoleManager/example.go new file mode 100644 index 00000000..b61af27b --- /dev/null +++ b/examples/chain/permissions/query/7_RoleManager/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + manager := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + res, err := chainClient.FetchPermissionsRoleManager(ctx, denom, manager) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/8_PolicyStatuses/example.go b/examples/chain/permissions/query/8_PolicyStatuses/example.go new file mode 100644 index 00000000..64deff3e --- /dev/null +++ b/examples/chain/permissions/query/8_PolicyStatuses/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go new file mode 100644 index 00000000..64deff3e --- /dev/null +++ b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go index b118a8a5..6e44ae07 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go index ceb634f9..57dec967 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go deleted file mode 100644 index b118a8a5..00000000 --- a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ /dev/null @@ -1,5333 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: goadesign_goagen_injective_accounts_rpc.proto - -package injective_accounts_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type PortfolioRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *PortfolioRequest) Reset() { - *x = PortfolioRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioRequest) ProtoMessage() {} - -func (x *PortfolioRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] - 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 PortfolioRequest.ProtoReflect.Descriptor instead. -func (*PortfolioRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{0} -} - -func (x *PortfolioRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type PortfolioResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The portfolio of this account - Portfolio *AccountPortfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` -} - -func (x *PortfolioResponse) Reset() { - *x = PortfolioResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioResponse) ProtoMessage() {} - -func (x *PortfolioResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] - 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 PortfolioResponse.ProtoReflect.Descriptor instead. -func (*PortfolioResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *PortfolioResponse) GetPortfolio() *AccountPortfolio { - if x != nil { - return x.Portfolio - } - return nil -} - -type AccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio value in USD. - PortfolioValue string `protobuf:"bytes,1,opt,name=portfolio_value,json=portfolioValue,proto3" json:"portfolio_value,omitempty"` - // The account's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The account's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The account's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` - // List of all subaccounts' portfolio - Subaccounts []*SubaccountPortfolio `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *AccountPortfolio) Reset() { - *x = AccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolio) ProtoMessage() {} - -func (x *AccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] - 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 AccountPortfolio.ProtoReflect.Descriptor instead. -func (*AccountPortfolio) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *AccountPortfolio) GetPortfolioValue() string { - if x != nil { - return x.PortfolioValue - } - return "" -} - -func (x *AccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *AccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *AccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -func (x *AccountPortfolio) GetSubaccounts() []*SubaccountPortfolio { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The ID of this subaccount - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The subaccount's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The subaccount's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The subaccount's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` -} - -func (x *SubaccountPortfolio) Reset() { - *x = SubaccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountPortfolio) ProtoMessage() {} - -func (x *SubaccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] - 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 SubaccountPortfolio.ProtoReflect.Descriptor instead. -func (*SubaccountPortfolio) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *SubaccountPortfolio) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -type OrderStatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SpotOrderHashes []string `protobuf:"bytes,1,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` - DerivativeOrderHashes []string `protobuf:"bytes,2,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` -} - -func (x *OrderStatesRequest) Reset() { - *x = OrderStatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesRequest) ProtoMessage() {} - -func (x *OrderStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 mi.MessageOf(x) -} - -// Deprecated: Use OrderStatesRequest.ProtoReflect.Descriptor instead. -func (*OrderStatesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{4} -} - -func (x *OrderStatesRequest) GetSpotOrderHashes() []string { - if x != nil { - return x.SpotOrderHashes - } - return nil -} - -func (x *OrderStatesRequest) GetDerivativeOrderHashes() []string { - if x != nil { - return x.DerivativeOrderHashes - } - return nil -} - -type OrderStatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of the spot order state records - SpotOrderStates []*OrderStateRecord `protobuf:"bytes,1,rep,name=spot_order_states,json=spotOrderStates,proto3" json:"spot_order_states,omitempty"` - // List of the derivative order state records - DerivativeOrderStates []*OrderStateRecord `protobuf:"bytes,2,rep,name=derivative_order_states,json=derivativeOrderStates,proto3" json:"derivative_order_states,omitempty"` -} - -func (x *OrderStatesResponse) Reset() { - *x = OrderStatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesResponse) ProtoMessage() {} - -func (x *OrderStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] - 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 OrderStatesResponse.ProtoReflect.Descriptor instead. -func (*OrderStatesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{5} -} - -func (x *OrderStatesResponse) GetSpotOrderStates() []*OrderStateRecord { - if x != nil { - return x.SpotOrderStates - } - return nil -} - -func (x *OrderStatesResponse) GetDerivativeOrderStates() []*OrderStateRecord { - if x != nil { - return x.DerivativeOrderStates - } - return nil -} - -type OrderStateRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The Market ID of the order - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The type of the order - OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,5,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // The state (status) of the order - State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` - // The filled quantity of the order - QuantityFilled string `protobuf:"bytes,7,opt,name=quantity_filled,json=quantityFilled,proto3" json:"quantity_filled,omitempty"` - // The filled quantity of the order - QuantityRemaining string `protobuf:"bytes,8,opt,name=quantity_remaining,json=quantityRemaining,proto3" json:"quantity_remaining,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order prices - Price string `protobuf:"bytes,11,opt,name=price,proto3" json:"price,omitempty"` - // Margin for derivative order - Margin string `protobuf:"bytes,12,opt,name=margin,proto3" json:"margin,omitempty"` -} - -func (x *OrderStateRecord) Reset() { - *x = OrderStateRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStateRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStateRecord) ProtoMessage() {} - -func (x *OrderStateRecord) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] - 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 OrderStateRecord.ProtoReflect.Descriptor instead. -func (*OrderStateRecord) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{6} -} - -func (x *OrderStateRecord) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *OrderStateRecord) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *OrderStateRecord) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *OrderStateRecord) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *OrderStateRecord) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *OrderStateRecord) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *OrderStateRecord) GetQuantityFilled() string { - if x != nil { - return x.QuantityFilled - } - return "" -} - -func (x *OrderStateRecord) GetQuantityRemaining() string { - if x != nil { - return x.QuantityRemaining - } - return "" -} - -func (x *OrderStateRecord) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *OrderStateRecord) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -type SubaccountsListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address, the subaccounts owner - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *SubaccountsListRequest) Reset() { - *x = SubaccountsListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListRequest) ProtoMessage() {} - -func (x *SubaccountsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] - 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 SubaccountsListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountsListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{7} -} - -func (x *SubaccountsListRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type SubaccountsListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Subaccounts []string `protobuf:"bytes,1,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *SubaccountsListResponse) Reset() { - *x = SubaccountsListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListResponse) ProtoMessage() {} - -func (x *SubaccountsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] - 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 SubaccountsListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountsListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{8} -} - -func (x *SubaccountsListResponse) GetSubaccounts() []string { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountBalancesListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *SubaccountBalancesListRequest) Reset() { - *x = SubaccountBalancesListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListRequest) ProtoMessage() {} - -func (x *SubaccountBalancesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] - 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 SubaccountBalancesListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{9} -} - -func (x *SubaccountBalancesListRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalancesListRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type SubaccountBalancesListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount balances - Balances []*SubaccountBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` -} - -func (x *SubaccountBalancesListResponse) Reset() { - *x = SubaccountBalancesListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListResponse) ProtoMessage() {} - -func (x *SubaccountBalancesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] - 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 SubaccountBalancesListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{10} -} - -func (x *SubaccountBalancesListResponse) GetBalances() []*SubaccountBalance { - if x != nil { - return x.Balances - } - return nil -} - -type SubaccountBalance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Related subaccount ID - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Account address, owner of this subaccount - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Coin denom on the chain. - Denom string `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` - Deposit *SubaccountDeposit `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty"` -} - -func (x *SubaccountBalance) Reset() { - *x = SubaccountBalance{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalance) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalance) ProtoMessage() {} - -func (x *SubaccountBalance) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] - 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 SubaccountBalance.ProtoReflect.Descriptor instead. -func (*SubaccountBalance) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{11} -} - -func (x *SubaccountBalance) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalance) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *SubaccountBalance) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountBalance) GetDeposit() *SubaccountDeposit { - if x != nil { - return x.Deposit - } - return nil -} - -type SubaccountDeposit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` -} - -func (x *SubaccountDeposit) Reset() { - *x = SubaccountDeposit{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountDeposit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountDeposit) ProtoMessage() {} - -func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] - 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 SubaccountDeposit.ProtoReflect.Descriptor instead. -func (*SubaccountDeposit) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{12} -} - -func (x *SubaccountDeposit) GetTotalBalance() string { - if x != nil { - return x.TotalBalance - } - return "" -} - -func (x *SubaccountDeposit) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -type SubaccountBalanceEndpointRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Specify denom to get balance - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (x *SubaccountBalanceEndpointRequest) Reset() { - *x = SubaccountBalanceEndpointRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointRequest) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] - 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 SubaccountBalanceEndpointRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{13} -} - -func (x *SubaccountBalanceEndpointRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalanceEndpointRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -type SubaccountBalanceEndpointResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` -} - -func (x *SubaccountBalanceEndpointResponse) Reset() { - *x = SubaccountBalanceEndpointResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointResponse) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] - 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 SubaccountBalanceEndpointResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{14} -} - -func (x *SubaccountBalanceEndpointResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -type StreamSubaccountBalanceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *StreamSubaccountBalanceRequest) Reset() { - *x = StreamSubaccountBalanceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceRequest) ProtoMessage() {} - -func (x *StreamSubaccountBalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] - 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 StreamSubaccountBalanceRequest.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{15} -} - -func (x *StreamSubaccountBalanceRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *StreamSubaccountBalanceRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type StreamSubaccountBalanceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *StreamSubaccountBalanceResponse) Reset() { - *x = StreamSubaccountBalanceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceResponse) ProtoMessage() {} - -func (x *StreamSubaccountBalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] - 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 StreamSubaccountBalanceResponse.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{16} -} - -func (x *StreamSubaccountBalanceResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -func (x *StreamSubaccountBalanceResponse) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type SubaccountHistoryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the history from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter history by denom - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - // Filter history by transfer type - TransferTypes []string `protobuf:"bytes,3,rep,name=transfer_types,json=transferTypes,proto3" json:"transfer_types,omitempty"` - // Skip will skip the first n item from the result - Skip uint64 `protobuf:"varint,4,opt,name=skip,proto3" json:"skip,omitempty"` - // Limit is used to specify the maximum number of items to be returned - Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` - // Upper bound of account transfer history's executedAt - EndTime int64 `protobuf:"zigzag64,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` -} - -func (x *SubaccountHistoryRequest) Reset() { - *x = SubaccountHistoryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryRequest) ProtoMessage() {} - -func (x *SubaccountHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] - 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 SubaccountHistoryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{17} -} - -func (x *SubaccountHistoryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountHistoryRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountHistoryRequest) GetTransferTypes() []string { - if x != nil { - return x.TransferTypes - } - return nil -} - -func (x *SubaccountHistoryRequest) GetSkip() uint64 { - if x != nil { - return x.Skip - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetLimit() int32 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -type SubaccountHistoryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount transfers - Transfers []*SubaccountBalanceTransfer `protobuf:"bytes,1,rep,name=transfers,proto3" json:"transfers,omitempty"` - Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` -} - -func (x *SubaccountHistoryResponse) Reset() { - *x = SubaccountHistoryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryResponse) ProtoMessage() {} - -func (x *SubaccountHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] - 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 SubaccountHistoryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{18} -} - -func (x *SubaccountHistoryResponse) GetTransfers() []*SubaccountBalanceTransfer { - if x != nil { - return x.Transfers - } - return nil -} - -func (x *SubaccountHistoryResponse) GetPaging() *Paging { - if x != nil { - return x.Paging - } - return nil -} - -type SubaccountBalanceTransfer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Type of the subaccount balance transfer - TransferType string `protobuf:"bytes,1,opt,name=transfer_type,json=transferType,proto3" json:"transfer_type,omitempty"` - // Subaccount ID of the sending side - SrcSubaccountId string `protobuf:"bytes,2,opt,name=src_subaccount_id,json=srcSubaccountId,proto3" json:"src_subaccount_id,omitempty"` - // Account address of the sending side - SrcAccountAddress string `protobuf:"bytes,3,opt,name=src_account_address,json=srcAccountAddress,proto3" json:"src_account_address,omitempty"` - // Subaccount ID of the receiving side - DstSubaccountId string `protobuf:"bytes,4,opt,name=dst_subaccount_id,json=dstSubaccountId,proto3" json:"dst_subaccount_id,omitempty"` - // Account address of the receiving side - DstAccountAddress string `protobuf:"bytes,5,opt,name=dst_account_address,json=dstAccountAddress,proto3" json:"dst_account_address,omitempty"` - // Coin amount of the transfer - Amount *CosmosCoin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` - // Timestamp of the transfer in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,7,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` -} - -func (x *SubaccountBalanceTransfer) Reset() { - *x = SubaccountBalanceTransfer{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceTransfer) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceTransfer) ProtoMessage() {} - -func (x *SubaccountBalanceTransfer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] - 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 SubaccountBalanceTransfer.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceTransfer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{19} -} - -func (x *SubaccountBalanceTransfer) GetTransferType() string { - if x != nil { - return x.TransferType - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcSubaccountId() string { - if x != nil { - return x.SrcSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcAccountAddress() string { - if x != nil { - return x.SrcAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstSubaccountId() string { - if x != nil { - return x.DstSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstAccountAddress() string { - if x != nil { - return x.DstAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetAmount() *CosmosCoin { - if x != nil { - return x.Amount - } - return nil -} - -func (x *SubaccountBalanceTransfer) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -type CosmosCoin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Coin denominator - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - // Coin amount (big int) - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *CosmosCoin) Reset() { - *x = CosmosCoin{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CosmosCoin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CosmosCoin) ProtoMessage() {} - -func (x *CosmosCoin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] - 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 CosmosCoin.ProtoReflect.Descriptor instead. -func (*CosmosCoin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{20} -} - -func (x *CosmosCoin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *CosmosCoin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -// Paging defines the structure for required params for handling pagination -type Paging struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // total number of txs saved in database - Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` - // can be either block height or index num - From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` - // can be either block height or index num - To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` - // count entries by subaccount, serving some places on helix - CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` - // array of tokens to navigate to the next pages - Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` -} - -func (x *Paging) Reset() { - *x = Paging{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Paging) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Paging) ProtoMessage() {} - -func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] - 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 Paging.ProtoReflect.Descriptor instead. -func (*Paging) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{21} -} - -func (x *Paging) GetTotal() int64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Paging) GetFrom() int32 { - if x != nil { - return x.From - } - return 0 -} - -func (x *Paging) GetTo() int32 { - if x != nil { - return x.To - } - return 0 -} - -func (x *Paging) GetCountBySubaccount() int64 { - if x != nil { - return x.CountBySubaccount - } - return 0 -} - -func (x *Paging) GetNext() []string { - if x != nil { - return x.Next - } - return nil -} - -type SubaccountOrderSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the summary from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // MarketId is limiting order summary to specific market only - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // Filter by direction of the orders - OrderDirection string `protobuf:"bytes,3,opt,name=order_direction,json=orderDirection,proto3" json:"order_direction,omitempty"` -} - -func (x *SubaccountOrderSummaryRequest) Reset() { - *x = SubaccountOrderSummaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryRequest) ProtoMessage() {} - -func (x *SubaccountOrderSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] - 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 SubaccountOrderSummaryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{22} -} - -func (x *SubaccountOrderSummaryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetOrderDirection() string { - if x != nil { - return x.OrderDirection - } - return "" -} - -type SubaccountOrderSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total count of subaccount's spot orders in given market and direction - SpotOrdersTotal int64 `protobuf:"zigzag64,1,opt,name=spot_orders_total,json=spotOrdersTotal,proto3" json:"spot_orders_total,omitempty"` - // Total count of subaccount's derivative orders in given market and direction - DerivativeOrdersTotal int64 `protobuf:"zigzag64,2,opt,name=derivative_orders_total,json=derivativeOrdersTotal,proto3" json:"derivative_orders_total,omitempty"` -} - -func (x *SubaccountOrderSummaryResponse) Reset() { - *x = SubaccountOrderSummaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryResponse) ProtoMessage() {} - -func (x *SubaccountOrderSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] - 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 SubaccountOrderSummaryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{23} -} - -func (x *SubaccountOrderSummaryResponse) GetSpotOrdersTotal() int64 { - if x != nil { - return x.SpotOrdersTotal - } - return 0 -} - -func (x *SubaccountOrderSummaryResponse) GetDerivativeOrdersTotal() int64 { - if x != nil { - return x.DerivativeOrdersTotal - } - return 0 -} - -type RewardsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The distribution epoch sequence number. -1 for latest. - Epoch int64 `protobuf:"zigzag64,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Account address for the rewards distribution - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *RewardsRequest) Reset() { - *x = RewardsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsRequest) ProtoMessage() {} - -func (x *RewardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] - 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 RewardsRequest.ProtoReflect.Descriptor instead. -func (*RewardsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{24} -} - -func (x *RewardsRequest) GetEpoch() int64 { - if x != nil { - return x.Epoch - } - return 0 -} - -func (x *RewardsRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type RewardsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading rewards distributed - Rewards []*Reward `protobuf:"bytes,1,rep,name=rewards,proto3" json:"rewards,omitempty"` -} - -func (x *RewardsResponse) Reset() { - *x = RewardsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsResponse) ProtoMessage() {} - -func (x *RewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 RewardsResponse.ProtoReflect.Descriptor instead. -func (*RewardsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{25} -} - -func (x *RewardsResponse) GetRewards() []*Reward { - if x != nil { - return x.Rewards - } - return nil -} - -type Reward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Reward coins distributed - Rewards []*Coin `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` - // Rewards distribution timestamp in UNIX millis. - DistributedAt int64 `protobuf:"zigzag64,3,opt,name=distributed_at,json=distributedAt,proto3" json:"distributed_at,omitempty"` -} - -func (x *Reward) Reset() { - *x = Reward{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Reward) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Reward) ProtoMessage() {} - -func (x *Reward) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Reward.ProtoReflect.Descriptor instead. -func (*Reward) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{26} -} - -func (x *Reward) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *Reward) GetRewards() []*Coin { - if x != nil { - return x.Rewards - } - return nil -} - -func (x *Reward) GetDistributedAt() int64 { - if x != nil { - return x.DistributedAt - } - return 0 -} - -type Coin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Denom of the coin - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *Coin) Reset() { - *x = Coin{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Coin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Coin) ProtoMessage() {} - -func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Coin.ProtoReflect.Descriptor instead. -func (*Coin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{27} -} - -func (x *Coin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *Coin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -type StreamAccountDataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *StreamAccountDataRequest) Reset() { - *x = StreamAccountDataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountDataRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountDataRequest) ProtoMessage() {} - -func (x *StreamAccountDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 StreamAccountDataRequest.ProtoReflect.Descriptor instead. -func (*StreamAccountDataRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{28} -} - -func (x *StreamAccountDataRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type StreamAccountDataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SubaccountBalance *SubaccountBalanceResult `protobuf:"bytes,1,opt,name=subaccount_balance,json=subaccountBalance,proto3" json:"subaccount_balance,omitempty"` - Position *PositionsResult `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` - Trade *TradeResult `protobuf:"bytes,3,opt,name=trade,proto3" json:"trade,omitempty"` - Order *OrderResult `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` - OrderHistory *OrderHistoryResult `protobuf:"bytes,5,opt,name=order_history,json=orderHistory,proto3" json:"order_history,omitempty"` - FundingPayment *FundingPaymentResult `protobuf:"bytes,6,opt,name=funding_payment,json=fundingPayment,proto3" json:"funding_payment,omitempty"` -} - -func (x *StreamAccountDataResponse) Reset() { - *x = StreamAccountDataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountDataResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountDataResponse) ProtoMessage() {} - -func (x *StreamAccountDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 StreamAccountDataResponse.ProtoReflect.Descriptor instead. -func (*StreamAccountDataResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{29} -} - -func (x *StreamAccountDataResponse) GetSubaccountBalance() *SubaccountBalanceResult { - if x != nil { - return x.SubaccountBalance - } - return nil -} - -func (x *StreamAccountDataResponse) GetPosition() *PositionsResult { - if x != nil { - return x.Position - } - return nil -} - -func (x *StreamAccountDataResponse) GetTrade() *TradeResult { - if x != nil { - return x.Trade - } - return nil -} - -func (x *StreamAccountDataResponse) GetOrder() *OrderResult { - if x != nil { - return x.Order - } - return nil -} - -func (x *StreamAccountDataResponse) GetOrderHistory() *OrderHistoryResult { - if x != nil { - return x.OrderHistory - } - return nil -} - -func (x *StreamAccountDataResponse) GetFundingPayment() *FundingPaymentResult { - if x != nil { - return x.FundingPayment - } - return nil -} - -type SubaccountBalanceResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *SubaccountBalanceResult) Reset() { - *x = SubaccountBalanceResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceResult) ProtoMessage() {} - -func (x *SubaccountBalanceResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SubaccountBalanceResult.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{30} -} - -func (x *SubaccountBalanceResult) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -func (x *SubaccountBalanceResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type PositionsResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Updated derivative Position - Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *PositionsResult) Reset() { - *x = PositionsResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionsResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionsResult) ProtoMessage() {} - -func (x *PositionsResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PositionsResult.ProtoReflect.Descriptor instead. -func (*PositionsResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{31} -} - -func (x *PositionsResult) GetPosition() *Position { - if x != nil { - return x.Position - } - return nil -} - -func (x *PositionsResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type Position struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Ticker of the derivative market - Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that the position belongs to - SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Direction of the position - Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` - // Quantity of the position - Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Price of the position - EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` - // Margin of the position - Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` - // LiquidationPrice of the position - LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` - // MarkPrice of the position - MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` - // Position updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Position created timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` -} - -func (x *Position) Reset() { - *x = Position{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Position) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Position) ProtoMessage() {} - -func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Position.ProtoReflect.Descriptor instead. -func (*Position) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{32} -} - -func (x *Position) GetTicker() string { - if x != nil { - return x.Ticker - } - return "" -} - -func (x *Position) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *Position) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *Position) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *Position) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *Position) GetEntryPrice() string { - if x != nil { - return x.EntryPrice - } - return "" -} - -func (x *Position) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *Position) GetLiquidationPrice() string { - if x != nil { - return x.LiquidationPrice - } - return "" -} - -func (x *Position) GetMarkPrice() string { - if x != nil { - return x.MarkPrice - } - return "" -} - -func (x *Position) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *Position) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -type TradeResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Trade: - // - // *TradeResult_SpotTrade - // *TradeResult_DerivativeTrade - Trade isTradeResult_Trade `protobuf_oneof:"trade"` - // Executed trades update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *TradeResult) Reset() { - *x = TradeResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TradeResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TradeResult) ProtoMessage() {} - -func (x *TradeResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 TradeResult.ProtoReflect.Descriptor instead. -func (*TradeResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{33} -} - -func (m *TradeResult) GetTrade() isTradeResult_Trade { - if m != nil { - return m.Trade - } - return nil -} - -func (x *TradeResult) GetSpotTrade() *SpotTrade { - if x, ok := x.GetTrade().(*TradeResult_SpotTrade); ok { - return x.SpotTrade - } - return nil -} - -func (x *TradeResult) GetDerivativeTrade() *DerivativeTrade { - if x, ok := x.GetTrade().(*TradeResult_DerivativeTrade); ok { - return x.DerivativeTrade - } - return nil -} - -func (x *TradeResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *TradeResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isTradeResult_Trade interface { - isTradeResult_Trade() -} - -type TradeResult_SpotTrade struct { - // New spot market trade - SpotTrade *SpotTrade `protobuf:"bytes,1,opt,name=spot_trade,json=spotTrade,proto3,oneof"` -} - -type TradeResult_DerivativeTrade struct { - // New derivative market trade - DerivativeTrade *DerivativeTrade `protobuf:"bytes,2,opt,name=derivative_trade,json=derivativeTrade,proto3,oneof"` -} - -func (*TradeResult_SpotTrade) isTradeResult_Trade() {} - -func (*TradeResult_DerivativeTrade) isTradeResult_Trade() {} - -type SpotTrade struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Maker order hash. - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that executed the trade - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The ID of the market that this trade is in - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The execution type of the trade - TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` - // The direction the trade - TradeDirection string `protobuf:"bytes,5,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` - // Price level at which trade has been executed - Price *PriceLevel `protobuf:"bytes,6,opt,name=price,proto3" json:"price,omitempty"` - // The fee associated with the trade (quote asset denom) - Fee string `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` - // Timestamp of trade execution in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,8,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // A unique string that helps differentiate between trades - TradeId string `protobuf:"bytes,10,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker - ExecutionSide string `protobuf:"bytes,11,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,12,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotTrade) Reset() { - *x = SpotTrade{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotTrade) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotTrade) ProtoMessage() {} - -func (x *SpotTrade) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotTrade.ProtoReflect.Descriptor instead. -func (*SpotTrade) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{34} -} - -func (x *SpotTrade) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotTrade) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotTrade) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotTrade) GetTradeExecutionType() string { - if x != nil { - return x.TradeExecutionType - } - return "" -} - -func (x *SpotTrade) GetTradeDirection() string { - if x != nil { - return x.TradeDirection - } - return "" -} - -func (x *SpotTrade) GetPrice() *PriceLevel { - if x != nil { - return x.Price - } - return nil -} - -func (x *SpotTrade) GetFee() string { - if x != nil { - return x.Fee - } - return "" -} - -func (x *SpotTrade) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -func (x *SpotTrade) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *SpotTrade) GetTradeId() string { - if x != nil { - return x.TradeId - } - return "" -} - -func (x *SpotTrade) GetExecutionSide() string { - if x != nil { - return x.ExecutionSide - } - return "" -} - -func (x *SpotTrade) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type PriceLevel struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Price number of the price level. - Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the price level. - Quantity string `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Price level last updated timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *PriceLevel) Reset() { - *x = PriceLevel{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PriceLevel) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PriceLevel) ProtoMessage() {} - -func (x *PriceLevel) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PriceLevel.ProtoReflect.Descriptor instead. -func (*PriceLevel) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{35} -} - -func (x *PriceLevel) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *PriceLevel) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *PriceLevel) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type DerivativeTrade struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Order hash. - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that executed the trade - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The ID of the market that this trade is in - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The execution type of the trade - TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` - // True if the trade is a liquidation - IsLiquidation bool `protobuf:"varint,5,opt,name=is_liquidation,json=isLiquidation,proto3" json:"is_liquidation,omitempty"` - // Position Delta from the trade - PositionDelta *PositionDelta `protobuf:"bytes,6,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` - // The payout associated with the trade - Payout string `protobuf:"bytes,7,opt,name=payout,proto3" json:"payout,omitempty"` - // The fee associated with the trade - Fee string `protobuf:"bytes,8,opt,name=fee,proto3" json:"fee,omitempty"` - // Timestamp of trade execution in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,9,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,10,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // A unique string that helps differentiate between trades - TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker - ExecutionSide string `protobuf:"bytes,12,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,13,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeTrade) Reset() { - *x = DerivativeTrade{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeTrade) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeTrade) ProtoMessage() {} - -func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeTrade.ProtoReflect.Descriptor instead. -func (*DerivativeTrade) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{36} -} - -func (x *DerivativeTrade) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeTrade) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeTrade) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeTrade) GetTradeExecutionType() string { - if x != nil { - return x.TradeExecutionType - } - return "" -} - -func (x *DerivativeTrade) GetIsLiquidation() bool { - if x != nil { - return x.IsLiquidation - } - return false -} - -func (x *DerivativeTrade) GetPositionDelta() *PositionDelta { - if x != nil { - return x.PositionDelta - } - return nil -} - -func (x *DerivativeTrade) GetPayout() string { - if x != nil { - return x.Payout - } - return "" -} - -func (x *DerivativeTrade) GetFee() string { - if x != nil { - return x.Fee - } - return "" -} - -func (x *DerivativeTrade) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -func (x *DerivativeTrade) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *DerivativeTrade) GetTradeId() string { - if x != nil { - return x.TradeId - } - return "" -} - -func (x *DerivativeTrade) GetExecutionSide() string { - if x != nil { - return x.ExecutionSide - } - return "" -} - -func (x *DerivativeTrade) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type PositionDelta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The direction the trade - TradeDirection string `protobuf:"bytes,1,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` - // Execution Price of the trade. - ExecutionPrice string `protobuf:"bytes,2,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` - // Execution Quantity of the trade. - ExecutionQuantity string `protobuf:"bytes,3,opt,name=execution_quantity,json=executionQuantity,proto3" json:"execution_quantity,omitempty"` - // Execution Margin of the trade. - ExecutionMargin string `protobuf:"bytes,4,opt,name=execution_margin,json=executionMargin,proto3" json:"execution_margin,omitempty"` -} - -func (x *PositionDelta) Reset() { - *x = PositionDelta{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionDelta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionDelta) ProtoMessage() {} - -func (x *PositionDelta) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PositionDelta.ProtoReflect.Descriptor instead. -func (*PositionDelta) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{37} -} - -func (x *PositionDelta) GetTradeDirection() string { - if x != nil { - return x.TradeDirection - } - return "" -} - -func (x *PositionDelta) GetExecutionPrice() string { - if x != nil { - return x.ExecutionPrice - } - return "" -} - -func (x *PositionDelta) GetExecutionQuantity() string { - if x != nil { - return x.ExecutionQuantity - } - return "" -} - -func (x *PositionDelta) GetExecutionMargin() string { - if x != nil { - return x.ExecutionMargin - } - return "" -} - -type OrderResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Order: - // - // *OrderResult_SpotOrder - // *OrderResult_DerivativeOrder - Order isOrderResult_Order `protobuf_oneof:"order"` - // Executed orders update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *OrderResult) Reset() { - *x = OrderResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderResult) ProtoMessage() {} - -func (x *OrderResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 OrderResult.ProtoReflect.Descriptor instead. -func (*OrderResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{38} -} - -func (m *OrderResult) GetOrder() isOrderResult_Order { - if m != nil { - return m.Order - } - return nil -} - -func (x *OrderResult) GetSpotOrder() *SpotLimitOrder { - if x, ok := x.GetOrder().(*OrderResult_SpotOrder); ok { - return x.SpotOrder - } - return nil -} - -func (x *OrderResult) GetDerivativeOrder() *DerivativeLimitOrder { - if x, ok := x.GetOrder().(*OrderResult_DerivativeOrder); ok { - return x.DerivativeOrder - } - return nil -} - -func (x *OrderResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *OrderResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isOrderResult_Order interface { - isOrderResult_Order() -} - -type OrderResult_SpotOrder struct { - // Updated spot market order - SpotOrder *SpotLimitOrder `protobuf:"bytes,1,opt,name=spot_order,json=spotOrder,proto3,oneof"` -} - -type OrderResult_DerivativeOrder struct { - // Updated derivative market order - DerivativeOrder *DerivativeLimitOrder `protobuf:"bytes,2,opt,name=derivative_order,json=derivativeOrder,proto3,oneof"` -} - -func (*OrderResult_SpotOrder) isOrderResult_Order() {} - -func (*OrderResult_DerivativeOrder) isOrderResult_Order() {} - -type SpotLimitOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Price of the order - Price string `protobuf:"bytes,5,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"` - // The amount of the quantity remaining unfilled - UnfilledQuantity string `protobuf:"bytes,7,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` - // Trigger price is the trigger price used by stop/take orders. 0 if the - // trigger price is not set. - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // Order state - State string `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,13,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotLimitOrder) Reset() { - *x = SpotLimitOrder{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotLimitOrder) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotLimitOrder) ProtoMessage() {} - -func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotLimitOrder.ProtoReflect.Descriptor instead. -func (*SpotLimitOrder) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{39} -} - -func (x *SpotLimitOrder) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotLimitOrder) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *SpotLimitOrder) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotLimitOrder) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotLimitOrder) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *SpotLimitOrder) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *SpotLimitOrder) GetUnfilledQuantity() string { - if x != nil { - return x.UnfilledQuantity - } - return "" -} - -func (x *SpotLimitOrder) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *SpotLimitOrder) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *SpotLimitOrder) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SpotLimitOrder) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *SpotLimitOrder) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *SpotLimitOrder) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *SpotLimitOrder) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type DerivativeLimitOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // True if the order is a reduce-only order - IsReduceOnly bool `protobuf:"varint,5,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` - // Margin of the order - Margin string `protobuf:"bytes,6,opt,name=margin,proto3" json:"margin,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,8,opt,name=quantity,proto3" json:"quantity,omitempty"` - // The amount of the quantity remaining unfilled - UnfilledQuantity string `protobuf:"bytes,9,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` - // Trigger price is the trigger price used by stop/take orders - TriggerPrice string `protobuf:"bytes,10,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,11,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // Order state - State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order number of subaccount - OrderNumber int64 `protobuf:"zigzag64,15,opt,name=order_number,json=orderNumber,proto3" json:"order_number,omitempty"` - // Order type - OrderType string `protobuf:"bytes,16,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Order type - IsConditional bool `protobuf:"varint,17,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` - // Trigger timestamp, only exists for conditional orders - TriggerAt uint64 `protobuf:"varint,18,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` - // OrderHash of order that is triggered by this conditional order - PlacedOrderHash string `protobuf:"bytes,19,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` - // Execution type of conditional order - ExecutionType string `protobuf:"bytes,20,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,21,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,22,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeLimitOrder) Reset() { - *x = DerivativeLimitOrder{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeLimitOrder) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeLimitOrder) ProtoMessage() {} - -func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeLimitOrder.ProtoReflect.Descriptor instead. -func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{40} -} - -func (x *DerivativeLimitOrder) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *DerivativeLimitOrder) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeLimitOrder) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeLimitOrder) GetIsReduceOnly() bool { - if x != nil { - return x.IsReduceOnly - } - return false -} - -func (x *DerivativeLimitOrder) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *DerivativeLimitOrder) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *DerivativeLimitOrder) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *DerivativeLimitOrder) GetUnfilledQuantity() string { - if x != nil { - return x.UnfilledQuantity - } - return "" -} - -func (x *DerivativeLimitOrder) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *DerivativeLimitOrder) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *DerivativeLimitOrder) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *DerivativeLimitOrder) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetOrderNumber() int64 { - if x != nil { - return x.OrderNumber - } - return 0 -} - -func (x *DerivativeLimitOrder) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *DerivativeLimitOrder) GetIsConditional() bool { - if x != nil { - return x.IsConditional - } - return false -} - -func (x *DerivativeLimitOrder) GetTriggerAt() uint64 { - if x != nil { - return x.TriggerAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetPlacedOrderHash() string { - if x != nil { - return x.PlacedOrderHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *DerivativeLimitOrder) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type OrderHistoryResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to OrderHistory: - // - // *OrderHistoryResult_SpotOrderHistory - // *OrderHistoryResult_DerivativeOrderHistory - OrderHistory isOrderHistoryResult_OrderHistory `protobuf_oneof:"order_history"` - // Order update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *OrderHistoryResult) Reset() { - *x = OrderHistoryResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderHistoryResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderHistoryResult) ProtoMessage() {} - -func (x *OrderHistoryResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 OrderHistoryResult.ProtoReflect.Descriptor instead. -func (*OrderHistoryResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{41} -} - -func (m *OrderHistoryResult) GetOrderHistory() isOrderHistoryResult_OrderHistory { - if m != nil { - return m.OrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetSpotOrderHistory() *SpotOrderHistory { - if x, ok := x.GetOrderHistory().(*OrderHistoryResult_SpotOrderHistory); ok { - return x.SpotOrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetDerivativeOrderHistory() *DerivativeOrderHistory { - if x, ok := x.GetOrderHistory().(*OrderHistoryResult_DerivativeOrderHistory); ok { - return x.DerivativeOrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *OrderHistoryResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isOrderHistoryResult_OrderHistory interface { - isOrderHistoryResult_OrderHistory() -} - -type OrderHistoryResult_SpotOrderHistory struct { - // Spot order history - SpotOrderHistory *SpotOrderHistory `protobuf:"bytes,1,opt,name=spot_order_history,json=spotOrderHistory,proto3,oneof"` -} - -type OrderHistoryResult_DerivativeOrderHistory struct { - // Derivative order history - DerivativeOrderHistory *DerivativeOrderHistory `protobuf:"bytes,2,opt,name=derivative_order_history,json=derivativeOrderHistory,proto3,oneof"` -} - -func (*OrderHistoryResult_SpotOrderHistory) isOrderHistoryResult_OrderHistory() {} - -func (*OrderHistoryResult_DerivativeOrderHistory) isOrderHistoryResult_OrderHistory() {} - -type SpotOrderHistory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // active state of the order - IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The execution type - ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // The side of the order - OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Trigger price - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Filled amount - FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` - // Order state - State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order direction (order side) - Direction string `protobuf:"bytes,14,opt,name=direction,proto3" json:"direction,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,15,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,16,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotOrderHistory) Reset() { - *x = SpotOrderHistory{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotOrderHistory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotOrderHistory) ProtoMessage() {} - -func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotOrderHistory.ProtoReflect.Descriptor instead. -func (*SpotOrderHistory) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{42} -} - -func (x *SpotOrderHistory) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotOrderHistory) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotOrderHistory) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *SpotOrderHistory) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotOrderHistory) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *SpotOrderHistory) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *SpotOrderHistory) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *SpotOrderHistory) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *SpotOrderHistory) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *SpotOrderHistory) GetFilledQuantity() string { - if x != nil { - return x.FilledQuantity - } - return "" -} - -func (x *SpotOrderHistory) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SpotOrderHistory) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *SpotOrderHistory) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *SpotOrderHistory) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *SpotOrderHistory) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *SpotOrderHistory) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type DerivativeOrderHistory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // active state of the order - IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The execution type - ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // The side of the order - OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Trigger price - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Filled amount - FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` - // Order state - State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // True if an order is reduce only - IsReduceOnly bool `protobuf:"varint,14,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` - // Order direction (order side) - Direction string `protobuf:"bytes,15,opt,name=direction,proto3" json:"direction,omitempty"` - // True if this is conditional order, otherwise false - IsConditional bool `protobuf:"varint,16,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` - // Trigger timestamp in unix milli - TriggerAt uint64 `protobuf:"varint,17,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` - // Order hash placed when this triggers - PlacedOrderHash string `protobuf:"bytes,18,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` - // Order's margin - Margin string `protobuf:"bytes,19,opt,name=margin,proto3" json:"margin,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,20,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,21,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeOrderHistory) Reset() { - *x = DerivativeOrderHistory{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeOrderHistory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeOrderHistory) ProtoMessage() {} - -func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeOrderHistory.ProtoReflect.Descriptor instead. -func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{43} -} - -func (x *DerivativeOrderHistory) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeOrderHistory) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *DerivativeOrderHistory) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeOrderHistory) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *DerivativeOrderHistory) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *DerivativeOrderHistory) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *DerivativeOrderHistory) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *DerivativeOrderHistory) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *DerivativeOrderHistory) GetFilledQuantity() string { - if x != nil { - return x.FilledQuantity - } - return "" -} - -func (x *DerivativeOrderHistory) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *DerivativeOrderHistory) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetIsReduceOnly() bool { - if x != nil { - return x.IsReduceOnly - } - return false -} - -func (x *DerivativeOrderHistory) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *DerivativeOrderHistory) GetIsConditional() bool { - if x != nil { - return x.IsConditional - } - return false -} - -func (x *DerivativeOrderHistory) GetTriggerAt() uint64 { - if x != nil { - return x.TriggerAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetPlacedOrderHash() string { - if x != nil { - return x.PlacedOrderHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *DerivativeOrderHistory) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type FundingPaymentResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Funding payments of the account - FundingPayments *FundingPayment `protobuf:"bytes,1,opt,name=funding_payments,json=fundingPayments,proto3" json:"funding_payments,omitempty"` - // Funding payments type - OperationType string `protobuf:"bytes,2,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *FundingPaymentResult) Reset() { - *x = FundingPaymentResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundingPaymentResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundingPaymentResult) ProtoMessage() {} - -func (x *FundingPaymentResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 FundingPaymentResult.ProtoReflect.Descriptor instead. -func (*FundingPaymentResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{44} -} - -func (x *FundingPaymentResult) GetFundingPayments() *FundingPayment { - if x != nil { - return x.FundingPayments - } - return nil -} - -func (x *FundingPaymentResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *FundingPaymentResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type FundingPayment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Derivative Market ID - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that the position belongs to - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Amount of the funding payment - Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` - // Timestamp of funding payment in UNIX millis - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *FundingPayment) Reset() { - *x = FundingPayment{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundingPayment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundingPayment) ProtoMessage() {} - -func (x *FundingPayment) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 FundingPayment.ProtoReflect.Descriptor instead. -func (*FundingPayment) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{45} -} - -func (x *FundingPayment) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *FundingPayment) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *FundingPayment) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *FundingPayment) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -var File_goadesign_goagen_injective_accounts_rpc_proto protoreflect.FileDescriptor - -var file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = []byte{ - 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, - 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x3b, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, - 0x6c, 0x69, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x13, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, - 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, - 0x6c, 0x22, 0x78, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x13, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x10, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2d, - 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x17, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x07, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, - 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x68, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x5d, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x84, - 0x01, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc1, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, - 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x19, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x23, - 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x72, 0x63, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, - 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, - 0x73, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, - 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, - 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, - 0x90, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xde, 0x03, - 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, - 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x7c, - 0x0a, 0x17, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6d, 0x0a, 0x0f, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x3c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe1, 0x02, 0x0a, 0x08, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0xf5, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x42, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, - 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, - 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, - 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xdd, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, - 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x22, 0xff, 0x01, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x10, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, 0x0a, 0x05, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xb8, 0x03, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, - 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x58, 0x0a, 0x12, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x70, 0x6f, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x6a, 0x0a, 0x18, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, - 0x16, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0f, 0x0a, 0x0d, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xf3, 0x03, - 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, - 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, - 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x74, - 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, - 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xdc, 0x09, 0x0a, 0x14, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x52, 0x50, 0x43, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, - 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, - 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x8c, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, - 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, - 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce sync.Once - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc -) - -func file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP() []byte { - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce.Do(func() { - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData) - }) - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData -} - -var file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 46) -var file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = []interface{}{ - (*PortfolioRequest)(nil), // 0: injective_accounts_rpc.PortfolioRequest - (*PortfolioResponse)(nil), // 1: injective_accounts_rpc.PortfolioResponse - (*AccountPortfolio)(nil), // 2: injective_accounts_rpc.AccountPortfolio - (*SubaccountPortfolio)(nil), // 3: injective_accounts_rpc.SubaccountPortfolio - (*OrderStatesRequest)(nil), // 4: injective_accounts_rpc.OrderStatesRequest - (*OrderStatesResponse)(nil), // 5: injective_accounts_rpc.OrderStatesResponse - (*OrderStateRecord)(nil), // 6: injective_accounts_rpc.OrderStateRecord - (*SubaccountsListRequest)(nil), // 7: injective_accounts_rpc.SubaccountsListRequest - (*SubaccountsListResponse)(nil), // 8: injective_accounts_rpc.SubaccountsListResponse - (*SubaccountBalancesListRequest)(nil), // 9: injective_accounts_rpc.SubaccountBalancesListRequest - (*SubaccountBalancesListResponse)(nil), // 10: injective_accounts_rpc.SubaccountBalancesListResponse - (*SubaccountBalance)(nil), // 11: injective_accounts_rpc.SubaccountBalance - (*SubaccountDeposit)(nil), // 12: injective_accounts_rpc.SubaccountDeposit - (*SubaccountBalanceEndpointRequest)(nil), // 13: injective_accounts_rpc.SubaccountBalanceEndpointRequest - (*SubaccountBalanceEndpointResponse)(nil), // 14: injective_accounts_rpc.SubaccountBalanceEndpointResponse - (*StreamSubaccountBalanceRequest)(nil), // 15: injective_accounts_rpc.StreamSubaccountBalanceRequest - (*StreamSubaccountBalanceResponse)(nil), // 16: injective_accounts_rpc.StreamSubaccountBalanceResponse - (*SubaccountHistoryRequest)(nil), // 17: injective_accounts_rpc.SubaccountHistoryRequest - (*SubaccountHistoryResponse)(nil), // 18: injective_accounts_rpc.SubaccountHistoryResponse - (*SubaccountBalanceTransfer)(nil), // 19: injective_accounts_rpc.SubaccountBalanceTransfer - (*CosmosCoin)(nil), // 20: injective_accounts_rpc.CosmosCoin - (*Paging)(nil), // 21: injective_accounts_rpc.Paging - (*SubaccountOrderSummaryRequest)(nil), // 22: injective_accounts_rpc.SubaccountOrderSummaryRequest - (*SubaccountOrderSummaryResponse)(nil), // 23: injective_accounts_rpc.SubaccountOrderSummaryResponse - (*RewardsRequest)(nil), // 24: injective_accounts_rpc.RewardsRequest - (*RewardsResponse)(nil), // 25: injective_accounts_rpc.RewardsResponse - (*Reward)(nil), // 26: injective_accounts_rpc.Reward - (*Coin)(nil), // 27: injective_accounts_rpc.Coin - (*StreamAccountDataRequest)(nil), // 28: injective_accounts_rpc.StreamAccountDataRequest - (*StreamAccountDataResponse)(nil), // 29: injective_accounts_rpc.StreamAccountDataResponse - (*SubaccountBalanceResult)(nil), // 30: injective_accounts_rpc.SubaccountBalanceResult - (*PositionsResult)(nil), // 31: injective_accounts_rpc.PositionsResult - (*Position)(nil), // 32: injective_accounts_rpc.Position - (*TradeResult)(nil), // 33: injective_accounts_rpc.TradeResult - (*SpotTrade)(nil), // 34: injective_accounts_rpc.SpotTrade - (*PriceLevel)(nil), // 35: injective_accounts_rpc.PriceLevel - (*DerivativeTrade)(nil), // 36: injective_accounts_rpc.DerivativeTrade - (*PositionDelta)(nil), // 37: injective_accounts_rpc.PositionDelta - (*OrderResult)(nil), // 38: injective_accounts_rpc.OrderResult - (*SpotLimitOrder)(nil), // 39: injective_accounts_rpc.SpotLimitOrder - (*DerivativeLimitOrder)(nil), // 40: injective_accounts_rpc.DerivativeLimitOrder - (*OrderHistoryResult)(nil), // 41: injective_accounts_rpc.OrderHistoryResult - (*SpotOrderHistory)(nil), // 42: injective_accounts_rpc.SpotOrderHistory - (*DerivativeOrderHistory)(nil), // 43: injective_accounts_rpc.DerivativeOrderHistory - (*FundingPaymentResult)(nil), // 44: injective_accounts_rpc.FundingPaymentResult - (*FundingPayment)(nil), // 45: injective_accounts_rpc.FundingPayment -} -var file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_accounts_rpc.PortfolioResponse.portfolio:type_name -> injective_accounts_rpc.AccountPortfolio - 3, // 1: injective_accounts_rpc.AccountPortfolio.subaccounts:type_name -> injective_accounts_rpc.SubaccountPortfolio - 6, // 2: injective_accounts_rpc.OrderStatesResponse.spot_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 6, // 3: injective_accounts_rpc.OrderStatesResponse.derivative_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 11, // 4: injective_accounts_rpc.SubaccountBalancesListResponse.balances:type_name -> injective_accounts_rpc.SubaccountBalance - 12, // 5: injective_accounts_rpc.SubaccountBalance.deposit:type_name -> injective_accounts_rpc.SubaccountDeposit - 11, // 6: injective_accounts_rpc.SubaccountBalanceEndpointResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 11, // 7: injective_accounts_rpc.StreamSubaccountBalanceResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 19, // 8: injective_accounts_rpc.SubaccountHistoryResponse.transfers:type_name -> injective_accounts_rpc.SubaccountBalanceTransfer - 21, // 9: injective_accounts_rpc.SubaccountHistoryResponse.paging:type_name -> injective_accounts_rpc.Paging - 20, // 10: injective_accounts_rpc.SubaccountBalanceTransfer.amount:type_name -> injective_accounts_rpc.CosmosCoin - 26, // 11: injective_accounts_rpc.RewardsResponse.rewards:type_name -> injective_accounts_rpc.Reward - 27, // 12: injective_accounts_rpc.Reward.rewards:type_name -> injective_accounts_rpc.Coin - 30, // 13: injective_accounts_rpc.StreamAccountDataResponse.subaccount_balance:type_name -> injective_accounts_rpc.SubaccountBalanceResult - 31, // 14: injective_accounts_rpc.StreamAccountDataResponse.position:type_name -> injective_accounts_rpc.PositionsResult - 33, // 15: injective_accounts_rpc.StreamAccountDataResponse.trade:type_name -> injective_accounts_rpc.TradeResult - 38, // 16: injective_accounts_rpc.StreamAccountDataResponse.order:type_name -> injective_accounts_rpc.OrderResult - 41, // 17: injective_accounts_rpc.StreamAccountDataResponse.order_history:type_name -> injective_accounts_rpc.OrderHistoryResult - 44, // 18: injective_accounts_rpc.StreamAccountDataResponse.funding_payment:type_name -> injective_accounts_rpc.FundingPaymentResult - 11, // 19: injective_accounts_rpc.SubaccountBalanceResult.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 32, // 20: injective_accounts_rpc.PositionsResult.position:type_name -> injective_accounts_rpc.Position - 34, // 21: injective_accounts_rpc.TradeResult.spot_trade:type_name -> injective_accounts_rpc.SpotTrade - 36, // 22: injective_accounts_rpc.TradeResult.derivative_trade:type_name -> injective_accounts_rpc.DerivativeTrade - 35, // 23: injective_accounts_rpc.SpotTrade.price:type_name -> injective_accounts_rpc.PriceLevel - 37, // 24: injective_accounts_rpc.DerivativeTrade.position_delta:type_name -> injective_accounts_rpc.PositionDelta - 39, // 25: injective_accounts_rpc.OrderResult.spot_order:type_name -> injective_accounts_rpc.SpotLimitOrder - 40, // 26: injective_accounts_rpc.OrderResult.derivative_order:type_name -> injective_accounts_rpc.DerivativeLimitOrder - 42, // 27: injective_accounts_rpc.OrderHistoryResult.spot_order_history:type_name -> injective_accounts_rpc.SpotOrderHistory - 43, // 28: injective_accounts_rpc.OrderHistoryResult.derivative_order_history:type_name -> injective_accounts_rpc.DerivativeOrderHistory - 45, // 29: injective_accounts_rpc.FundingPaymentResult.funding_payments:type_name -> injective_accounts_rpc.FundingPayment - 0, // 30: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:input_type -> injective_accounts_rpc.PortfolioRequest - 4, // 31: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:input_type -> injective_accounts_rpc.OrderStatesRequest - 7, // 32: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:input_type -> injective_accounts_rpc.SubaccountsListRequest - 9, // 33: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:input_type -> injective_accounts_rpc.SubaccountBalancesListRequest - 13, // 34: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:input_type -> injective_accounts_rpc.SubaccountBalanceEndpointRequest - 15, // 35: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:input_type -> injective_accounts_rpc.StreamSubaccountBalanceRequest - 17, // 36: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:input_type -> injective_accounts_rpc.SubaccountHistoryRequest - 22, // 37: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:input_type -> injective_accounts_rpc.SubaccountOrderSummaryRequest - 24, // 38: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:input_type -> injective_accounts_rpc.RewardsRequest - 28, // 39: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:input_type -> injective_accounts_rpc.StreamAccountDataRequest - 1, // 40: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:output_type -> injective_accounts_rpc.PortfolioResponse - 5, // 41: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:output_type -> injective_accounts_rpc.OrderStatesResponse - 8, // 42: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:output_type -> injective_accounts_rpc.SubaccountsListResponse - 10, // 43: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:output_type -> injective_accounts_rpc.SubaccountBalancesListResponse - 14, // 44: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:output_type -> injective_accounts_rpc.SubaccountBalanceEndpointResponse - 16, // 45: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:output_type -> injective_accounts_rpc.StreamSubaccountBalanceResponse - 18, // 46: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:output_type -> injective_accounts_rpc.SubaccountHistoryResponse - 23, // 47: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:output_type -> injective_accounts_rpc.SubaccountOrderSummaryResponse - 25, // 48: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:output_type -> injective_accounts_rpc.RewardsResponse - 29, // 49: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:output_type -> injective_accounts_rpc.StreamAccountDataResponse - 40, // [40:50] is the sub-list for method output_type - 30, // [30:40] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name -} - -func init() { file_goadesign_goagen_injective_accounts_rpc_proto_init() } -func file_goadesign_goagen_injective_accounts_rpc_proto_init() { - if File_goadesign_goagen_injective_accounts_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStateRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalance); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountDeposit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceTransfer); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CosmosCoin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Paging); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Reward); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Coin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountDataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountDataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionsResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Position); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradeResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotTrade); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceLevel); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeTrade); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionDelta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotLimitOrder); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeLimitOrder); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderHistoryResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotOrderHistory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeOrderHistory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundingPaymentResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundingPayment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].OneofWrappers = []interface{}{ - (*TradeResult_SpotTrade)(nil), - (*TradeResult_DerivativeTrade)(nil), - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].OneofWrappers = []interface{}{ - (*OrderResult_SpotOrder)(nil), - (*OrderResult_DerivativeOrder)(nil), - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].OneofWrappers = []interface{}{ - (*OrderHistoryResult_SpotOrderHistory)(nil), - (*OrderHistoryResult_DerivativeOrderHistory)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 46, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_goadesign_goagen_injective_accounts_rpc_proto_goTypes, - DependencyIndexes: file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs, - MessageInfos: file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes, - }.Build() - File_goadesign_goagen_injective_accounts_rpc_proto = out.File - file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = nil - file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = nil - file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = nil -} diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go deleted file mode 100644 index ceb634f9..00000000 --- a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go +++ /dev/null @@ -1,508 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 -// source: goadesign_goagen_injective_accounts_rpc.proto - -package injective_accounts_rpcpb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// InjectiveAccountsRPCClient is the client API for InjectiveAccountsRPC service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type InjectiveAccountsRPCClient interface { - // Provide the account's portfolio value in USD. - Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) - // List order states by order hashes - OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) - // List all subaccounts IDs of an account address - SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) - // List subaccount balances for the provided denoms. - SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) - // Gets a balance for specific coin denom - SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) - // StreamSubaccountBalance streams new balance changes for a specified - // subaccount and denoms. If no denoms are provided, all denom changes are - // streamed. - StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) - // Get subaccount's deposits and withdrawals history - SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) - // Get subaccount's orders summary - SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) - // Provide historical trading rewards - Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) - // Stream live data for an account and respective data - StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) -} - -type injectiveAccountsRPCClient struct { - cc grpc.ClientConnInterface -} - -func NewInjectiveAccountsRPCClient(cc grpc.ClientConnInterface) InjectiveAccountsRPCClient { - return &injectiveAccountsRPCClient{cc} -} - -func (c *injectiveAccountsRPCClient) Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) { - out := new(PortfolioResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) { - out := new(OrderStatesResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) { - out := new(SubaccountsListResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) { - out := new(SubaccountBalancesListResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) { - out := new(SubaccountBalanceEndpointResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[0], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", opts...) - if err != nil { - return nil, err - } - x := &injectiveAccountsRPCStreamSubaccountBalanceClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type InjectiveAccountsRPC_StreamSubaccountBalanceClient interface { - Recv() (*StreamSubaccountBalanceResponse, error) - grpc.ClientStream -} - -type injectiveAccountsRPCStreamSubaccountBalanceClient struct { - grpc.ClientStream -} - -func (x *injectiveAccountsRPCStreamSubaccountBalanceClient) Recv() (*StreamSubaccountBalanceResponse, error) { - m := new(StreamSubaccountBalanceResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) { - out := new(SubaccountHistoryResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) { - out := new(SubaccountOrderSummaryResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) { - out := new(RewardsResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[1], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", opts...) - if err != nil { - return nil, err - } - x := &injectiveAccountsRPCStreamAccountDataClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type InjectiveAccountsRPC_StreamAccountDataClient interface { - Recv() (*StreamAccountDataResponse, error) - grpc.ClientStream -} - -type injectiveAccountsRPCStreamAccountDataClient struct { - grpc.ClientStream -} - -func (x *injectiveAccountsRPCStreamAccountDataClient) Recv() (*StreamAccountDataResponse, error) { - m := new(StreamAccountDataResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -// InjectiveAccountsRPCServer is the server API for InjectiveAccountsRPC service. -// All implementations must embed UnimplementedInjectiveAccountsRPCServer -// for forward compatibility -type InjectiveAccountsRPCServer interface { - // Provide the account's portfolio value in USD. - Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) - // List order states by order hashes - OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) - // List all subaccounts IDs of an account address - SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) - // List subaccount balances for the provided denoms. - SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) - // Gets a balance for specific coin denom - SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) - // StreamSubaccountBalance streams new balance changes for a specified - // subaccount and denoms. If no denoms are provided, all denom changes are - // streamed. - StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error - // Get subaccount's deposits and withdrawals history - SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) - // Get subaccount's orders summary - SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) - // Provide historical trading rewards - Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) - // Stream live data for an account and respective data - StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error - mustEmbedUnimplementedInjectiveAccountsRPCServer() -} - -// UnimplementedInjectiveAccountsRPCServer must be embedded to have forward compatible implementations. -type UnimplementedInjectiveAccountsRPCServer struct { -} - -func (UnimplementedInjectiveAccountsRPCServer) Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Portfolio not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method OrderStates not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountsList not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalancesList not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalanceEndpoint not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error { - return status.Errorf(codes.Unimplemented, "method StreamSubaccountBalance not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountHistory not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountOrderSummary not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Rewards not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error { - return status.Errorf(codes.Unimplemented, "method StreamAccountData not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) mustEmbedUnimplementedInjectiveAccountsRPCServer() {} - -// UnsafeInjectiveAccountsRPCServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to InjectiveAccountsRPCServer will -// result in compilation errors. -type UnsafeInjectiveAccountsRPCServer interface { - mustEmbedUnimplementedInjectiveAccountsRPCServer() -} - -func RegisterInjectiveAccountsRPCServer(s grpc.ServiceRegistrar, srv InjectiveAccountsRPCServer) { - s.RegisterService(&InjectiveAccountsRPC_ServiceDesc, srv) -} - -func _InjectiveAccountsRPC_Portfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PortfolioRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, req.(*PortfolioRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_OrderStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OrderStatesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, req.(*OrderStatesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountsListRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, req.(*SubaccountsListRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountBalancesList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountBalancesListRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, req.(*SubaccountBalancesListRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountBalanceEndpointRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, req.(*SubaccountBalanceEndpointRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_StreamSubaccountBalance_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(StreamSubaccountBalanceRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(InjectiveAccountsRPCServer).StreamSubaccountBalance(m, &injectiveAccountsRPCStreamSubaccountBalanceServer{stream}) -} - -type InjectiveAccountsRPC_StreamSubaccountBalanceServer interface { - Send(*StreamSubaccountBalanceResponse) error - grpc.ServerStream -} - -type injectiveAccountsRPCStreamSubaccountBalanceServer struct { - grpc.ServerStream -} - -func (x *injectiveAccountsRPCStreamSubaccountBalanceServer) Send(m *StreamSubaccountBalanceResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _InjectiveAccountsRPC_SubaccountHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountHistoryRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, req.(*SubaccountHistoryRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountOrderSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountOrderSummaryRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, req.(*SubaccountOrderSummaryRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_Rewards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RewardsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).Rewards(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).Rewards(ctx, req.(*RewardsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_StreamAccountData_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(StreamAccountDataRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(InjectiveAccountsRPCServer).StreamAccountData(m, &injectiveAccountsRPCStreamAccountDataServer{stream}) -} - -type InjectiveAccountsRPC_StreamAccountDataServer interface { - Send(*StreamAccountDataResponse) error - grpc.ServerStream -} - -type injectiveAccountsRPCStreamAccountDataServer struct { - grpc.ServerStream -} - -func (x *injectiveAccountsRPCStreamAccountDataServer) Send(m *StreamAccountDataResponse) error { - return x.ServerStream.SendMsg(m) -} - -// InjectiveAccountsRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveAccountsRPC service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var InjectiveAccountsRPC_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "injective_accounts_rpc.InjectiveAccountsRPC", - HandlerType: (*InjectiveAccountsRPCServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Portfolio", - Handler: _InjectiveAccountsRPC_Portfolio_Handler, - }, - { - MethodName: "OrderStates", - Handler: _InjectiveAccountsRPC_OrderStates_Handler, - }, - { - MethodName: "SubaccountsList", - Handler: _InjectiveAccountsRPC_SubaccountsList_Handler, - }, - { - MethodName: "SubaccountBalancesList", - Handler: _InjectiveAccountsRPC_SubaccountBalancesList_Handler, - }, - { - MethodName: "SubaccountBalanceEndpoint", - Handler: _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler, - }, - { - MethodName: "SubaccountHistory", - Handler: _InjectiveAccountsRPC_SubaccountHistory_Handler, - }, - { - MethodName: "SubaccountOrderSummary", - Handler: _InjectiveAccountsRPC_SubaccountOrderSummary_Handler, - }, - { - MethodName: "Rewards", - Handler: _InjectiveAccountsRPC_Rewards_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "StreamSubaccountBalance", - Handler: _InjectiveAccountsRPC_StreamSubaccountBalance_Handler, - ServerStreams: true, - }, - { - StreamName: "StreamAccountData", - Handler: _InjectiveAccountsRPC_StreamAccountData_Handler, - ServerStreams: true, - }, - }, - Metadata: "goadesign_goagen_injective_accounts_rpc.proto", -} diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go deleted file mode 100644 index 4ceab949..00000000 --- a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go +++ /dev/null @@ -1,882 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_accounts_rpc.proto - -/* -Package injective_accounts_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_accounts_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Portfolio(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Portfolio(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderStates(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderStates(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountsList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountsList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalancesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalancesList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalanceEndpoint(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalanceEndpoint(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamSubaccountBalance_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, runtime.ServerMetadata, error) { - var protoReq StreamSubaccountBalanceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamSubaccountBalance(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountHistory(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountOrderSummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountOrderSummary(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Rewards(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Rewards(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamAccountData_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamAccountDataClient, runtime.ServerMetadata, error) { - var protoReq StreamAccountDataRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamAccountData(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveAccountsRPCHandlerServer registers the http handlers for service InjectiveAccountsRPC to "mux". -// UnaryRPC :call InjectiveAccountsRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveAccountsRPCHandlerFromEndpoint instead. -func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveAccountsRPCServer) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveAccountsRPCHandlerFromEndpoint is same as RegisterInjectiveAccountsRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveAccountsRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveAccountsRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveAccountsRPCHandler registers the http handlers for service InjectiveAccountsRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveAccountsRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveAccountsRPCHandlerClient(ctx, mux, NewInjectiveAccountsRPCClient(conn)) -} - -// RegisterInjectiveAccountsRPCHandlerClient registers the http handlers for service InjectiveAccountsRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveAccountsRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveAccountsRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveAccountsRPCClient" to call the correct interceptors. -func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveAccountsRPCClient) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveAccountsRPC_Portfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Portfolio"}, "")) - - pattern_InjectiveAccountsRPC_OrderStates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "OrderStates"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountsList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountsList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalancesList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalanceEndpoint"}, "")) - - pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamSubaccountBalance"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountHistory"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountOrderSummary"}, "")) - - pattern_InjectiveAccountsRPC_Rewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Rewards"}, "")) - - pattern_InjectiveAccountsRPC_StreamAccountData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamAccountData"}, "")) -) - -var ( - forward_InjectiveAccountsRPC_Portfolio_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_OrderStates_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountsList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.ForwardResponseStream - - forward_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_Rewards_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamAccountData_0 = runtime.ForwardResponseStream -) diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto deleted file mode 100644 index e28956da..00000000 --- a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto +++ /dev/null @@ -1,623 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_accounts_rpc; - -option go_package = "/injective_accounts_rpcpb"; - -// InjectiveAccountsRPC defines API of Exchange Accounts provider. -service InjectiveAccountsRPC { - // Provide the account's portfolio value in USD. - rpc Portfolio (PortfolioRequest) returns (PortfolioResponse); - // List order states by order hashes - rpc OrderStates (OrderStatesRequest) returns (OrderStatesResponse); - // List all subaccounts IDs of an account address - rpc SubaccountsList (SubaccountsListRequest) returns (SubaccountsListResponse); - // List subaccount balances for the provided denoms. - rpc SubaccountBalancesList (SubaccountBalancesListRequest) returns (SubaccountBalancesListResponse); - // Gets a balance for specific coin denom - rpc SubaccountBalanceEndpoint (SubaccountBalanceEndpointRequest) returns (SubaccountBalanceEndpointResponse); - // StreamSubaccountBalance streams new balance changes for a specified -// subaccount and denoms. If no denoms are provided, all denom changes are -// streamed. - rpc StreamSubaccountBalance (StreamSubaccountBalanceRequest) returns (stream StreamSubaccountBalanceResponse); - // Get subaccount's deposits and withdrawals history - rpc SubaccountHistory (SubaccountHistoryRequest) returns (SubaccountHistoryResponse); - // Get subaccount's orders summary - rpc SubaccountOrderSummary (SubaccountOrderSummaryRequest) returns (SubaccountOrderSummaryResponse); - // Provide historical trading rewards - rpc Rewards (RewardsRequest) returns (RewardsResponse); - // Stream live data for an account and respective data - rpc StreamAccountData (StreamAccountDataRequest) returns (stream StreamAccountDataResponse); -} - -message PortfolioRequest { - // Account address - string account_address = 1; -} - -message PortfolioResponse { - // The portfolio of this account - AccountPortfolio portfolio = 1; -} - -message AccountPortfolio { - // The account's portfolio value in USD. - string portfolio_value = 1; - // The account's available balance value in USD. - string available_balance = 2; - // The account's locked balance value in USD. - string locked_balance = 3; - // The account's total unrealized PnL value in USD. - string unrealized_pnl = 4; - // List of all subaccounts' portfolio - repeated SubaccountPortfolio subaccounts = 5; -} - -message SubaccountPortfolio { - // The ID of this subaccount - string subaccount_id = 1; - // The subaccount's available balance value in USD. - string available_balance = 2; - // The subaccount's locked balance value in USD. - string locked_balance = 3; - // The subaccount's total unrealized PnL value in USD. - string unrealized_pnl = 4; -} - -message OrderStatesRequest { - repeated string spot_order_hashes = 1; - repeated string derivative_order_hashes = 2; -} - -message OrderStatesResponse { - // List of the spot order state records - repeated OrderStateRecord spot_order_states = 1; - // List of the derivative order state records - repeated OrderStateRecord derivative_order_states = 2; -} - -message OrderStateRecord { - // Hash of the order - string order_hash = 1; - // The subaccountId that this order belongs to - string subaccount_id = 2; - // The Market ID of the order - string market_id = 3; - // The type of the order - string order_type = 4; - // The side of the order - string order_side = 5; - // The state (status) of the order - string state = 6; - // The filled quantity of the order - string quantity_filled = 7; - // The filled quantity of the order - string quantity_remaining = 8; - // Order committed timestamp in UNIX millis. - sint64 created_at = 9; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Order prices - string price = 11; - // Margin for derivative order - string margin = 12; -} - -message SubaccountsListRequest { - // Account address, the subaccounts owner - string account_address = 1; -} - -message SubaccountsListResponse { - repeated string subaccounts = 1; -} - -message SubaccountBalancesListRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message SubaccountBalancesListResponse { - // List of subaccount balances - repeated SubaccountBalance balances = 1; -} - -message SubaccountBalance { - // Related subaccount ID - string subaccount_id = 1; - // Account address, owner of this subaccount - string account_address = 2; - // Coin denom on the chain. - string denom = 3; - SubaccountDeposit deposit = 4; -} - -message SubaccountDeposit { - string total_balance = 1; - string available_balance = 2; -} - -message SubaccountBalanceEndpointRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Specify denom to get balance - string denom = 2; -} - -message SubaccountBalanceEndpointResponse { - // Subaccount balance - SubaccountBalance balance = 1; -} - -message StreamSubaccountBalanceRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message StreamSubaccountBalanceResponse { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message SubaccountHistoryRequest { - // SubaccountId of the trader we want to get the history from - string subaccount_id = 1; - // Filter history by denom - string denom = 2; - // Filter history by transfer type - repeated string transfer_types = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 5; - // Upper bound of account transfer history's executedAt - sint64 end_time = 6; -} - -message SubaccountHistoryResponse { - // List of subaccount transfers - repeated SubaccountBalanceTransfer transfers = 1; - Paging paging = 2; -} - -message SubaccountBalanceTransfer { - // Type of the subaccount balance transfer - string transfer_type = 1; - // Subaccount ID of the sending side - string src_subaccount_id = 2; - // Account address of the sending side - string src_account_address = 3; - // Subaccount ID of the receiving side - string dst_subaccount_id = 4; - // Account address of the receiving side - string dst_account_address = 5; - // Coin amount of the transfer - CosmosCoin amount = 6; - // Timestamp of the transfer in UNIX millis - sint64 executed_at = 7; -} - -message CosmosCoin { - // Coin denominator - string denom = 1; - // Coin amount (big int) - string amount = 2; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message SubaccountOrderSummaryRequest { - // SubaccountId of the trader we want to get the summary from - string subaccount_id = 1; - // MarketId is limiting order summary to specific market only - string market_id = 2; - // Filter by direction of the orders - string order_direction = 3; -} - -message SubaccountOrderSummaryResponse { - // Total count of subaccount's spot orders in given market and direction - sint64 spot_orders_total = 1; - // Total count of subaccount's derivative orders in given market and direction - sint64 derivative_orders_total = 2; -} - -message RewardsRequest { - // The distribution epoch sequence number. -1 for latest. - sint64 epoch = 1; - // Account address for the rewards distribution - string account_address = 2; -} - -message RewardsResponse { - // The trading rewards distributed - repeated Reward rewards = 1; -} - -message Reward { - // Account address - string account_address = 1; - // Reward coins distributed - repeated Coin rewards = 2; - // Rewards distribution timestamp in UNIX millis. - sint64 distributed_at = 3; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message StreamAccountDataRequest { - // account address - string account_address = 1; -} - -message StreamAccountDataResponse { - SubaccountBalanceResult subaccount_balance = 1; - PositionsResult position = 2; - TradeResult trade = 3; - OrderResult order = 4; - OrderHistoryResult order_history = 5; - FundingPaymentResult funding_payment = 6; -} - -message SubaccountBalanceResult { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message PositionsResult { - // Updated derivative Position - Position position = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message Position { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Position created timestamp in UNIX millis. - sint64 created_at = 11; -} - -message TradeResult { - oneof trade { - // New spot market trade - SpotTrade spot_trade = 1; - // New derivative market trade - DerivativeTrade derivative_trade = 2; - } - // Executed trades update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotTrade { - // Maker order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // The direction the trade - string trade_direction = 5; - // Price level at which trade has been executed - PriceLevel price = 6; - // The fee associated with the trade (quote asset denom) - string fee = 7; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 8; - // Fee recipient address - string fee_recipient = 9; - // A unique string that helps differentiate between trades - string trade_id = 10; - // Trade's execution side, marker/taker - string execution_side = 11; - // Custom client order ID - string cid = 12; -} - -message PriceLevel { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message DerivativeTrade { - // Order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // True if the trade is a liquidation - bool is_liquidation = 5; - // Position Delta from the trade - PositionDelta position_delta = 6; - // The payout associated with the trade - string payout = 7; - // The fee associated with the trade - string fee = 8; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 9; - // Fee recipient address - string fee_recipient = 10; - // A unique string that helps differentiate between trades - string trade_id = 11; - // Trade's execution side, marker/taker - string execution_side = 12; - // Custom client order ID - string cid = 13; -} - -message PositionDelta { - // The direction the trade - string trade_direction = 1; - // Execution Price of the trade. - string execution_price = 2; - // Execution Quantity of the trade. - string execution_quantity = 3; - // Execution Margin of the trade. - string execution_margin = 4; -} - -message OrderResult { - oneof order { - // Updated spot market order - SpotLimitOrder spot_order = 1; - // Updated derivative market order - DerivativeLimitOrder derivative_order = 2; - } - // Executed orders update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // Price of the order - string price = 5; - // Quantity of the order - string quantity = 6; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 7; - // Trigger price is the trigger price used by stop/take orders. 0 if the -// trigger price is not set. - string trigger_price = 8; - // Fee recipient address - string fee_recipient = 9; - // Order state - string state = 10; - // Order committed timestamp in UNIX millis. - sint64 created_at = 11; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 13; - // Custom client order ID - string cid = 14; -} - -message DerivativeLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Derivative Market ID - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // True if the order is a reduce-only order - bool is_reduce_only = 5; - // Margin of the order - string margin = 6; - // Price of the order - string price = 7; - // Quantity of the order - string quantity = 8; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 9; - // Trigger price is the trigger price used by stop/take orders - string trigger_price = 10; - // Fee recipient address - string fee_recipient = 11; - // Order state - string state = 12; - // Order committed timestamp in UNIX millis. - sint64 created_at = 13; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 14; - // Order number of subaccount - sint64 order_number = 15; - // Order type - string order_type = 16; - // Order type - bool is_conditional = 17; - // Trigger timestamp, only exists for conditional orders - uint64 trigger_at = 18; - // OrderHash of order that is triggered by this conditional order - string placed_order_hash = 19; - // Execution type of conditional order - string execution_type = 20; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 21; - // Custom client order ID - string cid = 22; -} - -message OrderHistoryResult { - oneof order_history { - // Spot order history - SpotOrderHistory spot_order_history = 1; - // Derivative order history - DerivativeOrderHistory derivative_order_history = 2; - } - // Order update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // Order direction (order side) - string direction = 14; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 15; - // Custom client order ID - string cid = 16; -} - -message DerivativeOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // True if an order is reduce only - bool is_reduce_only = 14; - // Order direction (order side) - string direction = 15; - // True if this is conditional order, otherwise false - bool is_conditional = 16; - // Trigger timestamp in unix milli - uint64 trigger_at = 17; - // Order hash placed when this triggers - string placed_order_hash = 18; - // Order's margin - string margin = 19; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 20; - // Custom client order ID - string cid = 21; -} - -message FundingPaymentResult { - // Funding payments of the account - FundingPayment funding_payments = 1; - // Funding payments type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message FundingPayment { - // Derivative Market ID - string market_id = 1; - // The subaccountId that the position belongs to - string subaccount_id = 2; - // Amount of the funding payment - string amount = 3; - // Timestamp of funding payment in UNIX millis - sint64 timestamp = 4; -} diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go index 865f0882..0640a809 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go index 4100ffbf..3c89d6b5 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go index da99cb0b..cb9eacab 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb @@ -792,12 +792,23 @@ type CampaignsV2Request struct { // Campaign type Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Whether the campaign is active + // Whether the campaign is active. + // Deprecated: use status instead. Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` // Limit number of returned campaigns Limit int32 `protobuf:"zigzag32,3,opt,name=limit,proto3" json:"limit,omitempty"` // Cursor for pagination Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"` + // Filter campaigns by start date greater than this value in milliseconds + FromStartDate int64 `protobuf:"zigzag64,5,opt,name=from_start_date,json=fromStartDate,proto3" json:"from_start_date,omitempty"` + // Filter campaigns by start date lower than this value in milliseconds + ToStartDate int64 `protobuf:"zigzag64,6,opt,name=to_start_date,json=toStartDate,proto3" json:"to_start_date,omitempty"` + // Filter campaigns by end date greater than this value in milliseconds + FromEndDate int64 `protobuf:"zigzag64,7,opt,name=from_end_date,json=fromEndDate,proto3" json:"from_end_date,omitempty"` + // Filter campaigns by end date lower than this value in milliseconds + ToEndDate int64 `protobuf:"zigzag64,8,opt,name=to_end_date,json=toEndDate,proto3" json:"to_end_date,omitempty"` + // Filter campaigns by status + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` } func (x *CampaignsV2Request) Reset() { @@ -860,6 +871,41 @@ func (x *CampaignsV2Request) GetCursor() string { return "" } +func (x *CampaignsV2Request) GetFromStartDate() int64 { + if x != nil { + return x.FromStartDate + } + return 0 +} + +func (x *CampaignsV2Request) GetToStartDate() int64 { + if x != nil { + return x.ToStartDate + } + return 0 +} + +func (x *CampaignsV2Request) GetFromEndDate() int64 { + if x != nil { + return x.FromEndDate + } + return 0 +} + +func (x *CampaignsV2Request) GetToEndDate() int64 { + if x != nil { + return x.ToEndDate + } + return 0 +} + +func (x *CampaignsV2Request) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + type CampaignsV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2085,246 +2131,256 @@ var file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc = []byte{ 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x6e, 0x0a, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x74, 0x22, 0x96, 0x02, 0x0a, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x66, 0x72, + 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, + 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x0b, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x6f, 0x45, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6f, 0x0a, 0x13, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0xc3, 0x04, 0x0a, + 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, + 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, - 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x22, 0xc3, 0x04, 0x0a, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, - 0x69, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, - 0xf6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x36, 0x0a, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0xe5, 0x03, 0x0a, 0x05, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, - 0x79, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x72, 0x61, 0x6e, - 0x6b, 0x42, 0x79, 0x54, 0x76, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x82, 0x03, 0x0a, 0x0f, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x2a, 0x0a, - 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x76, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, 0xf6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3c, - 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x03, 0x0a, - 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x30, 0x0a, 0x14, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, - 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x76, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x74, 0x76, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x41, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x22, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1d, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x52, 0x0a, + 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x0f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x22, 0xe5, 0x03, 0x0a, 0x05, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 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, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, + 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x6e, + 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, 0x54, 0x76, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, + 0x6f, 0x67, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x03, 0x0a, 0x0f, 0x43, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x2b, + 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x76, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd2, + 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, + 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, + 0x74, 0x42, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, + 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3c, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x03, 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, + 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x76, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, + 0x76, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x74, + 0x76, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x41, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x5e, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 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, 0x22, 0x51, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x89, + 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x89, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x5a, - 0x0a, 0x07, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, - 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, + 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go index f45711c2..7b8d6047 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto index f5095311..13acc8b2 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto +++ b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto @@ -149,12 +149,23 @@ message CampaignsResponse { message CampaignsV2Request { // Campaign type string type = 1; - // Whether the campaign is active + // Whether the campaign is active. +// Deprecated: use status instead. bool active = 2; // Limit number of returned campaigns sint32 limit = 3; // Cursor for pagination string cursor = 4; + // Filter campaigns by start date greater than this value in milliseconds + sint64 from_start_date = 5; + // Filter campaigns by start date lower than this value in milliseconds + sint64 to_start_date = 6; + // Filter campaigns by end date greater than this value in milliseconds + sint64 from_end_date = 7; + // Filter campaigns by end date lower than this value in milliseconds + sint64 to_end_date = 8; + // Filter campaigns by status + string status = 9; } message CampaignsV2Response { diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go index 98af60fa..cae3c64a 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -170,7 +170,7 @@ type DerivativeMarketInfo struct { MaintenanceMarginRatio string `protobuf:"bytes,9,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3" json:"maintenance_margin_ratio,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,10,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,11,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -377,7 +377,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -1033,7 +1033,7 @@ type BinaryOptionsMarketInfo struct { SettlementTimestamp int64 `protobuf:"zigzag64,9,opt,name=settlement_timestamp,json=settlementTimestamp,proto3" json:"settlement_timestamp,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,10,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,11,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -4256,6 +4256,8 @@ type TradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesRequest) Reset() { @@ -4388,6 +4390,13 @@ func (x *TradesRequest) GetCid() string { return "" } +func (x *TradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4710,6 +4719,8 @@ type TradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesV2Request) Reset() { @@ -4842,6 +4853,13 @@ func (x *TradesV2Request) GetCid() string { return "" } +func (x *TradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4933,6 +4951,8 @@ type StreamTradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesRequest) Reset() { @@ -5065,6 +5085,13 @@ func (x *StreamTradesRequest) GetCid() string { return "" } +func (x *StreamTradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5166,6 +5193,8 @@ type StreamTradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesV2Request) Reset() { @@ -5298,6 +5327,13 @@ func (x *StreamTradesV2Request) GetCid() string { return "" } +func (x *StreamTradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6952,7 +6988,7 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xbf, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, @@ -6981,542 +7017,551 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, - 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, - 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, - 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, - 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xbb, 0x01, - 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, - 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0xc1, 0x03, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, - 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x22, 0xc5, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x22, 0xc7, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xa7, 0x01, - 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, + 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, + 0x69, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, + 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, + 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, + 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, + 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, + 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, - 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, - 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc4, 0x1a, 0x0a, 0x1e, 0x49, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, + 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, + 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc4, 0x1a, 0x0a, 0x1e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, + 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, - 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, - 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, + 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, - 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x36, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, - 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, - 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, - 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, - 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, + 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, - 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go index 3fe28e50..4ca27953 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto index 468da6c6..b65d2df4 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto +++ b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto @@ -107,7 +107,7 @@ message DerivativeMarketInfo { string maintenance_margin_ratio = 9; // Coin denom used for the quote asset. string quote_denom = 10; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 11; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 12; @@ -131,7 +131,7 @@ message DerivativeMarketInfo { message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; @@ -238,7 +238,7 @@ message BinaryOptionsMarketInfo { sint64 settlement_timestamp = 9; // Coin denom used for the quote asset. string quote_denom = 10; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 11; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 12; @@ -755,6 +755,8 @@ message TradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message TradesResponse { @@ -834,6 +836,8 @@ message TradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message TradesV2Response { @@ -873,6 +877,8 @@ message StreamTradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message StreamTradesResponse { @@ -915,6 +921,8 @@ message StreamTradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message StreamTradesV2Response { diff --git a/exchange/event_provider_api/pb/event_provider_api.pb.gw.go b/exchange/event_provider_api/pb/event_provider_api.pb.gw.go new file mode 100644 index 00000000..03cf7f4d --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api.pb.gw.go @@ -0,0 +1,569 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: event_provider_api.proto + +/* +Package event_provider_apipb is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package event_provider_apipb + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetLatestHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetLatestHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetLatestHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetLatestHeight(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_StreamBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (EventProviderAPI_StreamBlockEventsClient, runtime.ServerMetadata, error) { + var protoReq StreamBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.StreamBlockEvents(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +func request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBlockEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetBlockEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBlockEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetBlockEventsRPC(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetCustomEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetCustomEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetCustomEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetCustomEventsRPC(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetABCIBlockEvents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetABCIBlockEvents(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsAtHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetABCIBlockEventsAtHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsAtHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetABCIBlockEventsAtHeight(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterEventProviderAPIHandlerServer registers the http handlers for service EventProviderAPI to "mux". +// UnaryRPC :call EventProviderAPIServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterEventProviderAPIHandlerFromEndpoint instead. +func RegisterEventProviderAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server EventProviderAPIServer) error { + + mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterEventProviderAPIHandlerFromEndpoint is same as RegisterEventProviderAPIHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterEventProviderAPIHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterEventProviderAPIHandler(ctx, mux, conn) +} + +// RegisterEventProviderAPIHandler registers the http handlers for service EventProviderAPI to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterEventProviderAPIHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterEventProviderAPIHandlerClient(ctx, mux, NewEventProviderAPIClient(conn)) +} + +// RegisterEventProviderAPIHandlerClient registers the http handlers for service EventProviderAPI +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "EventProviderAPIClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "EventProviderAPIClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "EventProviderAPIClient" to call the correct interceptors. +func RegisterEventProviderAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client EventProviderAPIClient) error { + + mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/StreamBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/StreamBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_StreamBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_StreamBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_EventProviderAPI_GetLatestHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetLatestHeight"}, "")) + + pattern_EventProviderAPI_StreamBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "StreamBlockEvents"}, "")) + + pattern_EventProviderAPI_GetBlockEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetBlockEventsRPC"}, "")) + + pattern_EventProviderAPI_GetCustomEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetCustomEventsRPC"}, "")) + + pattern_EventProviderAPI_GetABCIBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEvents"}, "")) + + pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEventsAtHeight"}, "")) +) + +var ( + forward_EventProviderAPI_GetLatestHeight_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_StreamBlockEvents_0 = runtime.ForwardResponseStream + + forward_EventProviderAPI_GetBlockEventsRPC_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetCustomEventsRPC_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetABCIBlockEvents_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.ForwardResponseMessage +) diff --git a/exchange/event_provider_api/pb/event_provider_api.proto b/exchange/event_provider_api/pb/event_provider_api.proto new file mode 100644 index 00000000..7b85e866 --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api.proto @@ -0,0 +1,180 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// EventProviderAPI protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +syntax = "proto3"; + +package event_provider_api; + +option go_package = "/event_provider_apipb"; + +// EventProviderAPI provides processed block events for different backends. +service EventProviderAPI { + // Get latest block from event provider + rpc GetLatestHeight (GetLatestHeightRequest) returns (GetLatestHeightResponse); + // Stream processed block events for selected backend + rpc StreamBlockEvents (StreamBlockEventsRequest) returns (stream StreamBlockEventsResponse); + // Get processed block events for selected backend + rpc GetBlockEventsRPC (GetBlockEventsRPCRequest) returns (GetBlockEventsRPCResponse); + // Get custom processed block events for selected backend + rpc GetCustomEventsRPC (GetCustomEventsRPCRequest) returns (GetCustomEventsRPCResponse); + // Get raw block events for selected height + rpc GetABCIBlockEvents (GetABCIBlockEventsRequest) returns (GetABCIBlockEventsResponse); + // Get all raw block events for selected height + rpc GetABCIBlockEventsAtHeight (GetABCIBlockEventsAtHeightRequest) returns (GetABCIBlockEventsAtHeightResponse); +} + +message GetLatestHeightRequest { +} + +message GetLatestHeightResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + LatestBlockHeight data = 4; +} +// Latest block height from event provider db +message LatestBlockHeight { + uint64 height = 1; +} + +message StreamBlockEventsRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; +} + +message StreamBlockEventsResponse { + repeated Block blocks = 1; +} + +message Block { + sint64 height = 1; + string version = 2; + // Processed block events in the block + repeated BlockEvent events = 3; + // Indicates whether the block is the latest one available in the event provider + bool in_sync = 4; +} + +message BlockEvent { + // Event type + string type_url = 1; + // Event data + bytes value = 2; + // TX hash + bytes tx_hash = 3; + // Set only if it's a BeginBlock or EndBlock event + string mode = 4; +} + +message GetBlockEventsRPCRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; + bool human_readable = 3; +} + +message GetBlockEventsRPCResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + BlockEventsRPC data = 4; +} +// Processed block events for backend processor to consume +message BlockEventsRPC { + // Array of event types + repeated string types = 1; + // Array of parsed events + repeated bytes events = 2; + // Map of event index - tx hash + map tx_hashes = 3; +} + +message GetCustomEventsRPCRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; + // Specify custom events to get + string events = 3; +} + +message GetCustomEventsRPCResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + BlockEventsRPC data = 4; +} + +message GetABCIBlockEventsRequest { + sint32 height = 1; + // Array of event types + repeated string event_types = 2; +} + +message GetABCIBlockEventsResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + RawBlock raw_block = 4; +} + +message RawBlock { + sint64 height = 1; + string block_time = 5; + // Block timestamp in UNIX millis. + sint64 block_timestamp = 6; + repeated ABCIResponseDeliverTx txs_results = 2; + repeated ABCIEvent begin_block_events = 3; + repeated ABCIEvent end_block_events = 4; +} + +message ABCIResponseDeliverTx { + sint32 code = 1; + string log = 2; + string info = 3; + sint64 gas_wanted = 4; + sint64 gas_used = 5; + repeated ABCIEvent events = 6; + string codespace = 7; + bytes tx_hash = 8; +} + +message ABCIEvent { + string type = 1; + repeated ABCIAttribute attributes = 2; +} + +message ABCIAttribute { + string key = 1; + string value = 2; +} + +message GetABCIBlockEventsAtHeightRequest { + sint32 height = 1; +} + +message GetABCIBlockEventsAtHeightResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + RawBlock raw_block = 4; +} diff --git a/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go b/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go new file mode 100644 index 00000000..2acb375b --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go @@ -0,0 +1,563 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go +// +// Generated by this command: +// +// mockgen -source=api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go -destination=api/gen/grpc/event_provider_api/pb/event_provider_api_grpc.pb_mock.go -package=event_provider_apipb +// + +// Package event_provider_apipb is a generated GoMock package. +package event_provider_apipb + +import ( + context "context" + reflect "reflect" + + gomock "go.uber.org/mock/gomock" + grpc "google.golang.org/grpc" + metadata "google.golang.org/grpc/metadata" +) + +// MockEventProviderAPIClient is a mock of EventProviderAPIClient interface. +type MockEventProviderAPIClient struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPIClientMockRecorder +} + +// MockEventProviderAPIClientMockRecorder is the mock recorder for MockEventProviderAPIClient. +type MockEventProviderAPIClientMockRecorder struct { + mock *MockEventProviderAPIClient +} + +// NewMockEventProviderAPIClient creates a new mock instance. +func NewMockEventProviderAPIClient(ctrl *gomock.Controller) *MockEventProviderAPIClient { + mock := &MockEventProviderAPIClient{ctrl: ctrl} + mock.recorder = &MockEventProviderAPIClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPIClient) EXPECT() *MockEventProviderAPIClientMockRecorder { + return m.recorder +} + +// GetABCIBlockEvents mocks base method. +func (m *MockEventProviderAPIClient) GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetABCIBlockEvents", varargs...) + ret0, _ := ret[0].(*GetABCIBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. +func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEvents(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEvents), varargs...) +} + +// GetABCIBlockEventsAtHeight mocks base method. +func (m *MockEventProviderAPIClient) GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", varargs...) + ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. +func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEventsAtHeight(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEventsAtHeight), varargs...) +} + +// GetBlockEventsRPC mocks base method. +func (m *MockEventProviderAPIClient) GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetBlockEventsRPC", varargs...) + ret0, _ := ret[0].(*GetBlockEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. +func (mr *MockEventProviderAPIClientMockRecorder) GetBlockEventsRPC(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetBlockEventsRPC), varargs...) +} + +// GetCustomEventsRPC mocks base method. +func (m *MockEventProviderAPIClient) GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetCustomEventsRPC", varargs...) + ret0, _ := ret[0].(*GetCustomEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. +func (mr *MockEventProviderAPIClientMockRecorder) GetCustomEventsRPC(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetCustomEventsRPC), varargs...) +} + +// GetLatestHeight mocks base method. +func (m *MockEventProviderAPIClient) GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLatestHeight", varargs...) + ret0, _ := ret[0].(*GetLatestHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestHeight indicates an expected call of GetLatestHeight. +func (mr *MockEventProviderAPIClientMockRecorder) GetLatestHeight(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetLatestHeight), varargs...) +} + +// StreamBlockEvents mocks base method. +func (m *MockEventProviderAPIClient) StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "StreamBlockEvents", varargs...) + ret0, _ := ret[0].(EventProviderAPI_StreamBlockEventsClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StreamBlockEvents indicates an expected call of StreamBlockEvents. +func (mr *MockEventProviderAPIClientMockRecorder) StreamBlockEvents(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).StreamBlockEvents), varargs...) +} + +// MockEventProviderAPI_StreamBlockEventsClient is a mock of EventProviderAPI_StreamBlockEventsClient interface. +type MockEventProviderAPI_StreamBlockEventsClient struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPI_StreamBlockEventsClientMockRecorder +} + +// MockEventProviderAPI_StreamBlockEventsClientMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsClient. +type MockEventProviderAPI_StreamBlockEventsClientMockRecorder struct { + mock *MockEventProviderAPI_StreamBlockEventsClient +} + +// NewMockEventProviderAPI_StreamBlockEventsClient creates a new mock instance. +func NewMockEventProviderAPI_StreamBlockEventsClient(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsClient { + mock := &MockEventProviderAPI_StreamBlockEventsClient{ctrl: ctrl} + mock.recorder = &MockEventProviderAPI_StreamBlockEventsClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPI_StreamBlockEventsClient) EXPECT() *MockEventProviderAPI_StreamBlockEventsClientMockRecorder { + return m.recorder +} + +// CloseSend mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) CloseSend() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CloseSend") + ret0, _ := ret[0].(error) + return ret0 +} + +// CloseSend indicates an expected call of CloseSend. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) CloseSend() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).CloseSend)) +} + +// Context mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Context)) +} + +// Header mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Header() (metadata.MD, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Header") + ret0, _ := ret[0].(metadata.MD) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Header indicates an expected call of Header. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Header() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Header)) +} + +// Recv mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Recv() (*StreamBlockEventsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Recv") + ret0, _ := ret[0].(*StreamBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Recv indicates an expected call of Recv. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Recv() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Recv)) +} + +// RecvMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) RecvMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).RecvMsg), m) +} + +// SendMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) SendMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).SendMsg), m) +} + +// Trailer mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Trailer() metadata.MD { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Trailer") + ret0, _ := ret[0].(metadata.MD) + return ret0 +} + +// Trailer indicates an expected call of Trailer. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Trailer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Trailer)) +} + +// MockEventProviderAPIServer is a mock of EventProviderAPIServer interface. +type MockEventProviderAPIServer struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPIServerMockRecorder +} + +// MockEventProviderAPIServerMockRecorder is the mock recorder for MockEventProviderAPIServer. +type MockEventProviderAPIServerMockRecorder struct { + mock *MockEventProviderAPIServer +} + +// NewMockEventProviderAPIServer creates a new mock instance. +func NewMockEventProviderAPIServer(ctrl *gomock.Controller) *MockEventProviderAPIServer { + mock := &MockEventProviderAPIServer{ctrl: ctrl} + mock.recorder = &MockEventProviderAPIServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPIServer) EXPECT() *MockEventProviderAPIServerMockRecorder { + return m.recorder +} + +// GetABCIBlockEvents mocks base method. +func (m *MockEventProviderAPIServer) GetABCIBlockEvents(arg0 context.Context, arg1 *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetABCIBlockEvents", arg0, arg1) + ret0, _ := ret[0].(*GetABCIBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. +func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEvents(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEvents), arg0, arg1) +} + +// GetABCIBlockEventsAtHeight mocks base method. +func (m *MockEventProviderAPIServer) GetABCIBlockEventsAtHeight(arg0 context.Context, arg1 *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", arg0, arg1) + ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. +func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEventsAtHeight(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEventsAtHeight), arg0, arg1) +} + +// GetBlockEventsRPC mocks base method. +func (m *MockEventProviderAPIServer) GetBlockEventsRPC(arg0 context.Context, arg1 *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBlockEventsRPC", arg0, arg1) + ret0, _ := ret[0].(*GetBlockEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. +func (mr *MockEventProviderAPIServerMockRecorder) GetBlockEventsRPC(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetBlockEventsRPC), arg0, arg1) +} + +// GetCustomEventsRPC mocks base method. +func (m *MockEventProviderAPIServer) GetCustomEventsRPC(arg0 context.Context, arg1 *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCustomEventsRPC", arg0, arg1) + ret0, _ := ret[0].(*GetCustomEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. +func (mr *MockEventProviderAPIServerMockRecorder) GetCustomEventsRPC(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetCustomEventsRPC), arg0, arg1) +} + +// GetLatestHeight mocks base method. +func (m *MockEventProviderAPIServer) GetLatestHeight(arg0 context.Context, arg1 *GetLatestHeightRequest) (*GetLatestHeightResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestHeight", arg0, arg1) + ret0, _ := ret[0].(*GetLatestHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestHeight indicates an expected call of GetLatestHeight. +func (mr *MockEventProviderAPIServerMockRecorder) GetLatestHeight(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetLatestHeight), arg0, arg1) +} + +// StreamBlockEvents mocks base method. +func (m *MockEventProviderAPIServer) StreamBlockEvents(arg0 *StreamBlockEventsRequest, arg1 EventProviderAPI_StreamBlockEventsServer) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StreamBlockEvents", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// StreamBlockEvents indicates an expected call of StreamBlockEvents. +func (mr *MockEventProviderAPIServerMockRecorder) StreamBlockEvents(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).StreamBlockEvents), arg0, arg1) +} + +// mustEmbedUnimplementedEventProviderAPIServer mocks base method. +func (m *MockEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") +} + +// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. +func (mr *MockEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) +} + +// MockUnsafeEventProviderAPIServer is a mock of UnsafeEventProviderAPIServer interface. +type MockUnsafeEventProviderAPIServer struct { + ctrl *gomock.Controller + recorder *MockUnsafeEventProviderAPIServerMockRecorder +} + +// MockUnsafeEventProviderAPIServerMockRecorder is the mock recorder for MockUnsafeEventProviderAPIServer. +type MockUnsafeEventProviderAPIServerMockRecorder struct { + mock *MockUnsafeEventProviderAPIServer +} + +// NewMockUnsafeEventProviderAPIServer creates a new mock instance. +func NewMockUnsafeEventProviderAPIServer(ctrl *gomock.Controller) *MockUnsafeEventProviderAPIServer { + mock := &MockUnsafeEventProviderAPIServer{ctrl: ctrl} + mock.recorder = &MockUnsafeEventProviderAPIServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockUnsafeEventProviderAPIServer) EXPECT() *MockUnsafeEventProviderAPIServerMockRecorder { + return m.recorder +} + +// mustEmbedUnimplementedEventProviderAPIServer mocks base method. +func (m *MockUnsafeEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") +} + +// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. +func (mr *MockUnsafeEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockUnsafeEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) +} + +// MockEventProviderAPI_StreamBlockEventsServer is a mock of EventProviderAPI_StreamBlockEventsServer interface. +type MockEventProviderAPI_StreamBlockEventsServer struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPI_StreamBlockEventsServerMockRecorder +} + +// MockEventProviderAPI_StreamBlockEventsServerMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsServer. +type MockEventProviderAPI_StreamBlockEventsServerMockRecorder struct { + mock *MockEventProviderAPI_StreamBlockEventsServer +} + +// NewMockEventProviderAPI_StreamBlockEventsServer creates a new mock instance. +func NewMockEventProviderAPI_StreamBlockEventsServer(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsServer { + mock := &MockEventProviderAPI_StreamBlockEventsServer{ctrl: ctrl} + mock.recorder = &MockEventProviderAPI_StreamBlockEventsServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPI_StreamBlockEventsServer) EXPECT() *MockEventProviderAPI_StreamBlockEventsServerMockRecorder { + return m.recorder +} + +// Context mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Context)) +} + +// RecvMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) RecvMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).RecvMsg), m) +} + +// Send mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) Send(arg0 *StreamBlockEventsResponse) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Send", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// Send indicates an expected call of Send. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Send(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Send), arg0) +} + +// SendHeader mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SendHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendHeader indicates an expected call of SendHeader. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendHeader(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendHeader), arg0) +} + +// SendMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendMsg), m) +} + +// SetHeader mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SetHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetHeader indicates an expected call of SetHeader. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetHeader(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetHeader), arg0) +} + +// SetTrailer mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SetTrailer(arg0 metadata.MD) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetTrailer", arg0) +} + +// SetTrailer indicates an expected call of SetTrailer. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetTrailer(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetTrailer), arg0) +} diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go new file mode 100644 index 00000000..1389f949 --- /dev/null +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go @@ -0,0 +1,1881 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// EventProviderAPI protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.21.12 +// source: goadesign_goagen_event_provider_api.proto + +package event_provider_apipb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GetLatestHeightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetLatestHeightRequest) Reset() { + *x = GetLatestHeightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLatestHeightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLatestHeightRequest) ProtoMessage() {} + +func (x *GetLatestHeightRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[0] + 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 GetLatestHeightRequest.ProtoReflect.Descriptor instead. +func (*GetLatestHeightRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{0} +} + +type GetLatestHeightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *LatestBlockHeight `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetLatestHeightResponse) Reset() { + *x = GetLatestHeightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLatestHeightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLatestHeightResponse) ProtoMessage() {} + +func (x *GetLatestHeightResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[1] + 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 GetLatestHeightResponse.ProtoReflect.Descriptor instead. +func (*GetLatestHeightResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{1} +} + +func (x *GetLatestHeightResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetLatestHeightResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetLatestHeightResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetLatestHeightResponse) GetData() *LatestBlockHeight { + if x != nil { + return x.Data + } + return nil +} + +// Latest block height from event provider db +type LatestBlockHeight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *LatestBlockHeight) Reset() { + *x = LatestBlockHeight{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatestBlockHeight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatestBlockHeight) ProtoMessage() {} + +func (x *LatestBlockHeight) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[2] + 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 LatestBlockHeight.ProtoReflect.Descriptor instead. +func (*LatestBlockHeight) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{2} +} + +func (x *LatestBlockHeight) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type StreamBlockEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *StreamBlockEventsRequest) Reset() { + *x = StreamBlockEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamBlockEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamBlockEventsRequest) ProtoMessage() {} + +func (x *StreamBlockEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[3] + 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 StreamBlockEventsRequest.ProtoReflect.Descriptor instead. +func (*StreamBlockEventsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{3} +} + +func (x *StreamBlockEventsRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *StreamBlockEventsRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +type StreamBlockEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blocks []*Block `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"` +} + +func (x *StreamBlockEventsResponse) Reset() { + *x = StreamBlockEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamBlockEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamBlockEventsResponse) ProtoMessage() {} + +func (x *StreamBlockEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_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 mi.MessageOf(x) +} + +// Deprecated: Use StreamBlockEventsResponse.ProtoReflect.Descriptor instead. +func (*StreamBlockEventsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{4} +} + +func (x *StreamBlockEventsResponse) GetBlocks() []*Block { + if x != nil { + return x.Blocks + } + return nil +} + +type Block struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int64 `protobuf:"zigzag64,1,opt,name=height,proto3" json:"height,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // Processed block events in the block + Events []*BlockEvent `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + // Indicates whether the block is the latest one available in the event provider + InSync bool `protobuf:"varint,4,opt,name=in_sync,json=inSync,proto3" json:"in_sync,omitempty"` +} + +func (x *Block) Reset() { + *x = Block{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Block) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Block) ProtoMessage() {} + +func (x *Block) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[5] + 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 Block.ProtoReflect.Descriptor instead. +func (*Block) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{5} +} + +func (x *Block) GetHeight() int64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Block) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Block) GetEvents() []*BlockEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *Block) GetInSync() bool { + if x != nil { + return x.InSync + } + return false +} + +type BlockEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Event type + TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + // Event data + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // TX hash + TxHash []byte `protobuf:"bytes,3,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Set only if it's a BeginBlock or EndBlock event + Mode string `protobuf:"bytes,4,opt,name=mode,proto3" json:"mode,omitempty"` +} + +func (x *BlockEvent) Reset() { + *x = BlockEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockEvent) ProtoMessage() {} + +func (x *BlockEvent) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[6] + 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 BlockEvent.ProtoReflect.Descriptor instead. +func (*BlockEvent) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{6} +} + +func (x *BlockEvent) GetTypeUrl() string { + if x != nil { + return x.TypeUrl + } + return "" +} + +func (x *BlockEvent) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *BlockEvent) GetTxHash() []byte { + if x != nil { + return x.TxHash + } + return nil +} + +func (x *BlockEvent) GetMode() string { + if x != nil { + return x.Mode + } + return "" +} + +type GetBlockEventsRPCRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` + HumanReadable bool `protobuf:"varint,3,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"` +} + +func (x *GetBlockEventsRPCRequest) Reset() { + *x = GetBlockEventsRPCRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockEventsRPCRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockEventsRPCRequest) ProtoMessage() {} + +func (x *GetBlockEventsRPCRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[7] + 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 GetBlockEventsRPCRequest.ProtoReflect.Descriptor instead. +func (*GetBlockEventsRPCRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{7} +} + +func (x *GetBlockEventsRPCRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *GetBlockEventsRPCRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetBlockEventsRPCRequest) GetHumanReadable() bool { + if x != nil { + return x.HumanReadable + } + return false +} + +type GetBlockEventsRPCResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *BlockEventsRPC `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBlockEventsRPCResponse) Reset() { + *x = GetBlockEventsRPCResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockEventsRPCResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockEventsRPCResponse) ProtoMessage() {} + +func (x *GetBlockEventsRPCResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[8] + 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 GetBlockEventsRPCResponse.ProtoReflect.Descriptor instead. +func (*GetBlockEventsRPCResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{8} +} + +func (x *GetBlockEventsRPCResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetData() *BlockEventsRPC { + if x != nil { + return x.Data + } + return nil +} + +// Processed block events for backend processor to consume +type BlockEventsRPC struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array of event types + Types []string `protobuf:"bytes,1,rep,name=types,proto3" json:"types,omitempty"` + // Array of parsed events + Events [][]byte `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` + // Map of event index - tx hash + TxHashes map[int32][]byte `protobuf:"bytes,3,rep,name=tx_hashes,json=txHashes,proto3" json:"tx_hashes,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *BlockEventsRPC) Reset() { + *x = BlockEventsRPC{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockEventsRPC) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockEventsRPC) ProtoMessage() {} + +func (x *BlockEventsRPC) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[9] + 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 BlockEventsRPC.ProtoReflect.Descriptor instead. +func (*BlockEventsRPC) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{9} +} + +func (x *BlockEventsRPC) GetTypes() []string { + if x != nil { + return x.Types + } + return nil +} + +func (x *BlockEventsRPC) GetEvents() [][]byte { + if x != nil { + return x.Events + } + return nil +} + +func (x *BlockEventsRPC) GetTxHashes() map[int32][]byte { + if x != nil { + return x.TxHashes + } + return nil +} + +type GetCustomEventsRPCRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` + // Specify custom events to get + Events string `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"` +} + +func (x *GetCustomEventsRPCRequest) Reset() { + *x = GetCustomEventsRPCRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCustomEventsRPCRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCustomEventsRPCRequest) ProtoMessage() {} + +func (x *GetCustomEventsRPCRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[10] + 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 GetCustomEventsRPCRequest.ProtoReflect.Descriptor instead. +func (*GetCustomEventsRPCRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{10} +} + +func (x *GetCustomEventsRPCRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *GetCustomEventsRPCRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetCustomEventsRPCRequest) GetEvents() string { + if x != nil { + return x.Events + } + return "" +} + +type GetCustomEventsRPCResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *BlockEventsRPC `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetCustomEventsRPCResponse) Reset() { + *x = GetCustomEventsRPCResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCustomEventsRPCResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCustomEventsRPCResponse) ProtoMessage() {} + +func (x *GetCustomEventsRPCResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[11] + 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 GetCustomEventsRPCResponse.ProtoReflect.Descriptor instead. +func (*GetCustomEventsRPCResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{11} +} + +func (x *GetCustomEventsRPCResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetData() *BlockEventsRPC { + if x != nil { + return x.Data + } + return nil +} + +type GetABCIBlockEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int32 `protobuf:"zigzag32,1,opt,name=height,proto3" json:"height,omitempty"` + // Array of event types + EventTypes []string `protobuf:"bytes,2,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` +} + +func (x *GetABCIBlockEventsRequest) Reset() { + *x = GetABCIBlockEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsRequest) ProtoMessage() {} + +func (x *GetABCIBlockEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[12] + 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 GetABCIBlockEventsRequest.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{12} +} + +func (x *GetABCIBlockEventsRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetABCIBlockEventsRequest) GetEventTypes() []string { + if x != nil { + return x.EventTypes + } + return nil +} + +type GetABCIBlockEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + RawBlock *RawBlock `protobuf:"bytes,4,opt,name=raw_block,json=rawBlock,proto3" json:"raw_block,omitempty"` +} + +func (x *GetABCIBlockEventsResponse) Reset() { + *x = GetABCIBlockEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsResponse) ProtoMessage() {} + +func (x *GetABCIBlockEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[13] + 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 GetABCIBlockEventsResponse.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{13} +} + +func (x *GetABCIBlockEventsResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetRawBlock() *RawBlock { + if x != nil { + return x.RawBlock + } + return nil +} + +type RawBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int64 `protobuf:"zigzag64,1,opt,name=height,proto3" json:"height,omitempty"` + BlockTime string `protobuf:"bytes,5,opt,name=block_time,json=blockTime,proto3" json:"block_time,omitempty"` + // Block timestamp in UNIX millis. + BlockTimestamp int64 `protobuf:"zigzag64,6,opt,name=block_timestamp,json=blockTimestamp,proto3" json:"block_timestamp,omitempty"` + TxsResults []*ABCIResponseDeliverTx `protobuf:"bytes,2,rep,name=txs_results,json=txsResults,proto3" json:"txs_results,omitempty"` + BeginBlockEvents []*ABCIEvent `protobuf:"bytes,3,rep,name=begin_block_events,json=beginBlockEvents,proto3" json:"begin_block_events,omitempty"` + EndBlockEvents []*ABCIEvent `protobuf:"bytes,4,rep,name=end_block_events,json=endBlockEvents,proto3" json:"end_block_events,omitempty"` +} + +func (x *RawBlock) Reset() { + *x = RawBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RawBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RawBlock) ProtoMessage() {} + +func (x *RawBlock) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[14] + 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 RawBlock.ProtoReflect.Descriptor instead. +func (*RawBlock) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{14} +} + +func (x *RawBlock) GetHeight() int64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *RawBlock) GetBlockTime() string { + if x != nil { + return x.BlockTime + } + return "" +} + +func (x *RawBlock) GetBlockTimestamp() int64 { + if x != nil { + return x.BlockTimestamp + } + return 0 +} + +func (x *RawBlock) GetTxsResults() []*ABCIResponseDeliverTx { + if x != nil { + return x.TxsResults + } + return nil +} + +func (x *RawBlock) GetBeginBlockEvents() []*ABCIEvent { + if x != nil { + return x.BeginBlockEvents + } + return nil +} + +func (x *RawBlock) GetEndBlockEvents() []*ABCIEvent { + if x != nil { + return x.EndBlockEvents + } + return nil +} + +type ABCIResponseDeliverTx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"zigzag32,1,opt,name=code,proto3" json:"code,omitempty"` + Log string `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"zigzag64,4,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"zigzag64,5,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Events []*ABCIEvent `protobuf:"bytes,6,rep,name=events,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,7,opt,name=codespace,proto3" json:"codespace,omitempty"` + TxHash []byte `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +} + +func (x *ABCIResponseDeliverTx) Reset() { + *x = ABCIResponseDeliverTx{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIResponseDeliverTx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIResponseDeliverTx) ProtoMessage() {} + +func (x *ABCIResponseDeliverTx) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[15] + 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 ABCIResponseDeliverTx.ProtoReflect.Descriptor instead. +func (*ABCIResponseDeliverTx) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{15} +} + +func (x *ABCIResponseDeliverTx) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetLog() string { + if x != nil { + return x.Log + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetInfo() string { + if x != nil { + return x.Info + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetGasWanted() int64 { + if x != nil { + return x.GasWanted + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetGasUsed() int64 { + if x != nil { + return x.GasUsed + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetEvents() []*ABCIEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *ABCIResponseDeliverTx) GetCodespace() string { + if x != nil { + return x.Codespace + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetTxHash() []byte { + if x != nil { + return x.TxHash + } + return nil +} + +type ABCIEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Attributes []*ABCIAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (x *ABCIEvent) Reset() { + *x = ABCIEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIEvent) ProtoMessage() {} + +func (x *ABCIEvent) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[16] + 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 ABCIEvent.ProtoReflect.Descriptor instead. +func (*ABCIEvent) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{16} +} + +func (x *ABCIEvent) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ABCIEvent) GetAttributes() []*ABCIAttribute { + if x != nil { + return x.Attributes + } + return nil +} + +type ABCIAttribute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *ABCIAttribute) Reset() { + *x = ABCIAttribute{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIAttribute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIAttribute) ProtoMessage() {} + +func (x *ABCIAttribute) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[17] + 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 ABCIAttribute.ProtoReflect.Descriptor instead. +func (*ABCIAttribute) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{17} +} + +func (x *ABCIAttribute) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *ABCIAttribute) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type GetABCIBlockEventsAtHeightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int32 `protobuf:"zigzag32,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *GetABCIBlockEventsAtHeightRequest) Reset() { + *x = GetABCIBlockEventsAtHeightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsAtHeightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsAtHeightRequest) ProtoMessage() {} + +func (x *GetABCIBlockEventsAtHeightRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[18] + 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 GetABCIBlockEventsAtHeightRequest.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsAtHeightRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{18} +} + +func (x *GetABCIBlockEventsAtHeightRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +type GetABCIBlockEventsAtHeightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + RawBlock *RawBlock `protobuf:"bytes,4,opt,name=raw_block,json=rawBlock,proto3" json:"raw_block,omitempty"` +} + +func (x *GetABCIBlockEventsAtHeightResponse) Reset() { + *x = GetABCIBlockEventsAtHeightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsAtHeightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsAtHeightResponse) ProtoMessage() {} + +func (x *GetABCIBlockEventsAtHeightResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[19] + 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 GetABCIBlockEventsAtHeightResponse.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsAtHeightResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{19} +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetRawBlock() *RawBlock { + if x != nil { + return x.RawBlock + } + return nil +} + +var File_goadesign_goagen_event_provider_api_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, + 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x11, 0x4c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4c, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, + 0x63, 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, + 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, + 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, + 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, + 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0b, + 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, + 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf9, + 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, 0x42, + 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x37, + 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x42, + 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, + 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x32, 0xdc, 0x05, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_event_provider_api_proto_rawDescOnce sync.Once + file_goadesign_goagen_event_provider_api_proto_rawDescData = file_goadesign_goagen_event_provider_api_proto_rawDesc +) + +func file_goadesign_goagen_event_provider_api_proto_rawDescGZIP() []byte { + file_goadesign_goagen_event_provider_api_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_event_provider_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_event_provider_api_proto_rawDescData) + }) + return file_goadesign_goagen_event_provider_api_proto_rawDescData +} + +var file_goadesign_goagen_event_provider_api_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_goadesign_goagen_event_provider_api_proto_goTypes = []interface{}{ + (*GetLatestHeightRequest)(nil), // 0: event_provider_api.GetLatestHeightRequest + (*GetLatestHeightResponse)(nil), // 1: event_provider_api.GetLatestHeightResponse + (*LatestBlockHeight)(nil), // 2: event_provider_api.LatestBlockHeight + (*StreamBlockEventsRequest)(nil), // 3: event_provider_api.StreamBlockEventsRequest + (*StreamBlockEventsResponse)(nil), // 4: event_provider_api.StreamBlockEventsResponse + (*Block)(nil), // 5: event_provider_api.Block + (*BlockEvent)(nil), // 6: event_provider_api.BlockEvent + (*GetBlockEventsRPCRequest)(nil), // 7: event_provider_api.GetBlockEventsRPCRequest + (*GetBlockEventsRPCResponse)(nil), // 8: event_provider_api.GetBlockEventsRPCResponse + (*BlockEventsRPC)(nil), // 9: event_provider_api.BlockEventsRPC + (*GetCustomEventsRPCRequest)(nil), // 10: event_provider_api.GetCustomEventsRPCRequest + (*GetCustomEventsRPCResponse)(nil), // 11: event_provider_api.GetCustomEventsRPCResponse + (*GetABCIBlockEventsRequest)(nil), // 12: event_provider_api.GetABCIBlockEventsRequest + (*GetABCIBlockEventsResponse)(nil), // 13: event_provider_api.GetABCIBlockEventsResponse + (*RawBlock)(nil), // 14: event_provider_api.RawBlock + (*ABCIResponseDeliverTx)(nil), // 15: event_provider_api.ABCIResponseDeliverTx + (*ABCIEvent)(nil), // 16: event_provider_api.ABCIEvent + (*ABCIAttribute)(nil), // 17: event_provider_api.ABCIAttribute + (*GetABCIBlockEventsAtHeightRequest)(nil), // 18: event_provider_api.GetABCIBlockEventsAtHeightRequest + (*GetABCIBlockEventsAtHeightResponse)(nil), // 19: event_provider_api.GetABCIBlockEventsAtHeightResponse + nil, // 20: event_provider_api.BlockEventsRPC.TxHashesEntry +} +var file_goadesign_goagen_event_provider_api_proto_depIdxs = []int32{ + 2, // 0: event_provider_api.GetLatestHeightResponse.data:type_name -> event_provider_api.LatestBlockHeight + 5, // 1: event_provider_api.StreamBlockEventsResponse.blocks:type_name -> event_provider_api.Block + 6, // 2: event_provider_api.Block.events:type_name -> event_provider_api.BlockEvent + 9, // 3: event_provider_api.GetBlockEventsRPCResponse.data:type_name -> event_provider_api.BlockEventsRPC + 20, // 4: event_provider_api.BlockEventsRPC.tx_hashes:type_name -> event_provider_api.BlockEventsRPC.TxHashesEntry + 9, // 5: event_provider_api.GetCustomEventsRPCResponse.data:type_name -> event_provider_api.BlockEventsRPC + 14, // 6: event_provider_api.GetABCIBlockEventsResponse.raw_block:type_name -> event_provider_api.RawBlock + 15, // 7: event_provider_api.RawBlock.txs_results:type_name -> event_provider_api.ABCIResponseDeliverTx + 16, // 8: event_provider_api.RawBlock.begin_block_events:type_name -> event_provider_api.ABCIEvent + 16, // 9: event_provider_api.RawBlock.end_block_events:type_name -> event_provider_api.ABCIEvent + 16, // 10: event_provider_api.ABCIResponseDeliverTx.events:type_name -> event_provider_api.ABCIEvent + 17, // 11: event_provider_api.ABCIEvent.attributes:type_name -> event_provider_api.ABCIAttribute + 14, // 12: event_provider_api.GetABCIBlockEventsAtHeightResponse.raw_block:type_name -> event_provider_api.RawBlock + 0, // 13: event_provider_api.EventProviderAPI.GetLatestHeight:input_type -> event_provider_api.GetLatestHeightRequest + 3, // 14: event_provider_api.EventProviderAPI.StreamBlockEvents:input_type -> event_provider_api.StreamBlockEventsRequest + 7, // 15: event_provider_api.EventProviderAPI.GetBlockEventsRPC:input_type -> event_provider_api.GetBlockEventsRPCRequest + 10, // 16: event_provider_api.EventProviderAPI.GetCustomEventsRPC:input_type -> event_provider_api.GetCustomEventsRPCRequest + 12, // 17: event_provider_api.EventProviderAPI.GetABCIBlockEvents:input_type -> event_provider_api.GetABCIBlockEventsRequest + 18, // 18: event_provider_api.EventProviderAPI.GetABCIBlockEventsAtHeight:input_type -> event_provider_api.GetABCIBlockEventsAtHeightRequest + 1, // 19: event_provider_api.EventProviderAPI.GetLatestHeight:output_type -> event_provider_api.GetLatestHeightResponse + 4, // 20: event_provider_api.EventProviderAPI.StreamBlockEvents:output_type -> event_provider_api.StreamBlockEventsResponse + 8, // 21: event_provider_api.EventProviderAPI.GetBlockEventsRPC:output_type -> event_provider_api.GetBlockEventsRPCResponse + 11, // 22: event_provider_api.EventProviderAPI.GetCustomEventsRPC:output_type -> event_provider_api.GetCustomEventsRPCResponse + 13, // 23: event_provider_api.EventProviderAPI.GetABCIBlockEvents:output_type -> event_provider_api.GetABCIBlockEventsResponse + 19, // 24: event_provider_api.EventProviderAPI.GetABCIBlockEventsAtHeight:output_type -> event_provider_api.GetABCIBlockEventsAtHeightResponse + 19, // [19:25] is the sub-list for method output_type + 13, // [13:19] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_event_provider_api_proto_init() } +func file_goadesign_goagen_event_provider_api_proto_init() { + if File_goadesign_goagen_event_provider_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_event_provider_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLatestHeightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLatestHeightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatestBlockHeight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlockEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlockEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Block); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockEventsRPCRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockEventsRPCResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockEventsRPC); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCustomEventsRPCRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCustomEventsRPCResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RawBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIResponseDeliverTx); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIAttribute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsAtHeightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsAtHeightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_event_provider_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 21, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_event_provider_api_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_event_provider_api_proto_depIdxs, + MessageInfos: file_goadesign_goagen_event_provider_api_proto_msgTypes, + }.Build() + File_goadesign_goagen_event_provider_api_proto = out.File + file_goadesign_goagen_event_provider_api_proto_rawDesc = nil + file_goadesign_goagen_event_provider_api_proto_goTypes = nil + file_goadesign_goagen_event_provider_api_proto_depIdxs = nil +} diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go new file mode 100644 index 00000000..d83f56c5 --- /dev/null +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go @@ -0,0 +1,325 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.21.12 +// source: goadesign_goagen_event_provider_api.proto + +package event_provider_apipb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// EventProviderAPIClient is the client API for EventProviderAPI service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EventProviderAPIClient interface { + // Get latest block from event provider + GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) + // Stream processed block events for selected backend + StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) + // Get processed block events for selected backend + GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) + // Get custom processed block events for selected backend + GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) + // Get raw block events for selected height + GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) + // Get all raw block events for selected height + GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) +} + +type eventProviderAPIClient struct { + cc grpc.ClientConnInterface +} + +func NewEventProviderAPIClient(cc grpc.ClientConnInterface) EventProviderAPIClient { + return &eventProviderAPIClient{cc} +} + +func (c *eventProviderAPIClient) GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) { + out := new(GetLatestHeightResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetLatestHeight", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &EventProviderAPI_ServiceDesc.Streams[0], "/event_provider_api.EventProviderAPI/StreamBlockEvents", opts...) + if err != nil { + return nil, err + } + x := &eventProviderAPIStreamBlockEventsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type EventProviderAPI_StreamBlockEventsClient interface { + Recv() (*StreamBlockEventsResponse, error) + grpc.ClientStream +} + +type eventProviderAPIStreamBlockEventsClient struct { + grpc.ClientStream +} + +func (x *eventProviderAPIStreamBlockEventsClient) Recv() (*StreamBlockEventsResponse, error) { + m := new(StreamBlockEventsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *eventProviderAPIClient) GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) { + out := new(GetBlockEventsRPCResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) { + out := new(GetCustomEventsRPCResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) { + out := new(GetABCIBlockEventsResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) { + out := new(GetABCIBlockEventsAtHeightResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EventProviderAPIServer is the server API for EventProviderAPI service. +// All implementations must embed UnimplementedEventProviderAPIServer +// for forward compatibility +type EventProviderAPIServer interface { + // Get latest block from event provider + GetLatestHeight(context.Context, *GetLatestHeightRequest) (*GetLatestHeightResponse, error) + // Stream processed block events for selected backend + StreamBlockEvents(*StreamBlockEventsRequest, EventProviderAPI_StreamBlockEventsServer) error + // Get processed block events for selected backend + GetBlockEventsRPC(context.Context, *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) + // Get custom processed block events for selected backend + GetCustomEventsRPC(context.Context, *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) + // Get raw block events for selected height + GetABCIBlockEvents(context.Context, *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) + // Get all raw block events for selected height + GetABCIBlockEventsAtHeight(context.Context, *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) + mustEmbedUnimplementedEventProviderAPIServer() +} + +// UnimplementedEventProviderAPIServer must be embedded to have forward compatible implementations. +type UnimplementedEventProviderAPIServer struct { +} + +func (UnimplementedEventProviderAPIServer) GetLatestHeight(context.Context, *GetLatestHeightRequest) (*GetLatestHeightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLatestHeight not implemented") +} +func (UnimplementedEventProviderAPIServer) StreamBlockEvents(*StreamBlockEventsRequest, EventProviderAPI_StreamBlockEventsServer) error { + return status.Errorf(codes.Unimplemented, "method StreamBlockEvents not implemented") +} +func (UnimplementedEventProviderAPIServer) GetBlockEventsRPC(context.Context, *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockEventsRPC not implemented") +} +func (UnimplementedEventProviderAPIServer) GetCustomEventsRPC(context.Context, *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCustomEventsRPC not implemented") +} +func (UnimplementedEventProviderAPIServer) GetABCIBlockEvents(context.Context, *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetABCIBlockEvents not implemented") +} +func (UnimplementedEventProviderAPIServer) GetABCIBlockEventsAtHeight(context.Context, *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetABCIBlockEventsAtHeight not implemented") +} +func (UnimplementedEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() {} + +// UnsafeEventProviderAPIServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EventProviderAPIServer will +// result in compilation errors. +type UnsafeEventProviderAPIServer interface { + mustEmbedUnimplementedEventProviderAPIServer() +} + +func RegisterEventProviderAPIServer(s grpc.ServiceRegistrar, srv EventProviderAPIServer) { + s.RegisterService(&EventProviderAPI_ServiceDesc, srv) +} + +func _EventProviderAPI_GetLatestHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLatestHeightRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetLatestHeight(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetLatestHeight", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetLatestHeight(ctx, req.(*GetLatestHeightRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_StreamBlockEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamBlockEventsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(EventProviderAPIServer).StreamBlockEvents(m, &eventProviderAPIStreamBlockEventsServer{stream}) +} + +type EventProviderAPI_StreamBlockEventsServer interface { + Send(*StreamBlockEventsResponse) error + grpc.ServerStream +} + +type eventProviderAPIStreamBlockEventsServer struct { + grpc.ServerStream +} + +func (x *eventProviderAPIStreamBlockEventsServer) Send(m *StreamBlockEventsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _EventProviderAPI_GetBlockEventsRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockEventsRPCRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetBlockEventsRPC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetBlockEventsRPC(ctx, req.(*GetBlockEventsRPCRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetCustomEventsRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomEventsRPCRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetCustomEventsRPC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetCustomEventsRPC(ctx, req.(*GetCustomEventsRPCRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetABCIBlockEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetABCIBlockEventsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetABCIBlockEvents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetABCIBlockEvents(ctx, req.(*GetABCIBlockEventsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetABCIBlockEventsAtHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetABCIBlockEventsAtHeightRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetABCIBlockEventsAtHeight(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetABCIBlockEventsAtHeight(ctx, req.(*GetABCIBlockEventsAtHeightRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EventProviderAPI_ServiceDesc is the grpc.ServiceDesc for EventProviderAPI service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EventProviderAPI_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "event_provider_api.EventProviderAPI", + HandlerType: (*EventProviderAPIServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetLatestHeight", + Handler: _EventProviderAPI_GetLatestHeight_Handler, + }, + { + MethodName: "GetBlockEventsRPC", + Handler: _EventProviderAPI_GetBlockEventsRPC_Handler, + }, + { + MethodName: "GetCustomEventsRPC", + Handler: _EventProviderAPI_GetCustomEventsRPC_Handler, + }, + { + MethodName: "GetABCIBlockEvents", + Handler: _EventProviderAPI_GetABCIBlockEvents_Handler, + }, + { + MethodName: "GetABCIBlockEventsAtHeight", + Handler: _EventProviderAPI_GetABCIBlockEventsAtHeight_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamBlockEvents", + Handler: _EventProviderAPI_StreamBlockEvents_Handler, + ServerStreams: true, + }, + }, + Metadata: "goadesign_goagen_event_provider_api.proto", +} diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go index 9011281f..9b02dbe9 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -206,7 +206,7 @@ type PrepareTxRequest struct { Fee *CosmosTxFee `protobuf:"bytes,6,opt,name=fee,proto3" json:"fee,omitempty"` // List of Cosmos proto3-encoded Msgs to include in a single tx Msgs [][]byte `protobuf:"bytes,7,rep,name=msgs,proto3" json:"msgs,omitempty"` - // The wrapper of the EIP712 message, V1 or V2 + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' Eip712Wrapper string `protobuf:"bytes,8,opt,name=eip712_wrapper,json=eip712Wrapper,proto3" json:"eip712_wrapper,omitempty"` } @@ -515,6 +515,174 @@ func (x *PrepareTxResponse) GetFeePayerSig() string { return "" } +type PrepareEip712Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specify chainID for the target tx + ChainId uint64 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // Specify Ethereum address of a signer + SignerAddress string `protobuf:"bytes,2,opt,name=signer_address,json=signerAddress,proto3" json:"signer_address,omitempty"` + // Sequence number of the transaction signer + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + // Account number of the transaction signer + AccountNumber uint64 `protobuf:"varint,4,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + // Textual memo information to attach with tx + Memo string `protobuf:"bytes,5,opt,name=memo,proto3" json:"memo,omitempty"` + // Block height until which the transaction is valid. + TimeoutHeight uint64 `protobuf:"varint,6,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + // Transaction fee details. + Fee *CosmosTxFee `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` + // List of Cosmos proto3-encoded Msgs to include in a single tx + Msgs [][]byte `protobuf:"bytes,8,rep,name=msgs,proto3" json:"msgs,omitempty"` + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' + Eip712Wrapper string `protobuf:"bytes,9,opt,name=eip712_wrapper,json=eip712Wrapper,proto3" json:"eip712_wrapper,omitempty"` +} + +func (x *PrepareEip712Request) Reset() { + *x = PrepareEip712Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrepareEip712Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrepareEip712Request) ProtoMessage() {} + +func (x *PrepareEip712Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + 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 PrepareEip712Request.ProtoReflect.Descriptor instead. +func (*PrepareEip712Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *PrepareEip712Request) GetChainId() uint64 { + if x != nil { + return x.ChainId + } + return 0 +} + +func (x *PrepareEip712Request) GetSignerAddress() string { + if x != nil { + return x.SignerAddress + } + return "" +} + +func (x *PrepareEip712Request) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + +func (x *PrepareEip712Request) GetAccountNumber() uint64 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *PrepareEip712Request) GetMemo() string { + if x != nil { + return x.Memo + } + return "" +} + +func (x *PrepareEip712Request) GetTimeoutHeight() uint64 { + if x != nil { + return x.TimeoutHeight + } + return 0 +} + +func (x *PrepareEip712Request) GetFee() *CosmosTxFee { + if x != nil { + return x.Fee + } + return nil +} + +func (x *PrepareEip712Request) GetMsgs() [][]byte { + if x != nil { + return x.Msgs + } + return nil +} + +func (x *PrepareEip712Request) GetEip712Wrapper() string { + if x != nil { + return x.Eip712Wrapper + } + return "" +} + +type PrepareEip712Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // EIP712-compatible message suitable for signing with eth_signTypedData_v4 + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PrepareEip712Response) Reset() { + *x = PrepareEip712Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrepareEip712Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrepareEip712Response) ProtoMessage() {} + +func (x *PrepareEip712Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + 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 PrepareEip712Response.ProtoReflect.Descriptor instead. +func (*PrepareEip712Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *PrepareEip712Response) GetData() string { + if x != nil { + return x.Data + } + return "" +} + type BroadcastTxRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -541,7 +709,7 @@ type BroadcastTxRequest struct { func (x *BroadcastTxRequest) Reset() { *x = BroadcastTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -554,7 +722,7 @@ func (x *BroadcastTxRequest) String() string { func (*BroadcastTxRequest) ProtoMessage() {} func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -567,7 +735,7 @@ func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} } func (x *BroadcastTxRequest) GetChainId() uint64 { @@ -640,7 +808,7 @@ type CosmosPubKey struct { func (x *CosmosPubKey) Reset() { *x = CosmosPubKey{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -653,7 +821,7 @@ func (x *CosmosPubKey) String() string { func (*CosmosPubKey) ProtoMessage() {} func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -666,7 +834,7 @@ func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosPubKey.ProtoReflect.Descriptor instead. func (*CosmosPubKey) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} } func (x *CosmosPubKey) GetType() string { @@ -710,7 +878,7 @@ type BroadcastTxResponse struct { func (x *BroadcastTxResponse) Reset() { *x = BroadcastTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -723,7 +891,7 @@ func (x *BroadcastTxResponse) String() string { func (*BroadcastTxResponse) ProtoMessage() {} func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -736,7 +904,7 @@ func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} } func (x *BroadcastTxResponse) GetTxHash() string { @@ -817,7 +985,7 @@ type PrepareCosmosTxRequest struct { func (x *PrepareCosmosTxRequest) Reset() { *x = PrepareCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -830,7 +998,7 @@ func (x *PrepareCosmosTxRequest) String() string { func (*PrepareCosmosTxRequest) ProtoMessage() {} func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -843,7 +1011,7 @@ func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxRequest.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} } func (x *PrepareCosmosTxRequest) GetChainId() uint64 { @@ -910,7 +1078,7 @@ type PrepareCosmosTxResponse struct { func (x *PrepareCosmosTxResponse) Reset() { *x = PrepareCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -923,7 +1091,7 @@ func (x *PrepareCosmosTxResponse) String() string { func (*PrepareCosmosTxResponse) ProtoMessage() {} func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -936,7 +1104,7 @@ func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxResponse.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} } func (x *PrepareCosmosTxResponse) GetTx() []byte { @@ -999,7 +1167,7 @@ type BroadcastCosmosTxRequest struct { func (x *BroadcastCosmosTxRequest) Reset() { *x = BroadcastCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1012,7 +1180,7 @@ func (x *BroadcastCosmosTxRequest) String() string { func (*BroadcastCosmosTxRequest) ProtoMessage() {} func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1025,7 +1193,7 @@ func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} } func (x *BroadcastCosmosTxRequest) GetTx() []byte { @@ -1083,7 +1251,7 @@ type BroadcastCosmosTxResponse struct { func (x *BroadcastCosmosTxResponse) Reset() { *x = BroadcastCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1096,7 +1264,7 @@ func (x *BroadcastCosmosTxResponse) String() string { func (*BroadcastCosmosTxResponse) ProtoMessage() {} func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1109,7 +1277,7 @@ func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} } func (x *BroadcastCosmosTxResponse) GetTxHash() string { @@ -1177,7 +1345,7 @@ type GetFeePayerRequest struct { func (x *GetFeePayerRequest) Reset() { *x = GetFeePayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1190,7 +1358,7 @@ func (x *GetFeePayerRequest) String() string { func (*GetFeePayerRequest) ProtoMessage() {} func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1203,7 +1371,7 @@ func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerRequest.ProtoReflect.Descriptor instead. func (*GetFeePayerRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{15} } type GetFeePayerResponse struct { @@ -1220,7 +1388,7 @@ type GetFeePayerResponse struct { func (x *GetFeePayerResponse) Reset() { *x = GetFeePayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1233,7 +1401,7 @@ func (x *GetFeePayerResponse) String() string { func (*GetFeePayerResponse) ProtoMessage() {} func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1246,7 +1414,7 @@ func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerResponse.ProtoReflect.Descriptor instead. func (*GetFeePayerResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{16} } func (x *GetFeePayerResponse) GetFeePayer() string { @@ -1328,148 +1496,179 @@ var file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x67, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, - 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, - 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, - 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x67, 0x22, 0xc8, 0x02, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, + 0x37, 0x31, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, + 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x65, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x69, 0x70, 0x37, 0x31, 0x32, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, + 0x69, 0x70, 0x37, 0x31, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x15, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, + 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, + 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, - 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, - 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, - 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, - 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, - 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, - 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, - 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, - 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x32, 0x8c, 0x05, 0x0a, 0x14, 0x49, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, + 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, + 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, + 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, + 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, + 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, + 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, - 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x32, 0xfa, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, + 0x70, 0x37, 0x31, 0x32, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, + 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, + 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, + 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1484,7 +1683,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = []interface{}{ (*GetTxRequest)(nil), // 0: injective_exchange_rpc.GetTxRequest (*GetTxResponse)(nil), // 1: injective_exchange_rpc.GetTxResponse @@ -1492,41 +1691,46 @@ var file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = []interface{}{ (*CosmosTxFee)(nil), // 3: injective_exchange_rpc.CosmosTxFee (*CosmosCoin)(nil), // 4: injective_exchange_rpc.CosmosCoin (*PrepareTxResponse)(nil), // 5: injective_exchange_rpc.PrepareTxResponse - (*BroadcastTxRequest)(nil), // 6: injective_exchange_rpc.BroadcastTxRequest - (*CosmosPubKey)(nil), // 7: injective_exchange_rpc.CosmosPubKey - (*BroadcastTxResponse)(nil), // 8: injective_exchange_rpc.BroadcastTxResponse - (*PrepareCosmosTxRequest)(nil), // 9: injective_exchange_rpc.PrepareCosmosTxRequest - (*PrepareCosmosTxResponse)(nil), // 10: injective_exchange_rpc.PrepareCosmosTxResponse - (*BroadcastCosmosTxRequest)(nil), // 11: injective_exchange_rpc.BroadcastCosmosTxRequest - (*BroadcastCosmosTxResponse)(nil), // 12: injective_exchange_rpc.BroadcastCosmosTxResponse - (*GetFeePayerRequest)(nil), // 13: injective_exchange_rpc.GetFeePayerRequest - (*GetFeePayerResponse)(nil), // 14: injective_exchange_rpc.GetFeePayerResponse + (*PrepareEip712Request)(nil), // 6: injective_exchange_rpc.PrepareEip712Request + (*PrepareEip712Response)(nil), // 7: injective_exchange_rpc.PrepareEip712Response + (*BroadcastTxRequest)(nil), // 8: injective_exchange_rpc.BroadcastTxRequest + (*CosmosPubKey)(nil), // 9: injective_exchange_rpc.CosmosPubKey + (*BroadcastTxResponse)(nil), // 10: injective_exchange_rpc.BroadcastTxResponse + (*PrepareCosmosTxRequest)(nil), // 11: injective_exchange_rpc.PrepareCosmosTxRequest + (*PrepareCosmosTxResponse)(nil), // 12: injective_exchange_rpc.PrepareCosmosTxResponse + (*BroadcastCosmosTxRequest)(nil), // 13: injective_exchange_rpc.BroadcastCosmosTxRequest + (*BroadcastCosmosTxResponse)(nil), // 14: injective_exchange_rpc.BroadcastCosmosTxResponse + (*GetFeePayerRequest)(nil), // 15: injective_exchange_rpc.GetFeePayerRequest + (*GetFeePayerResponse)(nil), // 16: injective_exchange_rpc.GetFeePayerResponse } var file_goadesign_goagen_injective_exchange_rpc_proto_depIdxs = []int32{ 3, // 0: injective_exchange_rpc.PrepareTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee 4, // 1: injective_exchange_rpc.CosmosTxFee.price:type_name -> injective_exchange_rpc.CosmosCoin - 7, // 2: injective_exchange_rpc.BroadcastTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 3, // 3: injective_exchange_rpc.PrepareCosmosTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee - 7, // 4: injective_exchange_rpc.PrepareCosmosTxResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 7, // 5: injective_exchange_rpc.BroadcastCosmosTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 7, // 6: injective_exchange_rpc.GetFeePayerResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 0, // 7: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:input_type -> injective_exchange_rpc.GetTxRequest - 2, // 8: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:input_type -> injective_exchange_rpc.PrepareTxRequest - 6, // 9: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:input_type -> injective_exchange_rpc.BroadcastTxRequest - 9, // 10: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:input_type -> injective_exchange_rpc.PrepareCosmosTxRequest - 11, // 11: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:input_type -> injective_exchange_rpc.BroadcastCosmosTxRequest - 13, // 12: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:input_type -> injective_exchange_rpc.GetFeePayerRequest - 1, // 13: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:output_type -> injective_exchange_rpc.GetTxResponse - 5, // 14: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:output_type -> injective_exchange_rpc.PrepareTxResponse - 8, // 15: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:output_type -> injective_exchange_rpc.BroadcastTxResponse - 10, // 16: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:output_type -> injective_exchange_rpc.PrepareCosmosTxResponse - 12, // 17: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:output_type -> injective_exchange_rpc.BroadcastCosmosTxResponse - 14, // 18: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:output_type -> injective_exchange_rpc.GetFeePayerResponse - 13, // [13:19] is the sub-list for method output_type - 7, // [7:13] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 3, // 2: injective_exchange_rpc.PrepareEip712Request.fee:type_name -> injective_exchange_rpc.CosmosTxFee + 9, // 3: injective_exchange_rpc.BroadcastTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 3, // 4: injective_exchange_rpc.PrepareCosmosTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee + 9, // 5: injective_exchange_rpc.PrepareCosmosTxResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 9, // 6: injective_exchange_rpc.BroadcastCosmosTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 9, // 7: injective_exchange_rpc.GetFeePayerResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 0, // 8: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:input_type -> injective_exchange_rpc.GetTxRequest + 2, // 9: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:input_type -> injective_exchange_rpc.PrepareTxRequest + 6, // 10: injective_exchange_rpc.InjectiveExchangeRPC.PrepareEip712:input_type -> injective_exchange_rpc.PrepareEip712Request + 8, // 11: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:input_type -> injective_exchange_rpc.BroadcastTxRequest + 11, // 12: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:input_type -> injective_exchange_rpc.PrepareCosmosTxRequest + 13, // 13: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:input_type -> injective_exchange_rpc.BroadcastCosmosTxRequest + 15, // 14: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:input_type -> injective_exchange_rpc.GetFeePayerRequest + 1, // 15: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:output_type -> injective_exchange_rpc.GetTxResponse + 5, // 16: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:output_type -> injective_exchange_rpc.PrepareTxResponse + 7, // 17: injective_exchange_rpc.InjectiveExchangeRPC.PrepareEip712:output_type -> injective_exchange_rpc.PrepareEip712Response + 10, // 18: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:output_type -> injective_exchange_rpc.BroadcastTxResponse + 12, // 19: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:output_type -> injective_exchange_rpc.PrepareCosmosTxResponse + 14, // 20: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:output_type -> injective_exchange_rpc.BroadcastCosmosTxResponse + 16, // 21: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:output_type -> injective_exchange_rpc.GetFeePayerResponse + 15, // [15:22] is the sub-list for method output_type + 8, // [8:15] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_exchange_rpc_proto_init() } @@ -1608,7 +1812,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastTxRequest); i { + switch v := v.(*PrepareEip712Request); i { case 0: return &v.state case 1: @@ -1620,7 +1824,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CosmosPubKey); i { + switch v := v.(*PrepareEip712Response); i { case 0: return &v.state case 1: @@ -1632,7 +1836,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastTxResponse); i { + switch v := v.(*BroadcastTxRequest); i { case 0: return &v.state case 1: @@ -1644,7 +1848,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareCosmosTxRequest); i { + switch v := v.(*CosmosPubKey); i { case 0: return &v.state case 1: @@ -1656,7 +1860,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareCosmosTxResponse); i { + switch v := v.(*BroadcastTxResponse); i { case 0: return &v.state case 1: @@ -1668,7 +1872,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastCosmosTxRequest); i { + switch v := v.(*PrepareCosmosTxRequest); i { case 0: return &v.state case 1: @@ -1680,7 +1884,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastCosmosTxResponse); i { + switch v := v.(*PrepareCosmosTxResponse); i { case 0: return &v.state case 1: @@ -1692,7 +1896,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFeePayerRequest); i { + switch v := v.(*BroadcastCosmosTxRequest); i { case 0: return &v.state case 1: @@ -1704,6 +1908,30 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BroadcastCosmosTxResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeePayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFeePayerResponse); i { case 0: return &v.state @@ -1722,7 +1950,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go index c7e2827d..721f4ef7 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -26,6 +26,8 @@ type InjectiveExchangeRPCClient interface { GetTx(ctx context.Context, in *GetTxRequest, opts ...grpc.CallOption) (*GetTxResponse, error) // PrepareTx generates a Web3-signable body for a Cosmos transaction PrepareTx(ctx context.Context, in *PrepareTxRequest, opts ...grpc.CallOption) (*PrepareTxResponse, error) + // prepareEip712 generates EIP712 for an Injective Message + PrepareEip712(ctx context.Context, in *PrepareEip712Request, opts ...grpc.CallOption) (*PrepareEip712Response, error) // BroadcastTx broadcasts a signed Web3 transaction BroadcastTx(ctx context.Context, in *BroadcastTxRequest, opts ...grpc.CallOption) (*BroadcastTxResponse, error) // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -62,6 +64,15 @@ func (c *injectiveExchangeRPCClient) PrepareTx(ctx context.Context, in *PrepareT return out, nil } +func (c *injectiveExchangeRPCClient) PrepareEip712(ctx context.Context, in *PrepareEip712Request, opts ...grpc.CallOption) (*PrepareEip712Response, error) { + out := new(PrepareEip712Response) + err := c.cc.Invoke(ctx, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveExchangeRPCClient) BroadcastTx(ctx context.Context, in *BroadcastTxRequest, opts ...grpc.CallOption) (*BroadcastTxResponse, error) { out := new(BroadcastTxResponse) err := c.cc.Invoke(ctx, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", in, out, opts...) @@ -106,6 +117,8 @@ type InjectiveExchangeRPCServer interface { GetTx(context.Context, *GetTxRequest) (*GetTxResponse, error) // PrepareTx generates a Web3-signable body for a Cosmos transaction PrepareTx(context.Context, *PrepareTxRequest) (*PrepareTxResponse, error) + // prepareEip712 generates EIP712 for an Injective Message + PrepareEip712(context.Context, *PrepareEip712Request) (*PrepareEip712Response, error) // BroadcastTx broadcasts a signed Web3 transaction BroadcastTx(context.Context, *BroadcastTxRequest) (*BroadcastTxResponse, error) // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -127,6 +140,9 @@ func (UnimplementedInjectiveExchangeRPCServer) GetTx(context.Context, *GetTxRequ func (UnimplementedInjectiveExchangeRPCServer) PrepareTx(context.Context, *PrepareTxRequest) (*PrepareTxResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PrepareTx not implemented") } +func (UnimplementedInjectiveExchangeRPCServer) PrepareEip712(context.Context, *PrepareEip712Request) (*PrepareEip712Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method PrepareEip712 not implemented") +} func (UnimplementedInjectiveExchangeRPCServer) BroadcastTx(context.Context, *BroadcastTxRequest) (*BroadcastTxResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BroadcastTx not implemented") } @@ -188,6 +204,24 @@ func _InjectiveExchangeRPC_PrepareTx_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _InjectiveExchangeRPC_PrepareEip712_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PrepareEip712Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExchangeRPCServer).PrepareEip712(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExchangeRPCServer).PrepareEip712(ctx, req.(*PrepareEip712Request)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveExchangeRPC_BroadcastTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BroadcastTxRequest) if err := dec(in); err != nil { @@ -275,6 +309,10 @@ var InjectiveExchangeRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "PrepareTx", Handler: _InjectiveExchangeRPC_PrepareTx_Handler, }, + { + MethodName: "PrepareEip712", + Handler: _InjectiveExchangeRPC_PrepareEip712_Handler, + }, { MethodName: "BroadcastTx", Handler: _InjectiveExchangeRPC_BroadcastTx_Handler, diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go index d5d28a2a..11748a98 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go @@ -99,6 +99,40 @@ func local_request_InjectiveExchangeRPC_PrepareTx_0(ctx context.Context, marshal } +func request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PrepareEip712Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PrepareEip712(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PrepareEip712Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PrepareEip712(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectiveExchangeRPC_BroadcastTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq BroadcastTxRequest var metadata runtime.ServerMetadata @@ -291,6 +325,31 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -476,6 +535,28 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -572,6 +653,8 @@ var ( pattern_InjectiveExchangeRPC_PrepareTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareTx"}, "")) + pattern_InjectiveExchangeRPC_PrepareEip712_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareEip712"}, "")) + pattern_InjectiveExchangeRPC_BroadcastTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "BroadcastTx"}, "")) pattern_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareCosmosTx"}, "")) @@ -586,6 +669,8 @@ var ( forward_InjectiveExchangeRPC_PrepareTx_0 = runtime.ForwardResponseMessage + forward_InjectiveExchangeRPC_PrepareEip712_0 = runtime.ForwardResponseMessage + forward_InjectiveExchangeRPC_BroadcastTx_0 = runtime.ForwardResponseMessage forward_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.ForwardResponseMessage diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto index 54536b59..5c6a877d 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto @@ -17,6 +17,8 @@ service InjectiveExchangeRPC { rpc GetTx (GetTxRequest) returns (GetTxResponse); // PrepareTx generates a Web3-signable body for a Cosmos transaction rpc PrepareTx (PrepareTxRequest) returns (PrepareTxResponse); + // prepareEip712 generates EIP712 for an Injective Message + rpc PrepareEip712 (PrepareEip712Request) returns (PrepareEip712Response); // BroadcastTx broadcasts a signed Web3 transaction rpc BroadcastTx (BroadcastTxRequest) returns (BroadcastTxResponse); // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -67,7 +69,7 @@ message PrepareTxRequest { CosmosTxFee fee = 6; // List of Cosmos proto3-encoded Msgs to include in a single tx repeated bytes msgs = 7; - // The wrapper of the EIP712 message, V1 or V2 + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' string eip712_wrapper = 8; } @@ -103,6 +105,32 @@ message PrepareTxResponse { string fee_payer_sig = 6; } +message PrepareEip712Request { + // Specify chainID for the target tx + uint64 chain_id = 1; + // Specify Ethereum address of a signer + string signer_address = 2; + // Sequence number of the transaction signer + uint64 sequence = 3; + // Account number of the transaction signer + uint64 account_number = 4; + // Textual memo information to attach with tx + string memo = 5; + // Block height until which the transaction is valid. + uint64 timeout_height = 6; + // Transaction fee details. + CosmosTxFee fee = 7; + // List of Cosmos proto3-encoded Msgs to include in a single tx + repeated bytes msgs = 8; + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' + string eip712_wrapper = 9; +} + +message PrepareEip712Response { + // EIP712-compatible message suitable for signing with eth_signTypedData_v4 + string data = 1; +} + message BroadcastTxRequest { // Specify Web3 chainID (from prepateTx) for the target Tx uint64 chain_id = 1; diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index d59b7740..c63dc9a5 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -1679,7 +1679,8 @@ type TxData struct { // transaction event logs Logs []byte `protobuf:"bytes,11,opt,name=logs,proto3" json:"logs,omitempty"` // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - ClaimIds []int64 `protobuf:"zigzag64,12,rep,packed,name=claim_ids,json=claimIds,proto3" json:"claim_ids,omitempty"` + ClaimIds []int64 `protobuf:"zigzag64,12,rep,packed,name=claim_ids,json=claimIds,proto3" json:"claim_ids,omitempty"` + Signatures []*Signature `protobuf:"bytes,13,rep,name=signatures,proto3" json:"signatures,omitempty"` } func (x *TxData) Reset() { @@ -1798,6 +1799,13 @@ func (x *TxData) GetClaimIds() []int64 { return nil } +func (x *TxData) GetSignatures() []*Signature { + if x != nil { + return x.Signatures + } + return nil +} + type GetValidatorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6253,6 +6261,164 @@ func (x *StreamBlocksResponse) GetTimestamp() string { return "" } +type GetStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetStatsRequest) Reset() { + *x = GetStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsRequest) ProtoMessage() {} + +func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + 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 GetStatsRequest.ProtoReflect.Descriptor instead. +func (*GetStatsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} +} + +type GetStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total of unique addresses + Addresses uint64 `protobuf:"varint,1,opt,name=addresses,proto3" json:"addresses,omitempty"` + // Total number of assets + Assets uint64 `protobuf:"varint,2,opt,name=assets,proto3" json:"assets,omitempty"` + // Total circulating supply of INJ + InjSupply uint64 `protobuf:"varint,3,opt,name=inj_supply,json=injSupply,proto3" json:"inj_supply,omitempty"` + // Avg of TX per second in the past 24hs + TxsPs24H uint64 `protobuf:"varint,4,opt,name=txs_ps24_h,json=txsPs24H,proto3" json:"txs_ps24_h,omitempty"` + // Avg of TX per second in the 100 blocks + TxsPs100B uint64 `protobuf:"varint,5,opt,name=txs_ps100_b,json=txsPs100B,proto3" json:"txs_ps100_b,omitempty"` + // Total number of TXs + TxsTotal uint64 `protobuf:"varint,6,opt,name=txs_total,json=txsTotal,proto3" json:"txs_total,omitempty"` + // Total number of TXs in the past 24hs + Txs24H uint64 `protobuf:"varint,7,opt,name=txs24_h,json=txs24H,proto3" json:"txs24_h,omitempty"` + // Total number of TXs in the past 30 days + Txs30D uint64 `protobuf:"varint,8,opt,name=txs30_d,json=txs30D,proto3" json:"txs30_d,omitempty"` + // Number of blocks produced in the past 24hs + BlockCount24H uint64 `protobuf:"varint,9,opt,name=block_count24_h,json=blockCount24H,proto3" json:"block_count24_h,omitempty"` +} + +func (x *GetStatsResponse) Reset() { + *x = GetStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsResponse) ProtoMessage() {} + +func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + 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 GetStatsResponse.ProtoReflect.Descriptor instead. +func (*GetStatsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} +} + +func (x *GetStatsResponse) GetAddresses() uint64 { + if x != nil { + return x.Addresses + } + return 0 +} + +func (x *GetStatsResponse) GetAssets() uint64 { + if x != nil { + return x.Assets + } + return 0 +} + +func (x *GetStatsResponse) GetInjSupply() uint64 { + if x != nil { + return x.InjSupply + } + return 0 +} + +func (x *GetStatsResponse) GetTxsPs24H() uint64 { + if x != nil { + return x.TxsPs24H + } + return 0 +} + +func (x *GetStatsResponse) GetTxsPs100B() uint64 { + if x != nil { + return x.TxsPs100B + } + return 0 +} + +func (x *GetStatsResponse) GetTxsTotal() uint64 { + if x != nil { + return x.TxsTotal + } + return 0 +} + +func (x *GetStatsResponse) GetTxs24H() uint64 { + if x != nil { + return x.Txs24H + } + return 0 +} + +func (x *GetStatsResponse) GetTxs30D() uint64 { + if x != nil { + return x.Txs30D + } + return 0 +} + +func (x *GetStatsResponse) GetBlockCount24H() uint64 { + if x != nil { + return x.BlockCount24H + } + return 0 +} + var File_goadesign_goagen_injective_explorer_rpc_proto protoreflect.FileDescriptor var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ @@ -6491,7 +6657,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd3, 0x02, 0x0a, 0x06, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x96, 0x03, 0x0a, 0x06, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, @@ -6512,817 +6678,846 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x74, 0x78, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, 0x09, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, - 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, - 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, - 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, - 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, - 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x4c, 0x0a, 0x0f, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x16, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, + 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, + 0x69, 0x6b, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, + 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x52, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x55, 0x72, 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, + 0x4c, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, + 0x0a, 0x0d, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x73, - 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x2f, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 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, 0x22, 0x73, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 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, 0x22, 0x7f, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x3b, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, + 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x22, 0x2f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 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, 0x22, 0x73, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, + 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 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, 0x22, 0x7f, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, + 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x02, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 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, 0x77, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 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, 0x77, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, + 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, + 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, + 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, - 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, - 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, - 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, - 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, - 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, - 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, - 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, - 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, - 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, + 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, + 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, - 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, - 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, - 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, + 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, + 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, + 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, + 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, + 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, - 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, - 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, - 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, - 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, + 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, + 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, + 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, - 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, + 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, + 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, + 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, + 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, - 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, - 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, - 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, - 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, - 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x75, 0x6d, - 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, - 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x6e, 0x75, 0x6d, - 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc6, 0x13, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, - 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, - 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, - 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, - 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, + 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, + 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, + 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, + 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, + 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, + 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, + 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, + 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, + 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x6a, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x6a, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, + 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x50, + 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, 0x31, 0x30, + 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x78, 0x73, 0x50, 0x73, + 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, + 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, 0x32, 0xa5, 0x14, 0x0a, 0x14, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, - 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, + 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, + 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, + 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, + 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, + 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, + 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x34, 0x2e, 0x69, 0x6e, 0x6a, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, - 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x42, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x12, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, - 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x77, - 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, - 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, - 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, + 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, + 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7337,7 +7532,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 75) +var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 77) var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetAccountTxsRequest)(nil), // 0: injective_explorer_rpc.GetAccountTxsRequest (*GetAccountTxsResponse)(nil), // 1: injective_explorer_rpc.GetAccountTxsResponse @@ -7413,7 +7608,9 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*StreamTxsResponse)(nil), // 71: injective_explorer_rpc.StreamTxsResponse (*StreamBlocksRequest)(nil), // 72: injective_explorer_rpc.StreamBlocksRequest (*StreamBlocksResponse)(nil), // 73: injective_explorer_rpc.StreamBlocksResponse - nil, // 74: injective_explorer_rpc.Event.AttributesEntry + (*GetStatsRequest)(nil), // 74: injective_explorer_rpc.GetStatsRequest + (*GetStatsResponse)(nil), // 75: injective_explorer_rpc.GetStatsResponse + nil, // 76: injective_explorer_rpc.Event.AttributesEntry } var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 2, // 0: injective_explorer_rpc.GetAccountTxsResponse.paging:type_name -> injective_explorer_rpc.Paging @@ -7422,7 +7619,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 6, // 3: injective_explorer_rpc.TxDetailData.events:type_name -> injective_explorer_rpc.Event 7, // 4: injective_explorer_rpc.TxDetailData.signatures:type_name -> injective_explorer_rpc.Signature 5, // 5: injective_explorer_rpc.GasFee.amount:type_name -> injective_explorer_rpc.CosmosCoin - 74, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry + 76, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry 2, // 7: injective_explorer_rpc.GetContractTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 8: injective_explorer_rpc.GetContractTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData 3, // 9: injective_explorer_rpc.GetContractTxsV2Response.data:type_name -> injective_explorer_rpc.TxDetailData @@ -7431,89 +7628,92 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 15, // 12: injective_explorer_rpc.BlockInfo.txs:type_name -> injective_explorer_rpc.TxDataRPC 18, // 13: injective_explorer_rpc.GetBlockResponse.data:type_name -> injective_explorer_rpc.BlockDetailInfo 19, // 14: injective_explorer_rpc.BlockDetailInfo.txs:type_name -> injective_explorer_rpc.TxData - 22, // 15: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator - 23, // 16: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription - 24, // 17: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime - 25, // 18: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent - 22, // 19: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator - 24, // 20: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime - 2, // 21: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging - 19, // 22: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData - 3, // 23: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 36, // 24: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx - 39, // 25: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx - 42, // 26: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx - 2, // 27: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging - 45, // 28: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode - 46, // 29: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 30: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission - 46, // 31: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission - 2, // 33: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging - 52, // 34: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract - 53, // 35: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 36: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 55, // 37: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo - 56, // 38: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo - 53, // 39: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 61, // 41: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance - 54, // 42: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 64, // 43: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets - 65, // 44: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer - 2, // 45: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging - 68, // 46: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer - 69, // 47: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin - 15, // 48: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC - 0, // 49: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest - 8, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest - 10, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request - 12, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest - 16, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest - 20, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest - 26, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest - 28, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest - 30, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest - 32, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest - 34, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest - 37, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - 40, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest - 43, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest - 48, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest - 50, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest - 57, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest - 59, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest - 62, // 67: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest - 66, // 68: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest - 70, // 69: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest - 72, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest - 1, // 71: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse - 9, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse - 11, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response - 13, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse - 17, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse - 21, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse - 27, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse - 29, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse - 31, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse - 33, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse - 35, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse - 38, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - 41, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse - 44, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse - 49, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse - 51, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse - 58, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse - 60, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse - 63, // 89: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse - 67, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse - 71, // 91: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse - 73, // 92: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse - 71, // [71:93] is the sub-list for method output_type - 49, // [49:71] is the sub-list for method input_type - 49, // [49:49] is the sub-list for extension type_name - 49, // [49:49] is the sub-list for extension extendee - 0, // [0:49] is the sub-list for field type_name + 7, // 15: injective_explorer_rpc.TxData.signatures:type_name -> injective_explorer_rpc.Signature + 22, // 16: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator + 23, // 17: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription + 24, // 18: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime + 25, // 19: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent + 22, // 20: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator + 24, // 21: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime + 2, // 22: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging + 19, // 23: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData + 3, // 24: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData + 36, // 25: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx + 39, // 26: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx + 42, // 27: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx + 2, // 28: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging + 45, // 29: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode + 46, // 30: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 31: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission + 46, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 33: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission + 2, // 34: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging + 52, // 35: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract + 53, // 36: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 37: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 55, // 38: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo + 56, // 39: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo + 53, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 41: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 61, // 42: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance + 54, // 43: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 64, // 44: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets + 65, // 45: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer + 2, // 46: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging + 68, // 47: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer + 69, // 48: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin + 15, // 49: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC + 0, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest + 8, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest + 10, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request + 12, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest + 16, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest + 20, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest + 26, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest + 28, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest + 30, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest + 32, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest + 34, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest + 37, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + 40, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest + 43, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest + 48, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest + 50, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest + 57, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest + 59, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest + 62, // 68: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest + 66, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest + 70, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest + 72, // 71: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest + 74, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest + 1, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse + 9, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse + 11, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response + 13, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse + 17, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse + 21, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse + 27, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse + 29, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse + 31, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse + 33, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse + 35, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse + 38, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + 41, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse + 44, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse + 49, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse + 51, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse + 58, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse + 60, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse + 63, // 91: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse + 67, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse + 71, // 93: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse + 73, // 94: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse + 75, // 95: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse + 73, // [73:96] is the sub-list for method output_type + 50, // [50:73] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_explorer_rpc_proto_init() } @@ -8410,6 +8610,30 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -8417,7 +8641,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 75, + NumMessages: 77, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go index bbcb920f..933865b7 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -70,6 +70,8 @@ type InjectiveExplorerRPCClient interface { StreamTxs(ctx context.Context, in *StreamTxsRequest, opts ...grpc.CallOption) (InjectiveExplorerRPC_StreamTxsClient, error) // StreamBlocks returns the latest blocks StreamBlocks(ctx context.Context, in *StreamBlocksRequest, opts ...grpc.CallOption) (InjectiveExplorerRPC_StreamBlocksClient, error) + // GetStats returns global exchange statistics in the last 24hs + GetStats(ctx context.Context, in *GetStatsRequest, opts ...grpc.CallOption) (*GetStatsResponse, error) } type injectiveExplorerRPCClient struct { @@ -324,6 +326,15 @@ func (x *injectiveExplorerRPCStreamBlocksClient) Recv() (*StreamBlocksResponse, return m, nil } +func (c *injectiveExplorerRPCClient) GetStats(ctx context.Context, in *GetStatsRequest, opts ...grpc.CallOption) (*GetStatsResponse, error) { + out := new(GetStatsResponse) + err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // InjectiveExplorerRPCServer is the server API for InjectiveExplorerRPC service. // All implementations must embed UnimplementedInjectiveExplorerRPCServer // for forward compatibility @@ -376,6 +387,8 @@ type InjectiveExplorerRPCServer interface { StreamTxs(*StreamTxsRequest, InjectiveExplorerRPC_StreamTxsServer) error // StreamBlocks returns the latest blocks StreamBlocks(*StreamBlocksRequest, InjectiveExplorerRPC_StreamBlocksServer) error + // GetStats returns global exchange statistics in the last 24hs + GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) mustEmbedUnimplementedInjectiveExplorerRPCServer() } @@ -449,6 +462,9 @@ func (UnimplementedInjectiveExplorerRPCServer) StreamTxs(*StreamTxsRequest, Inje func (UnimplementedInjectiveExplorerRPCServer) StreamBlocks(*StreamBlocksRequest, InjectiveExplorerRPC_StreamBlocksServer) error { return status.Errorf(codes.Unimplemented, "method StreamBlocks not implemented") } +func (UnimplementedInjectiveExplorerRPCServer) GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStats not implemented") +} func (UnimplementedInjectiveExplorerRPCServer) mustEmbedUnimplementedInjectiveExplorerRPCServer() {} // UnsafeInjectiveExplorerRPCServer may be embedded to opt out of forward compatibility for this service. @@ -864,6 +880,24 @@ func (x *injectiveExplorerRPCStreamBlocksServer) Send(m *StreamBlocksResponse) e return x.ServerStream.SendMsg(m) } +func _InjectiveExplorerRPC_GetStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExplorerRPCServer).GetStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExplorerRPCServer).GetStats(ctx, req.(*GetStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // InjectiveExplorerRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveExplorerRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -951,6 +985,10 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetBankTransfers", Handler: _InjectiveExplorerRPC_GetBankTransfers_Handler, }, + { + MethodName: "GetStats", + Handler: _InjectiveExplorerRPC_GetStats_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go index 06257030..86e23918 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go @@ -761,6 +761,40 @@ func request_InjectiveExplorerRPC_StreamBlocks_0(ctx context.Context, marshaler } +func request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetStats(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterInjectiveExplorerRPCHandlerServer registers the http handlers for service InjectiveExplorerRPC to "mux". // UnaryRPC :call InjectiveExplorerRPCServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1281,6 +1315,31 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime return }) + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1806,6 +1865,28 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1853,6 +1934,8 @@ var ( pattern_InjectiveExplorerRPC_StreamTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamTxs"}, "")) pattern_InjectiveExplorerRPC_StreamBlocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamBlocks"}, "")) + + pattern_InjectiveExplorerRPC_GetStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetStats"}, "")) ) var ( @@ -1899,4 +1982,6 @@ var ( forward_InjectiveExplorerRPC_StreamTxs_0 = runtime.ForwardResponseStream forward_InjectiveExplorerRPC_StreamBlocks_0 = runtime.ForwardResponseStream + + forward_InjectiveExplorerRPC_GetStats_0 = runtime.ForwardResponseMessage ) diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto index 077fc0bc..72446b66 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto @@ -61,6 +61,8 @@ service InjectiveExplorerRPC { rpc StreamTxs (StreamTxsRequest) returns (stream StreamTxsResponse); // StreamBlocks returns the latest blocks rpc StreamBlocks (StreamBlocksRequest) returns (stream StreamBlocksResponse); + // GetStats returns global exchange statistics in the last 24hs + rpc GetStats (GetStatsRequest) returns (GetStatsResponse); } message GetAccountTxsRequest { @@ -274,6 +276,7 @@ message TxData { bytes logs = 11; // peggy bridge claim id, non-zero if tx contains MsgDepositClaim repeated sint64 claim_ids = 12; + repeated Signature signatures = 13; } message GetValidatorsRequest { @@ -868,3 +871,27 @@ message StreamBlocksResponse { repeated TxDataRPC txs = 8; string timestamp = 9; } + +message GetStatsRequest { +} + +message GetStatsResponse { + // Total of unique addresses + uint64 addresses = 1; + // Total number of assets + uint64 assets = 2; + // Total circulating supply of INJ + uint64 inj_supply = 3; + // Avg of TX per second in the past 24hs + uint64 txs_ps24_h = 4; + // Avg of TX per second in the 100 blocks + uint64 txs_ps100_b = 5; + // Total number of TXs + uint64 txs_total = 6; + // Total number of TXs in the past 24hs + uint64 txs24_h = 7; + // Total number of TXs in the past 30 days + uint64 txs30_d = 8; + // Number of blocks produced in the past 24hs + uint64 block_count24_h = 9; +} diff --git a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go index 1a3968ae..9b896f97 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_health.proto package api_v1pb @@ -152,6 +152,8 @@ type HealthStatus struct { HoracleHeight int32 `protobuf:"zigzag32,3,opt,name=horacle_height,json=horacleHeight,proto3" json:"horacle_height,omitempty"` // block timestamp from Horacle service. HoracleTimestamp int32 `protobuf:"zigzag32,4,opt,name=horacle_timestamp,json=horacleTimestamp,proto3" json:"horacle_timestamp,omitempty"` + // Migration version of the database. + MigrationLastVersion int32 `protobuf:"zigzag32,5,opt,name=migration_last_version,json=migrationLastVersion,proto3" json:"migration_last_version,omitempty"` } func (x *HealthStatus) Reset() { @@ -214,6 +216,13 @@ func (x *HealthStatus) GetHoracleTimestamp() int32 { return 0 } +func (x *HealthStatus) GetMigrationLastVersion() int32 { + if x != nil { + return x.MigrationLastVersion + } + return 0 +} + var File_goadesign_goagen_health_proto protoreflect.FileDescriptor var file_goadesign_goagen_health_proto_rawDesc = []byte{ @@ -228,7 +237,7 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0f, @@ -239,13 +248,16 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x14, 0x6d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, + 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2f, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go index 193c66cf..aaf42a53 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_health.proto package api_v1pb diff --git a/exchange/health_rpc/pb/health.proto b/exchange/health_rpc/pb/health.proto index 0d503603..cc5a190d 100644 --- a/exchange/health_rpc/pb/health.proto +++ b/exchange/health_rpc/pb/health.proto @@ -38,4 +38,6 @@ message HealthStatus { sint32 horacle_height = 3; // block timestamp from Horacle service. sint32 horacle_timestamp = 4; + // Migration version of the database. + sint32 migration_last_version = 5; } diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go index 400542ac..99aa0d6a 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb @@ -137,7 +137,7 @@ type InsuranceFund struct { OracleType string `protobuf:"bytes,10,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` // Defines the expiry, if any Expiry int64 `protobuf:"zigzag64,11,opt,name=expiry,proto3" json:"expiry,omitempty"` - // Token metadata for the deposit asset, only for Ethereum-based assets + // Token metadata for the deposit asset DepositTokenMeta *TokenMeta `protobuf:"bytes,12,opt,name=deposit_token_meta,json=depositTokenMeta,proto3" json:"deposit_token_meta,omitempty"` } @@ -264,7 +264,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go index 5a87cd1a..ba318673 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto index b670ddea..29726fb6 100644 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto +++ b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto @@ -49,14 +49,14 @@ message InsuranceFund { string oracle_type = 10; // Defines the expiry, if any sint64 expiry = 11; - // Token metadata for the deposit asset, only for Ethereum-based assets + // Token metadata for the deposit asset TokenMeta deposit_token_meta = 12; } message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go index e6f93ea1..3ddf3838 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go index 3266ca1a..53281e05 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go index 3308dfee..23d0f553 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go index 4c24eee8..e3b84c89 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go index 4a6d0331..12ee3ba2 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go index 86b88e4d..f109be41 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go index e42a27b8..34363beb 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb @@ -163,11 +163,11 @@ type SpotMarketInfo struct { Ticker string `protobuf:"bytes,3,opt,name=ticker,proto3" json:"ticker,omitempty"` // Coin denom used for the base asset. BaseDenom string `protobuf:"bytes,4,opt,name=base_denom,json=baseDenom,proto3" json:"base_denom,omitempty"` - // Token metadata for base asset, only for Ethereum-based assets + // Token metadata for base asset BaseTokenMeta *TokenMeta `protobuf:"bytes,5,opt,name=base_token_meta,json=baseTokenMeta,proto3" json:"base_token_meta,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,6,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,7,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -313,7 +313,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -2107,6 +2107,8 @@ type TradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesRequest) Reset() { @@ -2239,6 +2241,13 @@ func (x *TradesRequest) GetCid() string { return "" } +func (x *TradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2477,6 +2486,8 @@ type StreamTradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesRequest) Reset() { @@ -2609,6 +2620,13 @@ func (x *StreamTradesRequest) GetCid() string { return "" } +func (x *StreamTradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2709,6 +2727,8 @@ type TradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesV2Request) Reset() { @@ -2841,6 +2861,13 @@ func (x *TradesV2Request) GetCid() string { return "" } +func (x *TradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2932,6 +2959,8 @@ type StreamTradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesV2Request) Reset() { @@ -3064,6 +3093,13 @@ func (x *StreamTradesV2Request) GetCid() string { return "" } +func (x *StreamTradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4611,7 +4647,7 @@ var file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xbf, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, @@ -4639,485 +4675,494 @@ var file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x22, 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xc5, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc1, 0x03, 0x0a, - 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x22, 0xc7, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xea, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, + 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, + 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, - 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, + 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5e, + 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, + 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, + 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x45, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xf3, 0x03, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, + 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, + 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, + 0x01, 0x0a, 0x19, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5e, 0x0a, 0x1c, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, + 0x63, 0x53, 0x77, 0x61, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, + 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, 0x03, 0x0a, 0x14, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x22, 0xf3, 0x03, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, + 0x65, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x41, - 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, - 0x42, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, + 0x75, 0x6e, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x32, + 0x9e, 0x11, 0x0a, 0x18, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, + 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x70, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x73, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, + 0x32, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, - 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, - 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x9e, 0x11, 0x0a, 0x18, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, - 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, + 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x61, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, - 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, - 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x30, 0x2e, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, + 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, - 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, + 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x67, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x2c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x0e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, + 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, + 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, + 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x11, + 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, + 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x20, 0x5a, 0x1e, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x6f, 0x6d, - 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, - 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, 0x1e, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go index e276906a..12b1c14e 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto index aa7b07f4..feba38c6 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto +++ b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto @@ -76,11 +76,11 @@ message SpotMarketInfo { string ticker = 3; // Coin denom used for the base asset. string base_denom = 4; - // Token metadata for base asset, only for Ethereum-based assets + // Token metadata for base asset TokenMeta base_token_meta = 5; // Coin denom used for the quote asset. string quote_denom = 6; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 7; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 8; @@ -99,7 +99,7 @@ message SpotMarketInfo { message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; @@ -384,6 +384,8 @@ message TradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message TradesResponse { @@ -450,6 +452,8 @@ message StreamTradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message StreamTradesResponse { @@ -491,6 +495,8 @@ message TradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message TradesV2Response { @@ -530,6 +536,8 @@ message StreamTradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message StreamTradesV2Response { diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go index fa06c65a..1c19aa31 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v4.25.3 +// protoc v3.21.12 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -53,6 +53,16 @@ type ListTradingStrategiesRequest struct { StrategyType []string `protobuf:"bytes,10,rep,name=strategy_type,json=strategyType,proto3" json:"strategy_type,omitempty"` // Filter by market type MarketType string `protobuf:"bytes,11,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` + // The last executed timestamp in UNIX milliseconds for the last executed time + // of the trading strategy + LastExecutedTime int64 `protobuf:"zigzag64,12,opt,name=last_executed_time,json=lastExecutedTime,proto3" json:"last_executed_time,omitempty"` + // Include TVL in the response + WithTvl bool `protobuf:"varint,13,opt,name=with_tvl,json=withTvl,proto3" json:"with_tvl,omitempty"` + // Indicates whether the trading strategy is a trailing strategy + IsTrailingStrategy bool `protobuf:"varint,14,opt,name=is_trailing_strategy,json=isTrailingStrategy,proto3" json:"is_trailing_strategy,omitempty"` + // Indicates whether the trading strategy performance should be included in the + // response + WithPerformance bool `protobuf:"varint,15,opt,name=with_performance,json=withPerformance,proto3" json:"with_performance,omitempty"` } func (x *ListTradingStrategiesRequest) Reset() { @@ -164,6 +174,34 @@ func (x *ListTradingStrategiesRequest) GetMarketType() string { return "" } +func (x *ListTradingStrategiesRequest) GetLastExecutedTime() int64 { + if x != nil { + return x.LastExecutedTime + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetWithTvl() bool { + if x != nil { + return x.WithTvl + } + return false +} + +func (x *ListTradingStrategiesRequest) GetIsTrailingStrategy() bool { + if x != nil { + return x.IsTrailingStrategy + } + return false +} + +func (x *ListTradingStrategiesRequest) GetWithPerformance() bool { + if x != nil { + return x.WithPerformance + } + return false +} + type ListTradingStrategiesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -291,6 +329,28 @@ type TradingStrategy struct { ContractName string `protobuf:"bytes,32,opt,name=contract_name,json=contractName,proto3" json:"contract_name,omitempty"` // Type of the market MarketType string `protobuf:"bytes,33,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` + // lastExecutedAt timestamp in UNIX millis. + LastExecutedAt int64 `protobuf:"zigzag64,34,opt,name=last_executed_at,json=lastExecutedAt,proto3" json:"last_executed_at,omitempty"` + // trailing up price + TrailUpPrice string `protobuf:"bytes,35,opt,name=trail_up_price,json=trailUpPrice,proto3" json:"trail_up_price,omitempty"` + // trailing down price + TrailDownPrice string `protobuf:"bytes,36,opt,name=trail_down_price,json=trailDownPrice,proto3" json:"trail_down_price,omitempty"` + // trailing up counter + TrailUpCounter int64 `protobuf:"zigzag64,37,opt,name=trail_up_counter,json=trailUpCounter,proto3" json:"trail_up_counter,omitempty"` + // trailing down counter + TrailDownCounter int64 `protobuf:"zigzag64,38,opt,name=trail_down_counter,json=trailDownCounter,proto3" json:"trail_down_counter,omitempty"` + // TVL of the trading strategy + Tvl string `protobuf:"bytes,39,opt,name=tvl,proto3" json:"tvl,omitempty"` + // PnL of the trading strategy + Pnl string `protobuf:"bytes,40,opt,name=pnl,proto3" json:"pnl,omitempty"` + // PnL percentage of the trading strategy + PnlPerc string `protobuf:"bytes,41,opt,name=pnl_perc,json=pnlPerc,proto3" json:"pnl_perc,omitempty"` + // pnlUpdatedAt timestamp in UNIX millis. + PnlUpdatedAt int64 `protobuf:"zigzag64,42,opt,name=pnl_updated_at,json=pnlUpdatedAt,proto3" json:"pnl_updated_at,omitempty"` + // Indicates the performance of the trading strategy + Performance string `protobuf:"bytes,43,opt,name=performance,proto3" json:"performance,omitempty"` + // Return on investment of the trading strategy + Roi string `protobuf:"bytes,44,opt,name=roi,proto3" json:"roi,omitempty"` } func (x *TradingStrategy) Reset() { @@ -556,6 +616,83 @@ func (x *TradingStrategy) GetMarketType() string { return "" } +func (x *TradingStrategy) GetLastExecutedAt() int64 { + if x != nil { + return x.LastExecutedAt + } + return 0 +} + +func (x *TradingStrategy) GetTrailUpPrice() string { + if x != nil { + return x.TrailUpPrice + } + return "" +} + +func (x *TradingStrategy) GetTrailDownPrice() string { + if x != nil { + return x.TrailDownPrice + } + return "" +} + +func (x *TradingStrategy) GetTrailUpCounter() int64 { + if x != nil { + return x.TrailUpCounter + } + return 0 +} + +func (x *TradingStrategy) GetTrailDownCounter() int64 { + if x != nil { + return x.TrailDownCounter + } + return 0 +} + +func (x *TradingStrategy) GetTvl() string { + if x != nil { + return x.Tvl + } + return "" +} + +func (x *TradingStrategy) GetPnl() string { + if x != nil { + return x.Pnl + } + return "" +} + +func (x *TradingStrategy) GetPnlPerc() string { + if x != nil { + return x.PnlPerc + } + return "" +} + +func (x *TradingStrategy) GetPnlUpdatedAt() int64 { + if x != nil { + return x.PnlUpdatedAt + } + return 0 +} + +func (x *TradingStrategy) GetPerformance() string { + if x != nil { + return x.Performance + } + return "" +} + +func (x *TradingStrategy) GetRoi() string { + if x != nil { + return x.Roi + } + return "" +} + type ExitConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -698,6 +835,176 @@ func (x *Paging) GetNext() []string { return nil } +type GetTradingStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetTradingStatsRequest) Reset() { + *x = GetTradingStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTradingStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTradingStatsRequest) ProtoMessage() {} + +func (x *GetTradingStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5] + 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 GetTradingStatsRequest.ProtoReflect.Descriptor instead. +func (*GetTradingStatsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{5} +} + +type GetTradingStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total of unique active trading strategies + ActiveTradingStrategies uint64 `protobuf:"varint,1,opt,name=active_trading_strategies,json=activeTradingStrategies,proto3" json:"active_trading_strategies,omitempty"` + // Total number of created trading strategies + TotalTradingStrategiesCreated uint64 `protobuf:"varint,2,opt,name=total_trading_strategies_created,json=totalTradingStrategiesCreated,proto3" json:"total_trading_strategies_created,omitempty"` + // Total TVL of all active trading strategies + TotalTvl string `protobuf:"bytes,3,opt,name=total_tvl,json=totalTvl,proto3" json:"total_tvl,omitempty"` + // Market stats + Markets []*Market `protobuf:"bytes,4,rep,name=markets,proto3" json:"markets,omitempty"` +} + +func (x *GetTradingStatsResponse) Reset() { + *x = GetTradingStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTradingStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTradingStatsResponse) ProtoMessage() {} + +func (x *GetTradingStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6] + 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 GetTradingStatsResponse.ProtoReflect.Descriptor instead. +func (*GetTradingStatsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *GetTradingStatsResponse) GetActiveTradingStrategies() uint64 { + if x != nil { + return x.ActiveTradingStrategies + } + return 0 +} + +func (x *GetTradingStatsResponse) GetTotalTradingStrategiesCreated() uint64 { + if x != nil { + return x.TotalTradingStrategiesCreated + } + return 0 +} + +func (x *GetTradingStatsResponse) GetTotalTvl() string { + if x != nil { + return x.TotalTvl + } + return "" +} + +func (x *GetTradingStatsResponse) GetMarkets() []*Market { + if x != nil { + return x.Markets + } + return nil +} + +type Market struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MarketId of the trading strategy + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Total of unique active trading strategies + ActiveTradingStrategies uint64 `protobuf:"varint,2,opt,name=active_trading_strategies,json=activeTradingStrategies,proto3" json:"active_trading_strategies,omitempty"` +} + +func (x *Market) Reset() { + *x = Market{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Market) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Market) ProtoMessage() {} + +func (x *Market) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7] + 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 Market.ProtoReflect.Descriptor instead. +func (*Market) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *Market) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *Market) GetActiveTradingStrategies() uint64 { + if x != nil { + return x.ActiveTradingStrategies + } + return 0 +} + var File_goadesign_goagen_injective_trading_rpc_proto protoreflect.FileDescriptor var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ @@ -705,7 +1012,7 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xf6, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x67, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x9c, 0x04, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, @@ -728,128 +1035,192 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, - 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, - 0xd9, 0x0a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, - 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, - 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, - 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, - 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, - 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, - 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x47, 0x72, 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, - 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, - 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, - 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x45, - 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, - 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, 0x74, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, - 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x32, 0x9a, - 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, - 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x77, 0x69, 0x74, 0x68, 0x54, 0x76, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x74, 0x72, + 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x35, + 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xc4, 0x0d, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, + 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x6b, + 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x77, + 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, + 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x73, + 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, + 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x47, 0x72, + 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x68, 0x6f, 0x75, + 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, + 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, + 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, + 0x4c, 0x6f, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x61, + 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6c, 0x61, 0x73, + 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x55, 0x70, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, + 0x69, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x55, 0x70, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x76, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x74, 0x76, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6e, 0x6c, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x70, 0x6e, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6e, 0x6c, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6e, 0x6c, 0x50, 0x65, + 0x72, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x6e, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x70, 0x6e, 0x6c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, + 0x69, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x6f, 0x69, 0x22, 0x48, 0x0a, 0x0a, + 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, + 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, + 0x73, 0x12, 0x47, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x69, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, + 0x22, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x69, 0x65, 0x73, 0x32, 0x8c, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x70, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -864,26 +1235,32 @@ func file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_trading_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_goadesign_goagen_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_goadesign_goagen_injective_trading_rpc_proto_goTypes = []interface{}{ (*ListTradingStrategiesRequest)(nil), // 0: injective_trading_rpc.ListTradingStrategiesRequest (*ListTradingStrategiesResponse)(nil), // 1: injective_trading_rpc.ListTradingStrategiesResponse (*TradingStrategy)(nil), // 2: injective_trading_rpc.TradingStrategy (*ExitConfig)(nil), // 3: injective_trading_rpc.ExitConfig (*Paging)(nil), // 4: injective_trading_rpc.Paging + (*GetTradingStatsRequest)(nil), // 5: injective_trading_rpc.GetTradingStatsRequest + (*GetTradingStatsResponse)(nil), // 6: injective_trading_rpc.GetTradingStatsResponse + (*Market)(nil), // 7: injective_trading_rpc.Market } var file_goadesign_goagen_injective_trading_rpc_proto_depIdxs = []int32{ 2, // 0: injective_trading_rpc.ListTradingStrategiesResponse.strategies:type_name -> injective_trading_rpc.TradingStrategy 4, // 1: injective_trading_rpc.ListTradingStrategiesResponse.paging:type_name -> injective_trading_rpc.Paging 3, // 2: injective_trading_rpc.TradingStrategy.stop_loss_config:type_name -> injective_trading_rpc.ExitConfig 3, // 3: injective_trading_rpc.TradingStrategy.take_profit_config:type_name -> injective_trading_rpc.ExitConfig - 0, // 4: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest - 1, // 5: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse - 5, // [5:6] is the sub-list for method output_type - 4, // [4:5] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 4: injective_trading_rpc.GetTradingStatsResponse.markets:type_name -> injective_trading_rpc.Market + 0, // 5: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest + 5, // 6: injective_trading_rpc.InjectiveTradingRPC.GetTradingStats:input_type -> injective_trading_rpc.GetTradingStatsRequest + 1, // 7: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse + 6, // 8: injective_trading_rpc.InjectiveTradingRPC.GetTradingStats:output_type -> injective_trading_rpc.GetTradingStatsResponse + 7, // [7:9] is the sub-list for method output_type + 5, // [5:7] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_trading_rpc_proto_init() } @@ -952,6 +1329,42 @@ func file_goadesign_goagen_injective_trading_rpc_proto_init() { return nil } } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTradingStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTradingStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Market); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -959,7 +1372,7 @@ func file_goadesign_goagen_injective_trading_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_trading_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go index ec918fd5..db5c53ae 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v4.25.3 +// - protoc v3.21.12 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -24,6 +24,8 @@ const _ = grpc.SupportPackageIsVersion7 type InjectiveTradingRPCClient interface { // Lists all trading strategies ListTradingStrategies(ctx context.Context, in *ListTradingStrategiesRequest, opts ...grpc.CallOption) (*ListTradingStrategiesResponse, error) + // GetStats returns global statistics in the last 24hs + GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) } type injectiveTradingRPCClient struct { @@ -43,12 +45,23 @@ func (c *injectiveTradingRPCClient) ListTradingStrategies(ctx context.Context, i return out, nil } +func (c *injectiveTradingRPCClient) GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) { + out := new(GetTradingStatsResponse) + err := c.cc.Invoke(ctx, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // InjectiveTradingRPCServer is the server API for InjectiveTradingRPC service. // All implementations must embed UnimplementedInjectiveTradingRPCServer // for forward compatibility type InjectiveTradingRPCServer interface { // Lists all trading strategies ListTradingStrategies(context.Context, *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) + // GetStats returns global statistics in the last 24hs + GetTradingStats(context.Context, *GetTradingStatsRequest) (*GetTradingStatsResponse, error) mustEmbedUnimplementedInjectiveTradingRPCServer() } @@ -59,6 +72,9 @@ type UnimplementedInjectiveTradingRPCServer struct { func (UnimplementedInjectiveTradingRPCServer) ListTradingStrategies(context.Context, *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListTradingStrategies not implemented") } +func (UnimplementedInjectiveTradingRPCServer) GetTradingStats(context.Context, *GetTradingStatsRequest) (*GetTradingStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTradingStats not implemented") +} func (UnimplementedInjectiveTradingRPCServer) mustEmbedUnimplementedInjectiveTradingRPCServer() {} // UnsafeInjectiveTradingRPCServer may be embedded to opt out of forward compatibility for this service. @@ -90,6 +106,24 @@ func _InjectiveTradingRPC_ListTradingStrategies_Handler(srv interface{}, ctx con return interceptor(ctx, in, info, handler) } +func _InjectiveTradingRPC_GetTradingStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTradingStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveTradingRPCServer).GetTradingStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveTradingRPCServer).GetTradingStats(ctx, req.(*GetTradingStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // InjectiveTradingRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveTradingRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -101,6 +135,10 @@ var InjectiveTradingRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListTradingStrategies", Handler: _InjectiveTradingRPC_ListTradingStrategies_Handler, }, + { + MethodName: "GetTradingStats", + Handler: _InjectiveTradingRPC_GetTradingStats_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "goadesign_goagen_injective_trading_rpc.proto", diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go index 6e6cf424..cbd4dcd2 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go @@ -65,6 +65,40 @@ func local_request_InjectiveTradingRPC_ListTradingStrategies_0(ctx context.Conte } +func request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveTradingRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTradingStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTradingStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveTradingRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTradingStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetTradingStats(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterInjectiveTradingRPCHandlerServer registers the http handlers for service InjectiveTradingRPC to "mux". // UnaryRPC :call InjectiveTradingRPCServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -96,6 +130,31 @@ func RegisterInjectiveTradingRPCHandlerServer(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -159,13 +218,39 @@ func RegisterInjectiveTradingRPCHandlerClient(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "ListTradingStrategies"}, "")) + + pattern_InjectiveTradingRPC_GetTradingStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "GetTradingStats"}, "")) ) var ( forward_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.ForwardResponseMessage + + forward_InjectiveTradingRPC_GetTradingStats_0 = runtime.ForwardResponseMessage ) diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.proto b/exchange/trading_rpc/pb/injective_trading_rpc.proto index 18b00922..681ff769 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.proto +++ b/exchange/trading_rpc/pb/injective_trading_rpc.proto @@ -16,6 +16,8 @@ option go_package = "/injective_trading_rpcpb"; service InjectiveTradingRPC { // Lists all trading strategies rpc ListTradingStrategies (ListTradingStrategiesRequest) returns (ListTradingStrategiesResponse); + // GetStats returns global statistics in the last 24hs + rpc GetTradingStats (GetTradingStatsRequest) returns (GetTradingStatsResponse); } message ListTradingStrategiesRequest { @@ -40,6 +42,16 @@ message ListTradingStrategiesRequest { repeated string strategy_type = 10; // Filter by market type string market_type = 11; + // The last executed timestamp in UNIX milliseconds for the last executed time +// of the trading strategy + sint64 last_executed_time = 12; + // Include TVL in the response + bool with_tvl = 13; + // Indicates whether the trading strategy is a trailing strategy + bool is_trailing_strategy = 14; + // Indicates whether the trading strategy performance should be included in the +// response + bool with_performance = 15; } message ListTradingStrategiesResponse { @@ -115,6 +127,28 @@ message TradingStrategy { string contract_name = 32; // Type of the market string market_type = 33; + // lastExecutedAt timestamp in UNIX millis. + sint64 last_executed_at = 34; + // trailing up price + string trail_up_price = 35; + // trailing down price + string trail_down_price = 36; + // trailing up counter + sint64 trail_up_counter = 37; + // trailing down counter + sint64 trail_down_counter = 38; + // TVL of the trading strategy + string tvl = 39; + // PnL of the trading strategy + string pnl = 40; + // PnL percentage of the trading strategy + string pnl_perc = 41; + // pnlUpdatedAt timestamp in UNIX millis. + sint64 pnl_updated_at = 42; + // Indicates the performance of the trading strategy + string performance = 43; + // Return on investment of the trading strategy + string roi = 44; } message ExitConfig { @@ -136,3 +170,24 @@ message Paging { // array of tokens to navigate to the next pages repeated string next = 5; } + +message GetTradingStatsRequest { +} + +message GetTradingStatsResponse { + // Total of unique active trading strategies + uint64 active_trading_strategies = 1; + // Total number of created trading strategies + uint64 total_trading_strategies_created = 2; + // Total TVL of all active trading strategies + string total_tvl = 3; + // Market stats + repeated Market markets = 4; +} + +message Market { + // MarketId of the trading strategy + string market_id = 1; + // Total of unique active trading strategies + uint64 active_trading_strategies = 2; +} diff --git a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go index 17ef5dbc..1a3cc73b 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go +// +// Generated by this command: +// +// mockgen -source=api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go -destination=api/gen/grpc/injective_trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go -package=injective_trading_rpcpb +// // Package injective_trading_rpcpb is a generated GoMock package. package injective_trading_rpcpb @@ -8,7 +13,7 @@ import ( context "context" reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" grpc "google.golang.org/grpc" ) @@ -35,10 +40,30 @@ func (m *MockInjectiveTradingRPCClient) EXPECT() *MockInjectiveTradingRPCClientM return m.recorder } +// GetTradingStats mocks base method. +func (m *MockInjectiveTradingRPCClient) GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetTradingStats", varargs...) + ret0, _ := ret[0].(*GetTradingStatsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTradingStats indicates an expected call of GetTradingStats. +func (mr *MockInjectiveTradingRPCClientMockRecorder) GetTradingStats(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).GetTradingStats), varargs...) +} + // ListTradingStrategies mocks base method. func (m *MockInjectiveTradingRPCClient) ListTradingStrategies(ctx context.Context, in *ListTradingStrategiesRequest, opts ...grpc.CallOption) (*ListTradingStrategiesResponse, error) { m.ctrl.T.Helper() - varargs := []interface{}{ctx, in} + varargs := []any{ctx, in} for _, a := range opts { varargs = append(varargs, a) } @@ -49,9 +74,9 @@ func (m *MockInjectiveTradingRPCClient) ListTradingStrategies(ctx context.Contex } // ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCClientMockRecorder) ListTradingStrategies(ctx, in interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInjectiveTradingRPCClientMockRecorder) ListTradingStrategies(ctx, in any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{ctx, in}, opts...) + varargs := append([]any{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).ListTradingStrategies), varargs...) } @@ -78,6 +103,21 @@ func (m *MockInjectiveTradingRPCServer) EXPECT() *MockInjectiveTradingRPCServerM return m.recorder } +// GetTradingStats mocks base method. +func (m *MockInjectiveTradingRPCServer) GetTradingStats(arg0 context.Context, arg1 *GetTradingStatsRequest) (*GetTradingStatsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTradingStats", arg0, arg1) + ret0, _ := ret[0].(*GetTradingStatsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTradingStats indicates an expected call of GetTradingStats. +func (mr *MockInjectiveTradingRPCServerMockRecorder) GetTradingStats(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).GetTradingStats), arg0, arg1) +} + // ListTradingStrategies mocks base method. func (m *MockInjectiveTradingRPCServer) ListTradingStrategies(arg0 context.Context, arg1 *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) { m.ctrl.T.Helper() @@ -88,7 +128,7 @@ func (m *MockInjectiveTradingRPCServer) ListTradingStrategies(arg0 context.Conte } // ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCServerMockRecorder) ListTradingStrategies(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockInjectiveTradingRPCServerMockRecorder) ListTradingStrategies(arg0, arg1 any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).ListTradingStrategies), arg0, arg1) } diff --git a/go.mod b/go.mod index 411a8b43..fdab5254 100644 --- a/go.mod +++ b/go.mod @@ -1,29 +1,28 @@ module github.com/InjectiveLabs/sdk-go -go 1.22 +go 1.22.2 + +toolchain go1.22.5 require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.1.0 - cosmossdk.io/x/evidence v0.1.0 - cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.3 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/tx v0.13.4 + cosmossdk.io/x/upgrade v0.1.3 github.com/CosmWasm/wasmd v0.40.2 github.com/InjectiveLabs/suplog v1.3.3 - github.com/bandprotocol/bandchain-packet v0.0.4 + github.com/bandprotocol/bandchain-packet v0.0.0-00010101000000-000000000000 github.com/btcsuite/btcd v0.23.4 github.com/btcsuite/btcd/btcutil v1.1.3 - github.com/cometbft/cometbft v0.38.9 + github.com/cometbft/cometbft v0.38.10 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/cosmos-sdk v0.50.7 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.5.0 - github.com/cosmos/ibc-go/modules/capability v1.0.0 - github.com/cosmos/ibc-go/v8 v8.2.0 + github.com/cosmos/ibc-go/v8 v8.3.2 github.com/ethereum/go-ethereum v1.11.5 - github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 @@ -33,25 +32,25 @@ require ( github.com/shopspring/decimal v1.2.0 github.com/stretchr/testify v1.9.0 github.com/tyler-smith/go-bip39 v1.1.0 - golang.org/x/crypto v0.24.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.33.0 - gopkg.in/ini.v1 v1.67.0 - gopkg.in/yaml.v2 v2.4.0 + go.uber.org/mock v0.5.0 + golang.org/x/crypto v0.25.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/grpc v1.64.1 + google.golang.org/protobuf v1.34.2 gotest.tools/v3 v3.5.1 ) require ( cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/core v0.11.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/core v0.11.1 // indirect + cosmossdk.io/depinject v1.0.0 // indirect cosmossdk.io/log v1.3.1 // indirect + cosmossdk.io/store v1.1.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/CosmWasm/wasmvm/v2 v2.0.0 // indirect + github.com/CosmWasm/wasmvm/v2 v2.1.2 // indirect github.com/DataDog/appsec-internal-go v1.5.0 // indirect github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 // indirect github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 // indirect @@ -87,7 +86,8 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-db v1.0.2 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.1.2 // indirect + github.com/cosmos/iavl v1.2.0 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.0 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -164,11 +164,11 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.52.2 // indirect github.com/prometheus/procfs v0.13.0 // indirect @@ -176,11 +176,12 @@ require ( github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.32.0 // indirect + github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect + github.com/shamaton/msgpack/v2 v2.2.0 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -188,7 +189,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.18.2 // indirect + github.com/spf13/viper v1.19.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect @@ -198,7 +199,7 @@ require ( github.com/tklauser/numcpus v0.4.0 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.3.8 // indirect + go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect @@ -206,18 +207,20 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 // indirect gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v1.1.0 // indirect @@ -230,11 +233,11 @@ replace ( cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.6-inj-0 cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.6-inj-0 - github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.51.0-inj-0 + github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.52.0-inj-0 github.com/bandprotocol/bandchain-packet => github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 - github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.38.10-inj-1 + github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.38.11-inj-0 - github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 + github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2 github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj-0 github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.3.2-inj-0 github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2 diff --git a/go.sum b/go.sum index a9b25d4b..fd1aaba9 100644 --- a/go.sum +++ b/go.sum @@ -1,35 +1,35 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= -cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= -cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= -cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= +cosmossdk.io/depinject v1.0.0 h1:dQaTu6+O6askNXO06+jyeUAnF2/ssKwrrszP9t5q050= +cosmossdk.io/depinject v1.0.0/go.mod h1:zxK/h3HgHoA/eJVtiSsoaRaRA2D5U4cJ5thIG4ssbB8= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= -cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/tx v0.13.4 h1:Eg0PbJgeO0gM8p5wx6xa0fKR7hIV6+8lC56UrsvSo0Y= +cosmossdk.io/x/tx v0.13.4/go.mod h1:BkFqrnGGgW50Y6cwTy+JvgAhiffbGEKW6KF9ufcDpvk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -39,8 +39,8 @@ github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XB github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/CosmWasm/wasmvm/v2 v2.0.0 h1:IqNCI2G0mvs7K6ej17/I28805rVqnu+Y1cWDqIdwb08= -github.com/CosmWasm/wasmvm/v2 v2.0.0/go.mod h1:su9lg5qLr7adV95eOfzjZWkGiky8WNaNIHDr7Fpu7Ck= +github.com/CosmWasm/wasmvm/v2 v2.1.2 h1:GkJ5bAsRlLHfIQVg/FY1VHwLyBwlCjAhDea0B8L+e20= +github.com/CosmWasm/wasmvm/v2 v2.1.2/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= github.com/DataDog/appsec-internal-go v1.5.0 h1:8kS5zSx5T49uZ8dZTdT19QVAvC/B8ByyZdhQKYQWHno= github.com/DataDog/appsec-internal-go v1.5.0/go.mod h1:pEp8gjfNLtEOmz+iZqC8bXhu0h4k7NUsW/qiQb34k1U= github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 h1:bUMSNsw1iofWiju9yc1f+kBd33E3hMJtq9GuU602Iy8= @@ -63,10 +63,10 @@ github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 h1:ZnvCV/lzjWmBwuGbkAz+okucfJEyEzkU9GYK3tKU9cU= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1/go.mod h1:QELTDYiwnbAqIgTF9zeKr+hVlK6eVyt6Nxmh6/1mmzQ= -github.com/InjectiveLabs/cometbft v0.38.10-inj-1 h1:k4I22d5KcXEluYFSVfuSepkibyUesMD+UGOpBwqjXbo= -github.com/InjectiveLabs/cometbft v0.38.10-inj-1/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= -github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 h1:Jf+0AEdUUNG1mNARompZWTFI/UltAUGX66owYks7TAs= -github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0/go.mod h1:igpF5mgbiTmaS3hO/yoIIv7+ICbzMBIowFWSw5aOrKA= +github.com/InjectiveLabs/cometbft v0.38.11-inj-0 h1:yf+qvOtlvmLZCBkQCInApRy9icp8+TuSWFwZwWPA5NU= +github.com/InjectiveLabs/cometbft v0.38.11-inj-0/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= +github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2 h1:E5YT12BFhar95RanHLyI3zw12yQTGGPbktGQlN1UYsk= +github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2/go.mod h1:f7gwrwkQ0cXiqvdAvifcNACCota5CVBLA5Hwyti9V6Q= github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0 h1:75YtRrju3R21u/VXttzuBoh49o28xABR2OUqioT9hMQ= github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0/go.mod h1:ZW4eIE98wivInyQyhxU2nHqEielc/iZAcr41qNyWSrw= github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.6-inj-0 h1:rb73cHJPCTwnBq96WC9L1ymqnHe5i4of1wjpXFAOUe4= @@ -81,8 +81,8 @@ github.com/InjectiveLabs/metrics v0.0.10 h1:BoOwXnCtRRIPmq06jcI20pXZYE758eusaCI5 github.com/InjectiveLabs/metrics v0.0.10/go.mod h1:eYu++0DVUjk/jjV9WgvCo8gQU+16Yoyhp1iu+ghKNME= github.com/InjectiveLabs/suplog v1.3.3 h1:ARIR3lWD9BxcrmqTwgcGBt8t7e10gwOqllUAXa/MfxI= github.com/InjectiveLabs/suplog v1.3.3/go.mod h1:+I9WRgUhzmo1V/n7IkW24kFBFB9ZTPAiXXXCogWxmTM= -github.com/InjectiveLabs/wasmd v0.51.0-inj-0 h1:5YvS+OWjein0p3APDqLok/DjLmxJ4XAi8FXrmzhjjXo= -github.com/InjectiveLabs/wasmd v0.51.0-inj-0/go.mod h1:CGIOxbGca/pOiZ+Q7e6aMoNnnSPXrV5/hV1dK3H8FUo= +github.com/InjectiveLabs/wasmd v0.52.0-inj-0 h1:2sJftrI2+kc27wfBP9TZuoqszZx7YU8WNkFO/vMeZqQ= +github.com/InjectiveLabs/wasmd v0.52.0-inj-0/go.mod h1:kWL0LDT6QPnxQin9T2OBoDgqZidtbC+mRm0kL3pO65k= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -243,8 +243,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52o= github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= -github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= -github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= +github.com/cosmos/iavl v1.2.0 h1:kVxTmjTh4k0Dh1VNL046v6BXqKziqMDzxo93oh3kOfM= +github.com/cosmos/iavl v1.2.0/go.mod h1:HidWWLVAtODJqFD6Hbne2Y0q3SdxByJepHUOeoH4LiI= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -472,8 +472,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= +github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= @@ -509,8 +509,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= -github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= +github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -746,8 +746,8 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= @@ -774,8 +774,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -818,8 +818,8 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= -github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -836,6 +836,8 @@ github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZj github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= +github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= +github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= @@ -873,8 +875,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= -github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -945,18 +947,18 @@ github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWp github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= -go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 h1:qxen9oVGzDdIRP6ejyAJc760RwW4SnVDiTYTzwnXuxo= +go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5/go.mod h1:eW0HG9/oHQhvRCvb1/pIXW4cOvtDqeQK+XSi3TnwaXY= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= @@ -974,6 +976,8 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0 go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -996,8 +1000,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= @@ -1053,8 +1057,8 @@ golang.org/x/net v0.0.0-20220517181318-183a9ca12b87/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1134,14 +1138,14 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -1184,11 +1188,11 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.171.0 h1:w174hnBPqut76FzW5Qaupt7zY8Kql6fiVjgys4f58sU= +google.golang.org/api v0.171.0/go.mod h1:Hnq5AHm4OTMt2BUVjael2CWZFD6vksJdWCWiUAmjC9o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1207,10 +1211,10 @@ google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1228,8 +1232,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1245,8 +1249,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 h1:jeZxE4ZlfAc+R0zO5TEmJBwOLet3NThsOfYJeSQg1x0= gopkg.in/DataDog/dd-trace-go.v1 v1.62.0/go.mod h1:YTvYkk3PTsfw0OWrRFxV/IQ5Gy4nZ5TRvxTAP3JcIzs= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From 7829d009cf3965f4bd5756ba9cbbf7a9835ba05d Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:02:19 -0300 Subject: [PATCH 2/6] (feat) Added support for the latest version of Permissions module. Updated all examples for that module too. Refactored the logic to update the compiled protos --- Makefile | 134 +- buf.gen.chain.yaml | 20 + buf.gen.indexer.yaml | 21 + chain/auction/types/auction.pb.go | 164 +- chain/auction/types/errors.go | 8 - chain/auction/types/events.go | 6 - chain/auction/types/expected_keepers.go | 16 - chain/auction/types/genesis.go | 21 - chain/auction/types/key.go | 16 - chain/auction/types/msgs.go | 95 - chain/auction/types/params.go | 103 - chain/auction/types/paramset.go | 26 - chain/codec/codec.go | 1 + chain/crypto/codec/amino.go | 1 - chain/crypto/keyring/options.go | 44 - chain/exchange/types/common_utils.go | 33 - chain/exchange/types/derivative_orders.go | 8 + chain/exchange/types/errors.go | 3 +- chain/exchange/types/exchange.pb.go | 694 ++- chain/exchange/types/msgs.go | 14 +- chain/exchange/types/params.go | 57 +- chain/exchange/types/proposal.go | 39 +- chain/exchange/types/proposal.pb.go | 427 +- chain/exchange/types/query.pb.go | 2064 +++++-- chain/exchange/types/reclamation.go | 41 - chain/exchange/types/spot_orders.go | 16 +- chain/exchange/types/tx.pb.go | 556 +- chain/exchange/types/wasm_maker_contract.go | 23 - chain/helpers/common.go | 27 + chain/insurance/types/errors.go | 20 - chain/insurance/types/events.go | 1 - chain/insurance/types/expected_keepers.go | 20 - chain/insurance/types/genesis.go | 33 - chain/insurance/types/insurance.go | 56 - chain/insurance/types/key.go | 38 - chain/insurance/types/msgs.go | 184 - chain/insurance/types/params.go | 78 - chain/insurance/types/paramset.go | 26 - chain/ocr/types/expected_keepers.go | 29 - chain/ocr/types/genesis.go | 18 - chain/ocr/types/hooks.go | 38 - chain/ocr/types/msgs.go | 470 -- chain/oracle/types/band_ibc.go | 129 - chain/oracle/types/coinbase_oracle.go | 101 - chain/oracle/types/events.go | 6 - chain/oracle/types/expected_keepers.go | 46 - chain/oracle/types/genesis.go | 23 - chain/oracle/types/paramset.go | 26 - chain/oracle/types/pyth.go | 75 - chain/oracle/types/stork.go | 29 - chain/peggy/types/batch.go | 67 - chain/peggy/types/events.go | 28 - chain/peggy/types/expected_keepers.go | 54 - chain/peggy/types/genesis.go | 19 - chain/peggy/types/params_legacy.go | 108 - chain/peggy/types/proposal.go | 76 - chain/peggy/types/proposal.pb.go | 667 --- chain/permissions/types/codec.go | 6 - chain/permissions/types/errors.go | 24 - chain/permissions/types/expected_keepers.go | 26 - chain/permissions/types/genesis.go | 38 - chain/permissions/types/genesis.pb.go | 104 +- chain/permissions/types/msgs.go | 227 - chain/permissions/types/params.go | 33 - chain/permissions/types/permissions.pb.go | 1785 ++++-- chain/permissions/types/query.pb.go | 4837 +++++++++++---- chain/permissions/types/tx.pb.go | 2303 ++----- chain/permissions/types/types.go | 156 - chain/stream/types/query.pb.go | 268 +- chain/stream/types/request.go | 54 - chain/stream/types/response.go | 84 - chain/tokenfactory/types/authorityMetadata.go | 15 - .../types/authorityMetadata.pb.go | 84 +- chain/tokenfactory/types/denoms.go | 117 - chain/tokenfactory/types/errors.go | 25 - chain/tokenfactory/types/events.pb.go | 441 +- chain/tokenfactory/types/expected_keepers.go | 35 - chain/tokenfactory/types/genesis.go | 51 - chain/tokenfactory/types/gov.go | 54 - chain/tokenfactory/types/gov.pb.go | 465 -- chain/tokenfactory/types/keys.go | 50 - chain/tokenfactory/types/msgs.go | 288 - chain/tokenfactory/types/params.go | 63 - chain/tokenfactory/types/tx.pb.go | 508 +- chain/types/account.go | 186 - chain/types/chain_id.go | 54 - chain/types/code.go | 12 - chain/types/coin.go | 33 - chain/types/errors.go | 15 - chain/types/gas.go | 97 - chain/types/int.go | 22 - chain/types/params.go | 8 - chain/wasmx/types/exec_callback_msgs.go | 25 - chain/wasmx/types/exec_msgs.go | 26 - chain/wasmx/types/expected_keepers.go | 28 - chain/wasmx/types/genesis.go | 18 - chain/wasmx/types/paramset.go | 26 - chain/wasmx/types/util.go | 17 - client/chain/chain.go | 115 +- client/chain/chain_test_support.go | 48 +- client/chain/markets_assistant.go | 56 +- .../1_MsgCreateNamespace/example.go | 135 + .../permissions/2_DeleteNamespace/example.go | 74 - .../2_MsgUpdateNamespace/example.go | 113 + .../example.go | 43 +- .../permissions/3_UpdateNamespace/example.go | 78 - .../example.go | 0 .../4_UpdateNamespaceRoles/example.go | 91 - .../5_RevokeNamespaceRoles/example.go | 81 - .../example.go | 6 +- .../permissions/query/11_Voucher/example.go | 70 + .../12_PermissionsModuleState/example.go | 69 + .../query/1_NamespaceDenoms/example.go | 69 + .../example.go | 2 +- .../example.go | 2 +- .../example.go | 4 +- .../example.go | 2 +- .../query/6_RoleManagers/example.go | 69 + .../query/7_RoleManager/example.go | 70 + .../query/8_PolicyStatuses/example.go | 69 + .../9_PolicyManagerCapabilities/example.go | 69 + ...design_goagen_injective_accounts_rpc.pb.go | 2 +- ...n_goagen_injective_accounts_rpc_grpc.pb.go | 2 +- ...design_goagen_injective_accounts_rpc.pb.go | 5333 ----------------- ...n_goagen_injective_accounts_rpc_grpc.pb.go | 508 -- .../pb/pb/injective_accounts_rpc.pb.gw.go | 882 --- .../pb/pb/injective_accounts_rpc.proto | 623 -- ...adesign_goagen_injective_auction_rpc.pb.go | 2 +- ...gn_goagen_injective_auction_rpc_grpc.pb.go | 2 +- ...design_goagen_injective_campaign_rpc.pb.go | 524 +- ...n_goagen_injective_campaign_rpc_grpc.pb.go | 2 +- .../pb/injective_campaign_rpc.proto | 13 +- ...en_injective_derivative_exchange_rpc.pb.go | 1067 ++-- ...jective_derivative_exchange_rpc_grpc.pb.go | 2 +- .../injective_derivative_exchange_rpc.proto | 14 +- .../pb/event_provider_api.pb.gw.go | 569 ++ .../pb/event_provider_api.proto | 180 + .../pb/event_provider_api_grpc.pb_mock.go | 563 ++ .../goadesign_goagen_event_provider_api.pb.go | 1881 ++++++ ...esign_goagen_event_provider_api_grpc.pb.go | 325 + ...design_goagen_injective_exchange_rpc.pb.go | 640 +- ...n_goagen_injective_exchange_rpc_grpc.pb.go | 40 +- .../pb/injective_exchange_rpc.pb.gw.go | 85 + .../pb/injective_exchange_rpc.proto | 30 +- ...design_goagen_injective_explorer_rpc.pb.go | 1970 +++--- ...n_goagen_injective_explorer_rpc_grpc.pb.go | 40 +- .../pb/injective_explorer_rpc.pb.gw.go | 85 + .../pb/injective_explorer_rpc.proto | 27 + .../pb/goadesign_goagen_health.pb.go | 30 +- .../pb/goadesign_goagen_health_grpc.pb.go | 2 +- exchange/health_rpc/pb/health.proto | 2 + ...esign_goagen_injective_insurance_rpc.pb.go | 6 +- ..._goagen_injective_insurance_rpc_grpc.pb.go | 2 +- .../pb/injective_insurance_rpc.proto | 4 +- .../goadesign_goagen_injective_meta_rpc.pb.go | 2 +- ...esign_goagen_injective_meta_rpc_grpc.pb.go | 2 +- ...oadesign_goagen_injective_oracle_rpc.pb.go | 2 +- ...ign_goagen_injective_oracle_rpc_grpc.pb.go | 2 +- ...esign_goagen_injective_portfolio_rpc.pb.go | 2 +- ..._goagen_injective_portfolio_rpc_grpc.pb.go | 2 +- ...n_goagen_injective_spot_exchange_rpc.pb.go | 963 +-- ...gen_injective_spot_exchange_rpc_grpc.pb.go | 2 +- .../pb/injective_spot_exchange_rpc.proto | 14 +- ...adesign_goagen_injective_trading_rpc.pb.go | 673 ++- ...gn_goagen_injective_trading_rpc_grpc.pb.go | 40 +- .../pb/injective_trading_rpc.pb.gw.go | 85 + .../pb/injective_trading_rpc.proto | 55 + .../pb/injective_trading_rpc_grpc.pb_mock.go | 50 +- go.mod | 71 +- go.sum | 128 +- 170 files changed, 18334 insertions(+), 20402 deletions(-) create mode 100644 buf.gen.chain.yaml create mode 100644 buf.gen.indexer.yaml delete mode 100644 chain/auction/types/errors.go delete mode 100644 chain/auction/types/events.go delete mode 100644 chain/auction/types/expected_keepers.go delete mode 100644 chain/auction/types/genesis.go delete mode 100644 chain/auction/types/key.go delete mode 100644 chain/auction/types/msgs.go delete mode 100644 chain/auction/types/params.go delete mode 100644 chain/auction/types/paramset.go delete mode 100644 chain/crypto/keyring/options.go delete mode 100644 chain/exchange/types/reclamation.go delete mode 100644 chain/exchange/types/wasm_maker_contract.go create mode 100644 chain/helpers/common.go delete mode 100644 chain/insurance/types/errors.go delete mode 100644 chain/insurance/types/events.go delete mode 100644 chain/insurance/types/expected_keepers.go delete mode 100644 chain/insurance/types/genesis.go delete mode 100644 chain/insurance/types/insurance.go delete mode 100644 chain/insurance/types/key.go delete mode 100644 chain/insurance/types/msgs.go delete mode 100644 chain/insurance/types/params.go delete mode 100644 chain/insurance/types/paramset.go delete mode 100644 chain/ocr/types/expected_keepers.go delete mode 100644 chain/ocr/types/genesis.go delete mode 100644 chain/ocr/types/hooks.go delete mode 100644 chain/ocr/types/msgs.go delete mode 100644 chain/oracle/types/band_ibc.go delete mode 100644 chain/oracle/types/coinbase_oracle.go delete mode 100644 chain/oracle/types/events.go delete mode 100644 chain/oracle/types/expected_keepers.go delete mode 100644 chain/oracle/types/genesis.go delete mode 100644 chain/oracle/types/paramset.go delete mode 100644 chain/oracle/types/pyth.go delete mode 100644 chain/oracle/types/stork.go delete mode 100644 chain/peggy/types/batch.go delete mode 100644 chain/peggy/types/events.go delete mode 100644 chain/peggy/types/expected_keepers.go delete mode 100644 chain/peggy/types/genesis.go delete mode 100644 chain/peggy/types/params_legacy.go delete mode 100644 chain/peggy/types/proposal.go delete mode 100644 chain/peggy/types/proposal.pb.go delete mode 100644 chain/permissions/types/errors.go delete mode 100644 chain/permissions/types/expected_keepers.go delete mode 100644 chain/permissions/types/genesis.go delete mode 100644 chain/permissions/types/msgs.go delete mode 100644 chain/permissions/types/params.go delete mode 100644 chain/permissions/types/types.go delete mode 100644 chain/stream/types/request.go delete mode 100644 chain/stream/types/response.go delete mode 100644 chain/tokenfactory/types/authorityMetadata.go delete mode 100644 chain/tokenfactory/types/denoms.go delete mode 100644 chain/tokenfactory/types/errors.go delete mode 100644 chain/tokenfactory/types/expected_keepers.go delete mode 100644 chain/tokenfactory/types/genesis.go delete mode 100644 chain/tokenfactory/types/gov.go delete mode 100644 chain/tokenfactory/types/gov.pb.go delete mode 100644 chain/tokenfactory/types/keys.go delete mode 100644 chain/tokenfactory/types/msgs.go delete mode 100644 chain/tokenfactory/types/params.go delete mode 100644 chain/types/account.go delete mode 100644 chain/types/chain_id.go delete mode 100644 chain/types/code.go delete mode 100644 chain/types/coin.go delete mode 100644 chain/types/errors.go delete mode 100644 chain/types/gas.go delete mode 100644 chain/types/int.go delete mode 100644 chain/types/params.go delete mode 100644 chain/wasmx/types/exec_callback_msgs.go delete mode 100644 chain/wasmx/types/exec_msgs.go delete mode 100644 chain/wasmx/types/expected_keepers.go delete mode 100644 chain/wasmx/types/genesis.go delete mode 100644 chain/wasmx/types/paramset.go delete mode 100644 chain/wasmx/types/util.go create mode 100644 examples/chain/permissions/1_MsgCreateNamespace/example.go delete mode 100644 examples/chain/permissions/2_DeleteNamespace/example.go create mode 100644 examples/chain/permissions/2_MsgUpdateNamespace/example.go rename examples/chain/permissions/{1_CreateNamespace => 3_MsgUpdateActorRoles}/example.go (64%) delete mode 100644 examples/chain/permissions/3_UpdateNamespace/example.go rename examples/chain/permissions/{6_ClaimVoucher => 4_MsgClaimVoucher}/example.go (100%) delete mode 100644 examples/chain/permissions/4_UpdateNamespaceRoles/example.go delete mode 100644 examples/chain/permissions/5_RevokeNamespaceRoles/example.go rename examples/chain/permissions/query/{5_VouchersForAddress => 10_Vouchers}/example.go (90%) create mode 100644 examples/chain/permissions/query/11_Voucher/example.go create mode 100644 examples/chain/permissions/query/12_PermissionsModuleState/example.go create mode 100644 examples/chain/permissions/query/1_NamespaceDenoms/example.go rename examples/chain/permissions/query/{1_AllNamespaces => 2_Namespaces}/example.go (95%) rename examples/chain/permissions/query/{2_NamespaceByDenom => 3_Namespace}/example.go (94%) rename examples/chain/permissions/query/{3_AddressRoles => 4_RolesByActor}/example.go (92%) rename examples/chain/permissions/query/{4_AddressesByRole => 5_ActorsByRole}/example.go (94%) create mode 100644 examples/chain/permissions/query/6_RoleManagers/example.go create mode 100644 examples/chain/permissions/query/7_RoleManager/example.go create mode 100644 examples/chain/permissions/query/8_PolicyStatuses/example.go create mode 100644 examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go delete mode 100644 exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go delete mode 100644 exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go delete mode 100644 exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go delete mode 100644 exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto create mode 100644 exchange/event_provider_api/pb/event_provider_api.pb.gw.go create mode 100644 exchange/event_provider_api/pb/event_provider_api.proto create mode 100644 exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go create mode 100644 exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go create mode 100644 exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go diff --git a/Makefile b/Makefile index 4492bf96..f1fea3f6 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ all: copy-exchange-client: rm -rf exchange/* + mkdir -p exchange/event_provider_api mkdir -p exchange/health_rpc mkdir -p exchange/accounts_rpc mkdir -p exchange/auction_rpc @@ -16,9 +17,9 @@ copy-exchange-client: mkdir -p exchange/spot_exchange_rpc mkdir -p exchange/trading_rpc + cp -r ../injective-indexer/api/gen/grpc/event_provider_api/pb exchange/event_provider_api/pb cp -r ../injective-indexer/api/gen/grpc/health/pb exchange/health_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_auction_rpc/pb exchange/auction_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_campaign_rpc/pb exchange/campaign_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_derivative_exchange_rpc/pb exchange/derivative_exchange_rpc/pb @@ -31,44 +32,109 @@ copy-exchange-client: cp -r ../injective-indexer/api/gen/grpc/injective_spot_exchange_rpc/pb exchange/spot_exchange_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_trading_rpc/pb exchange/trading_rpc/pb -.PHONY: copy-exchange-client tests coverage - copy-chain-types: - cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 + cp -r ../injective-core/injective-chain/codec chain + cp -r ../injective-core/injective-chain/helpers chain + mkdir -p chain/crypto/codec && cp ../injective-core/injective-chain/crypto/codec/*.go chain/crypto/codec + rm -rf chain/crypto/codec/*test.go rm -rf chain/crypto/codec/*gw.go + mkdir -p chain/crypto/ethsecp256k1 && cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 rm -rf chain/crypto/ethsecp256k1/*test.go rm -rf chain/crypto/ethsecp256k1/*gw.go - cp ../injective-core/injective-chain/codec/types/*.go chain/codec/types - rm -rf chain/codec/types/*test.go rm -rf chain/codec/types/*gw.go - cp ../injective-core/injective-chain/modules/auction/types/*.go chain/auction/types - rm -rf chain/auction/types/*test.go rm -rf chain/auction/types/*gw.go - cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types - rm -rf chain/exchange/types/*test.go rm -rf chain/exchange/types/*gw.go - cp ../injective-core/injective-chain/modules/insurance/types/*.go chain/insurance/types - rm -rf chain/insurance/types/*test.go rm -rf chain/insurance/types/*gw.go - cp ../injective-core/injective-chain/modules/ocr/types/*.go chain/ocr/types - rm -rf chain/ocr/types/*test.go rm -rf chain/ocr/types/*gw.go - cp ../injective-core/injective-chain/modules/oracle/types/*.go chain/oracle/types - cp -r ../injective-core/injective-chain/modules/oracle/bandchain chain/oracle - rm -rf chain/oracle/types/*test.go rm -rf chain/oracle/types/*gw.go - cp ../injective-core/injective-chain/modules/peggy/types/*.go chain/peggy/types - rm -rf chain/peggy/types/*test.go rm -rf chain/peggy/types/*gw.go - cp ../injective-core/injective-chain/modules/permissions/types/*.go chain/permissions/types - rm -rf chain/permissions/types/*test.go rm -rf chain/permissions/types/*gw.go - cp ../injective-core/injective-chain/modules/tokenfactory/types/*.go chain/tokenfactory/types - rm -rf chain/tokenfactory/types/*test.go rm -rf chain/tokenfactory/types/*gw.go - cp ../injective-core/injective-chain/modules/wasmx/types/*.go chain/wasmx/types - rm -rf chain/wasmx/types/*test.go rm -rf chain/wasmx/types/*gw.go - cp ../injective-core/injective-chain/stream/types/*.go chain/stream/types - rm -rf chain/stream/types/*test.go rm -rf chain/stream/types/*gw.go - cp ../injective-core/injective-chain/types/*.go chain/types - rm -rf chain/types/*test.go rm -rf chain/types/*gw.go + mkdir -p chain/crypto/hd && cp ../injective-core/injective-chain/crypto/hd/*.go chain/crypto/hd + rm -rf chain/crypto/hd/*test.go rm -rf chain/crypto/hd/*gw.go + mkdir -p chain/auction/types && \ + cp ../injective-core/injective-chain/modules/auction/types/*.pb.go chain/auction/types && \ + cp ../injective-core/injective-chain/modules/auction/types/codec.go chain/auction/types + mkdir -p chain/exchange/types && \ + cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types && \ + rm -rf chain/exchange/types/*test.go && rm -rf chain/exchange/types/*gw.go + mkdir -p chain/insurance/types && \ + cp ../injective-core/injective-chain/modules/insurance/types/*.pb.go chain/insurance/types && \ + cp ../injective-core/injective-chain/modules/insurance/types/codec.go chain/insurance/types + mkdir -p chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/*.pb.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/errors.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/key.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/params.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/proposal.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/types.go chain/ocr/types && \ + cp ../injective-core/injective-chain/modules/ocr/types/codec.go chain/ocr/types + mkdir -p chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/*.pb.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/codec.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/errors.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/msgs.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \ + cp ../injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types && \ + cp -r ../injective-core/injective-chain/modules/oracle/bandchain chain/oracle + mkdir -p chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/abi_json.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/codec.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/ethereum.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/ethereum_signer.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/errors.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/key.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/msgs.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/params.go chain/peggy/types && \ + cp ../injective-core/injective-chain/modules/peggy/types/types.go chain/peggy/types + mkdir -p chain/permissions/types && \ + cp ../injective-core/injective-chain/modules/permissions/types/*.pb.go chain/permissions/types && \ + cp ../injective-core/injective-chain/modules/permissions/types/codec.go chain/permissions/types + mkdir -p chain/tokenfactory/types && \ + cp ../injective-core/injective-chain/modules/tokenfactory/types/*.pb.go chain/tokenfactory/types && \ + cp ../injective-core/injective-chain/modules/tokenfactory/types/codec.go chain/tokenfactory/types + mkdir -p chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/*.pb.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/codec.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/custom_execution.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/errors.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/key.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/msgs.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/params.go chain/wasmx/types && \ + cp ../injective-core/injective-chain/modules/wasmx/types/proposal.go chain/wasmx/types + mkdir -p chain/stream/types && \ + cp ../injective-core/injective-chain/stream/types/*.pb.go chain/stream/types + mkdir -p chain/types && \ + cp ../injective-core/injective-chain/types/*.pb.go ../injective-core/injective-chain/types/config.go chain/types && \ + cp ../injective-core/injective-chain/types/codec.go chain/types - @echo "👉 Replace injective-core/injective-chain/modules with sdk-go/chain" - @echo "👉 Replace injective-core/injective-chain/codec with sdk-go/chain/codec" - @echo "👉 Replace injective-core/injective-chain/codec/types with sdk-go/chain/codec/types" - @echo "👉 Replace injective-core/injective-chain/types with sdk-go/chain/types" - @echo "👉 Replace injective-core/injective-chain/crypto with sdk-go/chain/crypto" + @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain/modules|github.com/InjectiveLabs/sdk-go/chain|g" {} \; + @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain|github.com/InjectiveLabs/sdk-go/chain|g" {} \; + +#gen: gen-proto +# +#gen-proto: clone-all copy-proto +# buf generate --template buf.gen.chain.yaml +# buf generate --template buf.gen.indexer.yaml +# rm -rf local_proto +# $(call clean_repos) +# +#define clean_repos +# rm -Rf injective-indexer +#endef +# +#clean-all: +# $(call clean_repos) +# +#clone-injective-indexer: +# git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.4 --depth 1 --single-branch +# +#clone-all: clone-injective-indexer +# +#copy-proto: +# rm -rf local_proto +# mkdir -p local_proto +# find ./injective-indexer/api/gen/grpc -type f -name "*.proto" | while read -r file; do \ +# dest="local_proto/$$(basename $$(dirname $$(dirname "$$file")))/$$(basename $$(dirname "$$file"))"; \ +# mkdir -p "$$dest"; \ +# cp "$$file" "$$dest"; \ +# done tests: go test -race ./client/... ./ethereum/... coverage: go test -race -coverprofile=coverage.out -covermode=atomic ./client/... ./ethereum/... + +.PHONY: copy-exchange-client tests coverage \ No newline at end of file diff --git a/buf.gen.chain.yaml b/buf.gen.chain.yaml new file mode 100644 index 00000000..6f848993 --- /dev/null +++ b/buf.gen.chain.yaml @@ -0,0 +1,20 @@ +version: v2 +managed: + enabled: true + disable: + - module: buf.build/googleapis/googleapis + file_option: go_package_prefix +plugins: + - local: protoc-gen-go-grpc + out: ./chain/ + opt: paths=source_relative + - local: protoc-gen-gogo + out: ./chain/ + opt: paths=source_relative +inputs: +# - git_repo: https://github.com/InjectiveLabs/injective-core +# tag: v1.13.0 +# subdir: proto + - git_repo: https://github.com/InjectiveLabs/injective-core + branch: f/permissions-rework + subdir: proto diff --git a/buf.gen.indexer.yaml b/buf.gen.indexer.yaml new file mode 100644 index 00000000..81c925e6 --- /dev/null +++ b/buf.gen.indexer.yaml @@ -0,0 +1,21 @@ +version: v2 +managed: + enabled: true + disable: + - module: buf.build/googleapis/googleapis + file_option: go_package_prefix +plugins: + - remote: buf.build/protocolbuffers/go:v1.34.0 + out: ./exchange/ + opt: paths=source_relative + - remote: buf.build/grpc/go:v1.3.0 + out: ./exchange/ + opt: paths=source_relative +# - local: protoc-gen-go +# out: ./exchange/ +# opt: paths=source_relative +# - local: protoc-gen-go-grpc +# out: ./exchange/ +# opt: paths=source_relative +inputs: + - directory: local_proto diff --git a/chain/auction/types/auction.pb.go b/chain/auction/types/auction.pb.go index 164a7820..25703a53 100644 --- a/chain/auction/types/auction.pb.go +++ b/chain/auction/types/auction.pb.go @@ -32,6 +32,9 @@ type Params struct { AuctionPeriod int64 `protobuf:"varint,1,opt,name=auction_period,json=auctionPeriod,proto3" json:"auction_period,omitempty"` // min_next_bid_increment_rate defines the minimum increment rate for new bids MinNextBidIncrementRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=min_next_bid_increment_rate,json=minNextBidIncrementRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_next_bid_increment_rate"` + // inj_basket_max_cap defines the maximum cap for INJ contained in an auction + // basket + InjBasketMaxCap cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=inj_basket_max_cap,json=injBasketMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_basket_max_cap"` } func (m *Params) Reset() { *m = Params{} } @@ -365,43 +368,45 @@ func init() { } var fileDescriptor_49edfee5f1ef4b5a = []byte{ - // 567 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0x73, 0x18, 0x22, 0x7a, 0xa8, 0x40, 0xad, 0x8a, 0xa6, 0xad, 0x64, 0x47, 0x46, 0xa8, - 0x01, 0xa9, 0x3e, 0x4a, 0xb7, 0x6e, 0x18, 0x10, 0xaa, 0x14, 0x50, 0x65, 0x98, 0x58, 0xac, 0xb3, - 0xfd, 0xe4, 0x5c, 0x93, 0xbb, 0x8b, 0x7c, 0xe7, 0xa4, 0x19, 0x11, 0x5b, 0x59, 0xf8, 0x13, 0x98, - 0x61, 0xe1, 0x4f, 0x60, 0xec, 0xd8, 0x11, 0x31, 0x04, 0x94, 0x0c, 0x20, 0x46, 0xfe, 0x02, 0x14, - 0xff, 0x88, 0xbc, 0x20, 0x31, 0x74, 0x60, 0x49, 0xfc, 0xbe, 0xf7, 0xee, 0xfb, 0x3e, 0xef, 0x49, - 0xf7, 0xf0, 0x0e, 0x13, 0xc7, 0x10, 0x69, 0x36, 0x02, 0x42, 0xb3, 0x48, 0x33, 0x29, 0xc8, 0x68, - 0x2f, 0x04, 0x4d, 0xf7, 0xaa, 0xd8, 0x1d, 0xa6, 0x52, 0x4b, 0x73, 0x73, 0x99, 0xe8, 0x56, 0x07, - 0x65, 0xe2, 0xd6, 0x7a, 0x22, 0x13, 0x99, 0x67, 0x91, 0xc5, 0x57, 0x71, 0x61, 0xcb, 0x8a, 0xa4, - 0xe2, 0x52, 0x91, 0x90, 0x2a, 0x58, 0x7a, 0x46, 0x92, 0x95, 0x86, 0x5b, 0x6b, 0x94, 0x33, 0x21, - 0x49, 0xfe, 0x5b, 0x48, 0xce, 0x47, 0x84, 0x9b, 0x47, 0x34, 0xa5, 0x5c, 0x99, 0x77, 0xf0, 0xf5, - 0xb2, 0x4c, 0x30, 0x84, 0x94, 0xc9, 0xb8, 0x85, 0xda, 0xa8, 0x63, 0xf8, 0xab, 0xa5, 0x7a, 0x94, - 0x8b, 0x26, 0xc5, 0xdb, 0x9c, 0x89, 0x40, 0xc0, 0x89, 0x0e, 0x42, 0x16, 0x07, 0x4c, 0x44, 0x29, - 0x70, 0x10, 0x3a, 0x48, 0xa9, 0x86, 0xd6, 0xa5, 0x36, 0xea, 0xac, 0x78, 0xb7, 0xcf, 0xa6, 0x76, - 0xe3, 0xeb, 0xd4, 0xde, 0x2e, 0x88, 0x54, 0xdc, 0x77, 0x99, 0x24, 0x9c, 0xea, 0x9e, 0xdb, 0x85, - 0x84, 0x46, 0x93, 0xc7, 0x10, 0xf9, 0x1b, 0x9c, 0x89, 0xe7, 0x70, 0xa2, 0x3d, 0x16, 0x1f, 0x56, - 0x26, 0x3e, 0xd5, 0x70, 0xb0, 0xf1, 0xf3, 0xbd, 0x8d, 0x4e, 0x7f, 0x7c, 0xba, 0x57, 0x01, 0x91, - 0x02, 0xd1, 0x79, 0x83, 0xb0, 0xe1, 0xb1, 0xd8, 0xdc, 0xc7, 0xcd, 0x90, 0xc5, 0x31, 0xa4, 0x39, - 0xe2, 0x8a, 0xb7, 0xfd, 0x6b, 0x6a, 0x97, 0xca, 0xef, 0xa9, 0xbd, 0x3a, 0xa1, 0x7c, 0x70, 0xe0, - 0x14, 0xb1, 0xe3, 0x97, 0x07, 0xe6, 0x53, 0xdc, 0xa4, 0x5c, 0x66, 0x42, 0x97, 0x8c, 0xa4, 0x64, - 0xdc, 0x49, 0x98, 0xee, 0x65, 0xa1, 0x1b, 0x49, 0x4e, 0xca, 0x01, 0x16, 0x7f, 0xbb, 0x2a, 0xee, - 0x13, 0x3d, 0x19, 0x82, 0x72, 0x1f, 0x49, 0x26, 0xfc, 0xf2, 0xba, 0x73, 0x8a, 0xf0, 0x5a, 0x97, - 0x2a, 0xfd, 0xb0, 0x80, 0xf3, 0x41, 0x65, 0x03, 0x6d, 0xde, 0xc2, 0xcd, 0x31, 0x13, 0xa2, 0x62, - 0xf2, 0xcb, 0xe8, 0xc2, 0xca, 0x9a, 0xeb, 0xf8, 0x4a, 0x2a, 0x33, 0x11, 0xb7, 0x8c, 0x36, 0xea, - 0x5c, 0xf6, 0x8b, 0xc0, 0x79, 0x8d, 0xf0, 0xd5, 0x27, 0x23, 0x10, 0x8b, 0x29, 0x2e, 0x18, 0xea, - 0x73, 0xb9, 0xf0, 0xd6, 0xff, 0xc2, 0xf0, 0x16, 0x61, 0x33, 0x67, 0xf8, 0x2f, 0x26, 0xf2, 0x19, - 0xe1, 0xb5, 0x3a, 0xcd, 0x0b, 0x4d, 0xd3, 0x5a, 0x2e, 0xaa, 0xe5, 0x9a, 0x77, 0xf1, 0x4d, 0x10, - 0x31, 0x13, 0x49, 0xa0, 0x19, 0x07, 0xa5, 0x29, 0x1f, 0xe6, 0x50, 0x86, 0x7f, 0xa3, 0xd0, 0x5f, - 0x56, 0xb2, 0x79, 0x8c, 0xb1, 0x80, 0x71, 0x10, 0x52, 0xd5, 0x07, 0xdd, 0x32, 0xda, 0x46, 0xe7, - 0xda, 0x83, 0x4d, 0xb7, 0x00, 0x74, 0x17, 0x2f, 0xae, 0x7a, 0x9c, 0x39, 0xa3, 0x77, 0x7f, 0xd1, - 0xd4, 0x87, 0x6f, 0x76, 0xe7, 0x1f, 0x9b, 0x52, 0xfe, 0x8a, 0x80, 0xb1, 0x97, 0xbb, 0x7b, 0xc9, - 0xd9, 0xcc, 0x42, 0xe7, 0x33, 0x0b, 0x7d, 0x9f, 0x59, 0xe8, 0xdd, 0xdc, 0x6a, 0x9c, 0xcf, 0xad, - 0xc6, 0x97, 0xb9, 0xd5, 0x78, 0xf5, 0xac, 0x66, 0x77, 0x58, 0xad, 0x87, 0x2e, 0x0d, 0x15, 0x59, - 0x2e, 0x8b, 0xdd, 0x48, 0xa6, 0x50, 0x0f, 0x7b, 0x94, 0x09, 0xc2, 0x65, 0x9c, 0x0d, 0x40, 0x2d, - 0x57, 0x4e, 0x5e, 0x39, 0x6c, 0xe6, 0x5b, 0x60, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, - 0x8c, 0x47, 0xe7, 0x94, 0x04, 0x00, 0x00, + // 607 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xb1, 0x4f, 0x14, 0x4f, + 0x14, 0xbe, 0xf9, 0xdd, 0xcf, 0x8b, 0x8c, 0x41, 0x64, 0x82, 0x72, 0x40, 0xdc, 0x23, 0x67, 0x0c, + 0x68, 0xc2, 0x8e, 0x48, 0x47, 0xe7, 0xa2, 0x05, 0x06, 0x0c, 0x59, 0xad, 0x6c, 0x36, 0xb3, 0xbb, + 0x2f, 0xc7, 0x1c, 0xcc, 0xcc, 0x66, 0x67, 0x16, 0x8e, 0x7f, 0xc1, 0xca, 0x3f, 0xc0, 0x18, 0x1b, + 0x2d, 0xac, 0xfc, 0x13, 0x2c, 0x29, 0x29, 0x8d, 0xc5, 0x69, 0xa0, 0xd0, 0x58, 0xda, 0xd8, 0x9a, + 0x9b, 0x9d, 0xbd, 0x6c, 0x62, 0x34, 0x56, 0xc4, 0xe6, 0x6e, 0xdf, 0x37, 0xef, 0x7d, 0xf3, 0x7d, + 0xef, 0x65, 0x1e, 0x5e, 0xe2, 0xb2, 0x0f, 0x89, 0xe1, 0x07, 0x40, 0x59, 0x91, 0x18, 0xae, 0x24, + 0x3d, 0x58, 0x8d, 0xc1, 0xb0, 0xd5, 0x2a, 0xf6, 0xb3, 0x5c, 0x19, 0x45, 0xe6, 0xc6, 0x89, 0x7e, + 0x75, 0xe0, 0x12, 0xe7, 0x67, 0x7a, 0xaa, 0xa7, 0x6c, 0x16, 0x1d, 0x7d, 0x95, 0x05, 0xf3, 0x5e, + 0xa2, 0xb4, 0x50, 0x9a, 0xc6, 0x4c, 0xc3, 0x98, 0x33, 0x51, 0xdc, 0x11, 0xce, 0x4f, 0x33, 0xc1, + 0xa5, 0xa2, 0xf6, 0xb7, 0x84, 0xba, 0x3f, 0x10, 0x6e, 0xed, 0xb0, 0x9c, 0x09, 0x4d, 0x6e, 0xe2, + 0xcb, 0xee, 0x9a, 0x28, 0x83, 0x9c, 0xab, 0xb4, 0x8d, 0x16, 0xd1, 0x72, 0x33, 0x9c, 0x74, 0xe8, + 0x8e, 0x05, 0x09, 0xc3, 0x0b, 0x82, 0xcb, 0x48, 0xc2, 0xc0, 0x44, 0x31, 0x4f, 0x23, 0x2e, 0x93, + 0x1c, 0x04, 0x48, 0x13, 0xe5, 0xcc, 0x40, 0xfb, 0xbf, 0x45, 0xb4, 0x3c, 0x11, 0xdc, 0x38, 0x1e, + 0x76, 0x1a, 0x1f, 0x87, 0x9d, 0x85, 0x52, 0x91, 0x4e, 0xf7, 0x7c, 0xae, 0xa8, 0x60, 0x66, 0xd7, + 0xdf, 0x82, 0x1e, 0x4b, 0x8e, 0xee, 0x43, 0x12, 0xce, 0x0a, 0x2e, 0x1f, 0xc1, 0xc0, 0x04, 0x3c, + 0xdd, 0xac, 0x48, 0x42, 0x66, 0x80, 0x3c, 0xc4, 0x84, 0xcb, 0x7e, 0x14, 0x33, 0xbd, 0x07, 0x26, + 0x12, 0x6c, 0x10, 0x25, 0x2c, 0x6b, 0x37, 0x2d, 0xf3, 0x75, 0xc7, 0x7c, 0xf5, 0x57, 0xe6, 0x4d, + 0x69, 0xc2, 0x29, 0x2e, 0xfb, 0x81, 0xad, 0xdb, 0x66, 0x83, 0x0d, 0x96, 0xad, 0xcf, 0x7e, 0x7d, + 0xd5, 0x41, 0xcf, 0xbe, 0xbc, 0xbb, 0x5d, 0x99, 0xa3, 0xa5, 0xdd, 0xee, 0x4b, 0x84, 0x9b, 0x01, + 0x4f, 0xc9, 0x1a, 0x6e, 0xc5, 0x3c, 0x4d, 0x21, 0xb7, 0x76, 0x27, 0x82, 0x85, 0x6f, 0xc3, 0x8e, + 0x43, 0xbe, 0x0f, 0x3b, 0x93, 0x47, 0x4c, 0xec, 0xaf, 0x77, 0xcb, 0xb8, 0x1b, 0xba, 0x03, 0x12, + 0xe3, 0x16, 0x13, 0xaa, 0x90, 0xc6, 0xfa, 0xbd, 0x74, 0x77, 0xce, 0x2f, 0xe5, 0xf8, 0xa3, 0xd6, + 0x57, 0x53, 0xf2, 0x37, 0x14, 0x97, 0x01, 0x75, 0x82, 0x97, 0x7a, 0xdc, 0xec, 0x16, 0xb1, 0x9f, + 0x28, 0x41, 0xdd, 0x9c, 0xca, 0xbf, 0x15, 0x9d, 0xee, 0x51, 0x73, 0x94, 0x81, 0xb6, 0x05, 0xa1, + 0x63, 0xee, 0xbe, 0x46, 0x78, 0x7a, 0x8b, 0x69, 0x73, 0xaf, 0xd4, 0x1d, 0x82, 0x2e, 0xf6, 0x0d, + 0xb9, 0x86, 0x5b, 0x87, 0x5c, 0xca, 0x4a, 0x6e, 0xe8, 0xa2, 0xf3, 0x50, 0x44, 0x66, 0xf0, 0x85, + 0x5c, 0x15, 0x32, 0xb5, 0xa3, 0xf8, 0x3f, 0x2c, 0x83, 0xee, 0x0b, 0x84, 0x2f, 0x3e, 0x38, 0x00, + 0x39, 0x9a, 0xe3, 0x48, 0x5e, 0xbd, 0x9b, 0xe7, 0xd9, 0xb0, 0xdf, 0xc8, 0x7b, 0x83, 0x30, 0xb1, + 0xf2, 0xfe, 0xf5, 0x3e, 0xbe, 0x47, 0x78, 0xba, 0x2e, 0xf4, 0xb1, 0x61, 0x79, 0x2d, 0x17, 0xd5, + 0x72, 0xc9, 0x2d, 0x7c, 0x05, 0x64, 0xca, 0x65, 0x2f, 0x32, 0x5c, 0x80, 0x36, 0x4c, 0x64, 0x56, + 0x6f, 0x33, 0x9c, 0x2a, 0xf1, 0x27, 0x15, 0x4c, 0xfa, 0x18, 0x4b, 0x38, 0x74, 0x8f, 0xa9, 0xdd, + 0x5c, 0x6c, 0xfe, 0xd9, 0xd4, 0x9d, 0x91, 0xa9, 0xb7, 0x9f, 0x3a, 0xcb, 0x7f, 0x69, 0x4a, 0x87, + 0x13, 0x12, 0x0e, 0xcb, 0x27, 0x17, 0xf4, 0x8e, 0x4f, 0x3d, 0x74, 0x72, 0xea, 0xa1, 0xcf, 0xa7, + 0x1e, 0x7a, 0x7e, 0xe6, 0x35, 0x4e, 0xce, 0xbc, 0xc6, 0x87, 0x33, 0xaf, 0xf1, 0x74, 0xbb, 0x46, + 0xb7, 0x59, 0xad, 0xb5, 0x2d, 0x16, 0x6b, 0x3a, 0x5e, 0x72, 0x2b, 0x89, 0xca, 0xa1, 0x1e, 0xee, + 0x32, 0x2e, 0xa9, 0x50, 0x69, 0xb1, 0x0f, 0x7a, 0xbc, 0x2a, 0xed, 0xcd, 0x71, 0xcb, 0x6e, 0xaf, + 0xb5, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x60, 0x2e, 0x41, 0x2d, 0x4c, 0x05, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -429,6 +434,9 @@ func (this *Params) Equal(that interface{}) bool { if !this.MinNextBidIncrementRate.Equal(that1.MinNextBidIncrementRate) { return false } + if !this.InjBasketMaxCap.Equal(that1.InjBasketMaxCap) { + return false + } return true } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -451,6 +459,16 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.InjBasketMaxCap.Size() + i -= size + if _, err := m.InjBasketMaxCap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintAuction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a { size := m.MinNextBidIncrementRate.Size() i -= size @@ -713,6 +731,8 @@ func (m *Params) Size() (n int) { } l = m.MinNextBidIncrementRate.Size() n += 1 + l + sovAuction(uint64(l)) + l = m.InjBasketMaxCap.Size() + n += 1 + l + sovAuction(uint64(l)) return n } @@ -894,6 +914,40 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InjBasketMaxCap", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAuction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAuction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InjBasketMaxCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAuction(dAtA[iNdEx:]) @@ -980,7 +1034,7 @@ func (m *Bid) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -990,16 +1044,15 @@ func (m *Bid) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1096,7 +1149,7 @@ func (m *LastAuctionResult) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1106,16 +1159,15 @@ func (m *LastAuctionResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1231,7 +1283,7 @@ func (m *EventBid) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1241,16 +1293,15 @@ func (m *EventBid) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } @@ -1366,7 +1417,7 @@ func (m *EventAuctionResult) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowAuction @@ -1376,16 +1427,15 @@ func (m *EventAuctionResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthAuction } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthAuction } diff --git a/chain/auction/types/errors.go b/chain/auction/types/errors.go deleted file mode 100644 index c8e7ba2e..00000000 --- a/chain/auction/types/errors.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -var ( - ErrBidInvalid = errors.Register(ModuleName, 1, "invalid bid denom") - ErrBidRound = errors.Register(ModuleName, 2, "invalid bid round") -) diff --git a/chain/auction/types/events.go b/chain/auction/types/events.go deleted file mode 100644 index 2789dc3c..00000000 --- a/chain/auction/types/events.go +++ /dev/null @@ -1,6 +0,0 @@ -package types - -// Auction module event types -const ( - EventTypeNewBid = "new_bid" -) diff --git a/chain/auction/types/expected_keepers.go b/chain/auction/types/expected_keepers.go deleted file mode 100644 index e9b959b5..00000000 --- a/chain/auction/types/expected_keepers.go +++ /dev/null @@ -1,16 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error -} diff --git a/chain/auction/types/genesis.go b/chain/auction/types/genesis.go deleted file mode 100644 index 4e5fbf60..00000000 --- a/chain/auction/types/genesis.go +++ /dev/null @@ -1,21 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - AuctionRound: 0, - HighestBid: nil, - AuctionEndingTimestamp: 0, - } -} diff --git a/chain/auction/types/key.go b/chain/auction/types/key.go deleted file mode 100644 index 0b151360..00000000 --- a/chain/auction/types/key.go +++ /dev/null @@ -1,16 +0,0 @@ -package types - -const ( - ModuleName = "auction" - StoreKey = ModuleName - TStoreKey = "transient_auction" -) - -var ( - // Keys for store prefixes - BidsKey = []byte{0x01} - AuctionRoundKey = []byte{0x03} - KeyEndingTimeStamp = []byte{0x04} - KeyLastAuctionResult = []byte{0x05} - ParamsKey = []byte{0x10} -) diff --git a/chain/auction/types/msgs.go b/chain/auction/types/msgs.go deleted file mode 100644 index 987533e0..00000000 --- a/chain/auction/types/msgs.go +++ /dev/null @@ -1,95 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" -) - -const ( - RouterKey = ModuleName - - TypeMsgBid = "bid" - TypeMsgUpdateParams = "updateParams" -) - -var ( - _ sdk.Msg = &MsgBid{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgBid) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgBid) Type() string { return TypeMsgBid } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgBid) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if !msg.BidAmount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.BidAmount.String()) - } - - if !msg.BidAmount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.BidAmount.String()) - } - - if msg.BidAmount.Denom != chaintypes.InjectiveCoin { - return errors.Wrap(ErrBidInvalid, msg.BidAmount.Denom) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgBid) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgBid) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} diff --git a/chain/auction/types/params.go b/chain/auction/types/params.go deleted file mode 100644 index fe3f865b..00000000 --- a/chain/auction/types/params.go +++ /dev/null @@ -1,103 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/math" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -var _ paramtypes.ParamSet = &Params{} - -// Auction params default values -var ( - // DefaultAuctionPeriod represents the number of seconds in 1 week - DefaultAuctionPeriod int64 = 60 * 60 * 24 * 7 - // DefaultMinNextBidIncrementRate represents default min increment rate 0.25% - DefaultMinNextBidIncrementRate = math.LegacyNewDecWithPrec(25, 4) -) - -// Parameter keys -var ( - KeyAuctionPeriod = []byte("AuctionPeriod") - KeyMinNextBidIncrementRate = []byte("MinNextBidIncrementRate") -) - -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// NewParams creates a new Params instance -func NewParams( - auctionPeriod int64, - minNextBidIncrementRate math.LegacyDec, -) Params { - return Params{ - AuctionPeriod: auctionPeriod, - MinNextBidIncrementRate: minNextBidIncrementRate, - } -} - -// ParamSetPairs returns the parameter set pairs. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyAuctionPeriod, &p.AuctionPeriod, validateAuctionPeriodDuration), - paramtypes.NewParamSetPair(KeyMinNextBidIncrementRate, &p.MinNextBidIncrementRate, validateMinNextBidIncrementRate), - } -} - -// DefaultParams returns a default set of parameters. -func DefaultParams() Params { - return Params{ - AuctionPeriod: DefaultAuctionPeriod, - MinNextBidIncrementRate: DefaultMinNextBidIncrementRate, - } -} - -// Validate performs basic validation on auction parameters. -func (p Params) Validate() error { - if err := validateAuctionPeriodDuration(p.AuctionPeriod); err != nil { - return err - } - - if err := validateMinNextBidIncrementRate(p.MinNextBidIncrementRate); err != nil { - return err - } - - return nil -} - -func validateAuctionPeriodDuration(i interface{}) error { - v, ok := i.(int64) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v == 0 { - return fmt.Errorf("AuctionPeriodDuration must be positive: %d", v) - } - - return nil -} - -func validateMinNextBidIncrementRate(i interface{}) error { - v, ok := i.(math.LegacyDec) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v.IsNil() { - return fmt.Errorf("MinNextBidIncrementRate cannot be nil") - } - - if v.Equal(math.LegacyZeroDec()) { - return fmt.Errorf("MinNextBidIncrementRate must be positive: %s", v.String()) - } - - if v.GT(math.LegacyNewDecWithPrec(2, 1)) { // > 20% - return fmt.Errorf("MinNextBidIncrementRate must be equal or less than 20 percent: %s", v.String()) - } - - return nil -} diff --git a/chain/auction/types/paramset.go b/chain/auction/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/auction/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/codec/codec.go b/chain/codec/codec.go index cd1e4e12..a557203b 100644 --- a/chain/codec/codec.go +++ b/chain/codec/codec.go @@ -14,6 +14,7 @@ import ( func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { sdk.RegisterLegacyAminoCodec(cdc) cryptocodec.RegisterCrypto(cdc) + codec.RegisterEvidences(cdc) } // RegisterInterfaces registers Interfaces from types, crypto, and SDK std. diff --git a/chain/crypto/codec/amino.go b/chain/crypto/codec/amino.go index f611be2c..7f5b9963 100644 --- a/chain/crypto/codec/amino.go +++ b/chain/crypto/codec/amino.go @@ -3,7 +3,6 @@ package codec import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" - cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" diff --git a/chain/crypto/keyring/options.go b/chain/crypto/keyring/options.go deleted file mode 100644 index 333bc4f9..00000000 --- a/chain/crypto/keyring/options.go +++ /dev/null @@ -1,44 +0,0 @@ -package keyring - -import ( - "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/cosmos/cosmos-sdk/crypto/types" - - cosmoshd "github.com/cosmos/cosmos-sdk/crypto/hd" - - "github.com/InjectiveLabs/sdk-go/chain/crypto/ethsecp256k1" - "github.com/InjectiveLabs/sdk-go/chain/crypto/hd" -) - -// AppName defines the Ledger app used for signing. Evmos uses the Ethereum app -const AppName = "Ethereum" - -var ( - // SupportedAlgorithms defines the list of signing algorithms used on Injective: - // - eth_secp256k1 (Ethereum) - // - secp256k1 (Tendermint) - SupportedAlgorithms = keyring.SigningAlgoList{hd.EthSecp256k1, cosmoshd.Secp256k1} - // SupportedAlgorithmsLedger defines the list of signing algorithms used on Evmos for the Ledger device: - // - secp256k1 (in order to comply with Cosmos SDK) - // The Ledger derivation function is responsible for all signing and address generation. - SupportedAlgorithmsLedger = keyring.SigningAlgoList{hd.EthSecp256k1} - // LedgerDerivation defines the Evmos Ledger Go derivation (Ethereum app with EIP-712 signing) - // LedgerDerivation = ledger.EvmosLedgerDerivation() - // CreatePubkey uses the ethsecp256k1 pubkey with Ethereum address generation and keccak hashing - CreatePubkey = func(key []byte) types.PubKey { return ðsecp256k1.PubKey{Key: key} } - // SkipDERConversion represents whether the signed Ledger output should skip conversion from DER to BER. - // This is set to true for signing performed by the Ledger Ethereum app. - SkipDERConversion = true -) - -// EthSecp256k1Option defines a function keys options for the ethereum Secp256k1 curve. -// It supports eth_secp256k1 keys for accounts. -func EthSecp256k1Option() keyring.Option { - return func(options *keyring.Options) { - options.SupportedAlgos = SupportedAlgorithms - options.SupportedAlgosLedger = SupportedAlgorithmsLedger - options.LedgerCreateKey = CreatePubkey - options.LedgerAppName = AppName - options.LedgerSigSkipDERConv = SkipDERConversion - } -} diff --git a/chain/exchange/types/common_utils.go b/chain/exchange/types/common_utils.go index c949b754..7b0c63c9 100644 --- a/chain/exchange/types/common_utils.go +++ b/chain/exchange/types/common_utils.go @@ -322,39 +322,6 @@ func IntBytesToInt(bz []byte) math.Int { return math.NewIntFromBigInt(new(big.Int).SetBytes(bz)) } -func HasDuplicates(slice []string) bool { - seen := make(map[string]struct{}) - for _, item := range slice { - if _, ok := seen[item]; ok { - return true - } - seen[item] = struct{}{} - } - return false -} - -func HasDuplicatesHexHash(slice []string) bool { - seen := make(map[common.Hash]struct{}) - for _, item := range slice { - if _, ok := seen[common.HexToHash(item)]; ok { - return true - } - seen[common.HexToHash(item)] = struct{}{} - } - return false -} - -func HasDuplicatesCoin(slice []sdk.Coin) bool { - seen := make(map[string]struct{}) - for _, item := range slice { - if _, ok := seen[item.Denom]; ok { - return true - } - seen[item.Denom] = struct{}{} - } - return false -} - func HasDuplicatesOrder(slice []*OrderData) bool { seenHashes := make(map[string]struct{}) seenCids := make(map[string]struct{}) diff --git a/chain/exchange/types/derivative_orders.go b/chain/exchange/types/derivative_orders.go index 630b470a..e5f9fa42 100644 --- a/chain/exchange/types/derivative_orders.go +++ b/chain/exchange/types/derivative_orders.go @@ -52,6 +52,14 @@ func (m *DerivativeLimitOrder) ToTrimmed() *TrimmedDerivativeLimitOrder { Cid: m.Cid(), } } +func (m *DerivativeLimitOrder) ToStandardized() *TrimmedLimitOrder { + return &TrimmedLimitOrder{ + Price: m.OrderInfo.Price, + Quantity: m.OrderInfo.Quantity, + OrderHash: common.BytesToHash(m.OrderHash).Hex(), + SubaccountId: m.OrderInfo.SubaccountId, + } +} func (o *DerivativeMarketOrderCancel) GetCancelDepositDelta() *DepositDelta { order := o.MarketOrder diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index b7b6035b..99bb5be8 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -81,7 +81,7 @@ var ( ErrSenderIsNotAnAdmin = errors.Register(ModuleName, 74, "sender should be a market admin") ErrMarketAlreadyScheduledToSettle = errors.Register(ModuleName, 75, "market is already scheduled to settle") ErrGenericMarketNotFound = errors.Register(ModuleName, 76, "market not found") - ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be below 1 or above max scale factor") + ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be higher than max scale factor") ErrInvalidState = errors.Register(ModuleName, 78, "state is invalid") ErrTransientOrdersUpToCancelNotSupported = errors.Register(ModuleName, 79, "transient orders up to cancellation not supported") ErrInvalidTrade = errors.Register(ModuleName, 80, "invalid trade") @@ -109,4 +109,5 @@ var ( ErrInvalidStakeGrant = errors.Register(ModuleName, 102, "invalid stake grant") ErrInsufficientStake = errors.Register(ModuleName, 103, "insufficient stake for grant") ErrInvalidPermissions = errors.Register(ModuleName, 104, "invalid permissions") + ErrDenomDecimalsDoNotMatch = errors.Register(ModuleName, 105, "the decimals specified for the denom is incorrect") ) diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index ff40e9d8..4417ebc5 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -512,6 +512,8 @@ type DerivativeMarket struct { Admin string `protobuf:"bytes,18,opt,name=admin,proto3" json:"admin,omitempty"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} } @@ -590,6 +592,8 @@ type BinaryOptionsMarket struct { MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} } @@ -981,6 +985,10 @@ type SpotMarket struct { Admin string `protobuf:"bytes,12,opt,name=admin,proto3" json:"admin,omitempty"` // level of admin permissions AdminPermissions uint32 `protobuf:"varint,13,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,14,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,15,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarket) Reset() { *m = SpotMarket{} } @@ -1065,6 +1073,20 @@ func (m *SpotMarket) GetAdminPermissions() uint32 { return 0 } +func (m *SpotMarket) GetBaseDecimals() uint32 { + if m != nil { + return m.BaseDecimals + } + return 0 +} + +func (m *SpotMarket) GetQuoteDecimals() uint32 { + if m != nil { + return m.QuoteDecimals + } + return 0 +} + // A subaccount's deposit for a given base currency type Deposit struct { AvailableBalance cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=available_balance,json=availableBalance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"available_balance"` @@ -3344,285 +3366,287 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4438 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x6f, 0x63, 0x59, - 0x56, 0x77, 0x1d, 0x3b, 0x17, 0x7b, 0xf9, 0x12, 0xe7, 0xe4, 0xe6, 0x24, 0x55, 0x89, 0xdb, 0xd5, - 0x35, 0x9d, 0xae, 0xee, 0x4e, 0xa6, 0xfa, 0xfb, 0x7a, 0xd4, 0xd3, 0xa3, 0xd1, 0xb4, 0x13, 0x27, - 0x55, 0xa6, 0x73, 0x9b, 0xe3, 0xa4, 0xa1, 0x66, 0x34, 0x73, 0xb4, 0x73, 0xce, 0x4e, 0xbc, 0x2b, - 0xe7, 0xe2, 0x3a, 0xfb, 0x38, 0x95, 0x34, 0x42, 0xe2, 0xa1, 0x85, 0x98, 0x00, 0x62, 0x78, 0x40, - 0x48, 0x48, 0x41, 0xc3, 0x03, 0x42, 0xf0, 0x02, 0xef, 0xf0, 0x80, 0x84, 0x80, 0x79, 0x18, 0xa4, - 0x79, 0x40, 0x02, 0x21, 0x31, 0xa0, 0x6e, 0x24, 0x10, 0x9a, 0x3f, 0x01, 0x21, 0xb4, 0x2f, 0xe7, - 0x62, 0x3b, 0x71, 0xec, 0x24, 0x03, 0x03, 0xbc, 0x54, 0x79, 0x5f, 0xd6, 0x6f, 0xed, 0xbd, 0xd6, - 0xda, 0x6b, 0xad, 0x7d, 0x39, 0x81, 0x37, 0x89, 0xf3, 0x02, 0x1b, 0x3e, 0x39, 0xc1, 0x2b, 0xf8, - 0xd4, 0x68, 0x20, 0xe7, 0x08, 0xaf, 0x9c, 0x3c, 0x39, 0xc0, 0x3e, 0x7a, 0x12, 0x56, 0x2c, 0x37, - 0x3d, 0xd7, 0x77, 0xd5, 0xb9, 0xb0, 0xeb, 0x72, 0xd8, 0x22, 0xbb, 0xce, 0x4d, 0x1e, 0xb9, 0x47, - 0x2e, 0xef, 0xb6, 0xc2, 0x7e, 0x09, 0x8a, 0xb9, 0x05, 0xc3, 0xa5, 0xb6, 0x4b, 0x57, 0x0e, 0x10, - 0x8d, 0x50, 0x0d, 0x97, 0x38, 0xb2, 0xfd, 0x51, 0xc4, 0xdc, 0xf5, 0x90, 0x61, 0x45, 0x9d, 0x44, - 0x51, 0x76, 0x1b, 0x47, 0x36, 0x71, 0xdc, 0x15, 0xfe, 0xaf, 0xa8, 0x2a, 0xff, 0xc3, 0x14, 0x8c, - 0xec, 0x22, 0x0f, 0xd9, 0x54, 0xc5, 0xb0, 0x48, 0x9b, 0xae, 0xaf, 0xdb, 0xc8, 0x3b, 0xc6, 0xbe, - 0x4e, 0x1c, 0xea, 0x23, 0xc7, 0xd7, 0x2d, 0x42, 0x7d, 0xe2, 0x1c, 0xe9, 0x87, 0x18, 0x17, 0x95, - 0x92, 0xb2, 0x94, 0x79, 0x77, 0x76, 0x59, 0x0c, 0x67, 0x99, 0x0d, 0x27, 0x18, 0xf9, 0xf2, 0x9a, - 0x4b, 0x9c, 0xd5, 0xa1, 0xef, 0xff, 0x68, 0xf1, 0x9e, 0x36, 0xcf, 0x70, 0xb6, 0x38, 0x4c, 0x4d, - 0xa0, 0x6c, 0x0a, 0x90, 0x0d, 0x8c, 0xd5, 0x97, 0xf0, 0xc8, 0xc4, 0x1e, 0x39, 0x41, 0x6c, 0xb8, - 0xbd, 0x98, 0x25, 0xfa, 0x63, 0xf6, 0x5a, 0x84, 0x76, 0x15, 0x4b, 0x04, 0xf3, 0x26, 0x3e, 0x44, - 0x2d, 0xcb, 0xd7, 0xe5, 0x0c, 0x8f, 0xb1, 0xc7, 0x78, 0xe8, 0x1e, 0xf2, 0x71, 0x31, 0x59, 0x52, - 0x96, 0xd2, 0xab, 0x0f, 0x19, 0xda, 0xdf, 0xff, 0x68, 0x71, 0x5e, 0xf0, 0xa3, 0xe6, 0xf1, 0x32, - 0x71, 0x57, 0x6c, 0xe4, 0x37, 0x96, 0x37, 0xf1, 0x11, 0x32, 0xce, 0xaa, 0xd8, 0xd0, 0x66, 0x24, - 0x4e, 0x9d, 0x4f, 0xf0, 0x18, 0x7b, 0x1b, 0x18, 0x6b, 0xc8, 0xef, 0x66, 0xe1, 0xb7, 0xb3, 0x18, - 0xba, 0x19, 0x8b, 0xbd, 0x38, 0x0b, 0x1b, 0x5e, 0x0b, 0x58, 0xb4, 0x09, 0xb0, 0x8d, 0xd1, 0x70, - 0xff, 0x8c, 0x1e, 0x48, 0xb4, 0x6a, 0x4c, 0x7e, 0xd7, 0xb2, 0xeb, 0x98, 0xd7, 0xc8, 0x6d, 0xd8, - 0xb5, 0xcd, 0xce, 0x84, 0xfb, 0x01, 0x3b, 0xe2, 0x10, 0x9f, 0x20, 0x8b, 0xd9, 0xc6, 0x11, 0x71, - 0x18, 0x23, 0xe2, 0x16, 0x47, 0xfb, 0xe7, 0x34, 0x2b, 0x81, 0x6a, 0x02, 0x67, 0x8b, 0xc3, 0x68, - 0x0c, 0x45, 0xb5, 0xa0, 0x14, 0x70, 0xb1, 0x11, 0x71, 0x7c, 0xec, 0x20, 0xc7, 0xc0, 0xed, 0x9c, - 0x52, 0x83, 0xcf, 0x69, 0x2b, 0xc2, 0x8a, 0x73, 0x7b, 0x1f, 0x8a, 0x01, 0xb7, 0xc3, 0x96, 0x63, - 0x32, 0xc3, 0x66, 0xfd, 0xbc, 0x13, 0x64, 0x15, 0xd3, 0x25, 0x65, 0x29, 0xa9, 0x4d, 0xcb, 0xf6, - 0x0d, 0xd1, 0x5c, 0x93, 0xad, 0xea, 0x9b, 0x50, 0x08, 0x28, 0xec, 0x96, 0xe5, 0x93, 0xa6, 0x85, - 0x8b, 0xc0, 0x29, 0xc6, 0x64, 0xfd, 0x96, 0xac, 0x56, 0x7f, 0x0e, 0xa6, 0x3d, 0x6c, 0xa1, 0x33, - 0xa9, 0x16, 0xda, 0x40, 0x9e, 0x54, 0x4e, 0xa6, 0xff, 0x89, 0x4c, 0x48, 0x88, 0x0d, 0x8c, 0xeb, - 0x0c, 0x80, 0xab, 0x84, 0xc0, 0x62, 0x30, 0xfc, 0x86, 0xdb, 0xf2, 0xac, 0xb3, 0x70, 0x16, 0x0c, - 0x5e, 0x37, 0x50, 0xb3, 0x98, 0xed, 0x9f, 0x45, 0xb0, 0x3e, 0x9e, 0x71, 0x28, 0x39, 0x61, 0xc6, - 0x67, 0x0d, 0x35, 0xe3, 0xda, 0x97, 0xac, 0xb8, 0xa0, 0x30, 0xf5, 0xc5, 0x54, 0x72, 0x83, 0x6b, - 0x5f, 0xf0, 0xa9, 0x49, 0x18, 0x3e, 0xa1, 0x2a, 0x2c, 0xda, 0xe8, 0x34, 0x6e, 0xce, 0xae, 0x67, - 0x62, 0x4f, 0xa7, 0xc4, 0xc4, 0xba, 0xe1, 0xb6, 0x1c, 0xbf, 0x98, 0x2f, 0x29, 0x4b, 0x39, 0x6d, - 0xde, 0x46, 0xa7, 0x91, 0x9d, 0xee, 0xb0, 0x4e, 0x75, 0x62, 0xe2, 0x35, 0xd6, 0x45, 0xa5, 0xf0, - 0x06, 0x71, 0x5e, 0xe8, 0x1e, 0x7e, 0x85, 0x3c, 0x53, 0xa7, 0x6c, 0x45, 0x98, 0xba, 0x87, 0x5f, - 0xb6, 0x88, 0x87, 0x6d, 0xec, 0xf8, 0xba, 0xdf, 0xf0, 0x30, 0x6d, 0xb8, 0x96, 0x59, 0x1c, 0xe3, - 0xc3, 0x7e, 0x20, 0x87, 0x3d, 0xd5, 0x3d, 0xec, 0x9a, 0xe3, 0x6b, 0x0f, 0x89, 0xf3, 0x42, 0xe3, - 0x60, 0x75, 0x8e, 0xa5, 0x45, 0x50, 0x7b, 0x01, 0x92, 0xfa, 0x14, 0x4a, 0xbe, 0x87, 0x84, 0xf0, - 0x79, 0x5f, 0xaa, 0x9f, 0x60, 0xe1, 0x2b, 0xcd, 0x16, 0xb7, 0x5b, 0xa7, 0x58, 0xe0, 0x06, 0xf2, - 0x40, 0xf6, 0x13, 0x90, 0xf4, 0x63, 0xd1, 0xab, 0x2a, 0x3b, 0x31, 0x49, 0x5b, 0xe4, 0x65, 0x8b, - 0x98, 0xc8, 0x77, 0xbd, 0x70, 0x12, 0x91, 0xd1, 0x8c, 0x0f, 0x20, 0xe9, 0x08, 0x48, 0x8e, 0x3f, - 0x34, 0x9d, 0x53, 0x78, 0xf3, 0x80, 0x38, 0xc8, 0x3b, 0xd3, 0xdd, 0x26, 0x63, 0x4b, 0x7b, 0x39, - 0x7a, 0xb5, 0x3f, 0x47, 0xff, 0xba, 0x40, 0xdc, 0x11, 0x80, 0x57, 0xf9, 0xfa, 0x5f, 0x54, 0xa0, - 0x84, 0x7c, 0xd7, 0x26, 0x46, 0xc0, 0x52, 0xe8, 0x18, 0x19, 0x06, 0xa6, 0x54, 0xb7, 0xf0, 0x09, - 0xb6, 0x8a, 0x13, 0x25, 0x65, 0x29, 0xff, 0xee, 0xfb, 0xcb, 0x57, 0x07, 0xe2, 0xe5, 0x0a, 0xc7, - 0x10, 0x5c, 0xb8, 0x01, 0x54, 0x38, 0xc0, 0x26, 0xa3, 0xd7, 0xee, 0xa3, 0x1e, 0xad, 0xea, 0x29, - 0xbc, 0xc1, 0x63, 0xc0, 0x65, 0xc3, 0x60, 0x4b, 0x54, 0xae, 0x68, 0x82, 0xbd, 0xe2, 0x64, 0xff, - 0xd2, 0x2e, 0x33, 0xcc, 0xae, 0x51, 0x6d, 0x60, 0xbc, 0x15, 0xc2, 0xa9, 0x9f, 0x2a, 0xf0, 0x4e, - 0xcc, 0xba, 0xfb, 0x18, 0xc0, 0x54, 0xff, 0x03, 0x58, 0x8a, 0x90, 0xaf, 0x19, 0xc6, 0xaf, 0x28, - 0xf0, 0xa4, 0x43, 0xfd, 0x7d, 0x0c, 0x65, 0xba, 0xff, 0xa1, 0xbc, 0xd5, 0x66, 0x0a, 0xd7, 0x8c, - 0xe6, 0xdb, 0x30, 0x6b, 0x13, 0x87, 0xd8, 0xc8, 0xd2, 0x79, 0xce, 0x63, 0xb8, 0x56, 0x14, 0xc0, - 0x66, 0xfa, 0x67, 0x3a, 0x2d, 0x51, 0x76, 0x25, 0x48, 0x10, 0xb9, 0xbe, 0x09, 0x6f, 0x11, 0x1a, - 0x1a, 0x76, 0x77, 0x6e, 0x63, 0xa1, 0x96, 0x63, 0x34, 0x74, 0xec, 0xa0, 0x03, 0x0b, 0x9b, 0xc5, - 0x62, 0x49, 0x59, 0x4a, 0x69, 0x5f, 0x20, 0x54, 0xda, 0x6e, 0xb5, 0x23, 0x7d, 0xd9, 0xe4, 0xdd, - 0xd7, 0x45, 0x6f, 0xe6, 0xb2, 0x9a, 0x2e, 0xf5, 0x75, 0xd7, 0xb1, 0xce, 0x74, 0xdb, 0x35, 0xb1, - 0xde, 0xc0, 0xe4, 0xa8, 0x11, 0x77, 0x32, 0xb3, 0x7c, 0xd9, 0xcf, 0xb3, 0x6e, 0x3b, 0x8e, 0x75, - 0xb6, 0xe5, 0x9a, 0xf8, 0x19, 0xef, 0x13, 0x79, 0x8f, 0x23, 0x78, 0x22, 0x43, 0x9c, 0x89, 0x0d, - 0x0f, 0x23, 0x8a, 0xf5, 0xa6, 0x47, 0x0c, 0xac, 0xfb, 0xc4, 0xc6, 0xd4, 0x47, 0x76, 0x33, 0xc2, - 0xd3, 0x29, 0x36, 0x5c, 0xc7, 0xa4, 0xc5, 0x39, 0x8e, 0xfb, 0xb6, 0x20, 0xac, 0x4a, 0xba, 0x5d, - 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, 0x03, 0xc6, 0x82, 0x95, 0xa4, 0x23, - 0xd3, 0x26, 0x0e, 0x2d, 0xce, 0x97, 0x92, 0x4b, 0x69, 0x2d, 0x1f, 0x54, 0x57, 0x78, 0xad, 0xba, - 0x09, 0x13, 0xcc, 0x89, 0xa2, 0x96, 0xc1, 0x54, 0xa8, 0x33, 0xb7, 0xcc, 0xe2, 0xc9, 0xfd, 0x7e, - 0x1c, 0x66, 0x81, 0x38, 0x2f, 0x2a, 0x82, 0x70, 0x0b, 0x9d, 0xae, 0xa1, 0xe6, 0x07, 0xc5, 0x7f, - 0xfd, 0xde, 0xa2, 0x72, 0xfe, 0x2f, 0x7f, 0xfc, 0x38, 0xe4, 0xbe, 0x22, 0x92, 0xda, 0xf2, 0xa7, - 0x0a, 0x4c, 0x08, 0xb9, 0xb6, 0x1b, 0xc5, 0x3c, 0xa4, 0x03, 0x8f, 0x64, 0xf2, 0xb4, 0x36, 0xad, - 0xa5, 0x44, 0x45, 0xcd, 0x54, 0x7f, 0x06, 0xf2, 0x1d, 0xb6, 0x99, 0xe8, 0xdf, 0x4c, 0x72, 0x87, - 0x71, 0x46, 0x1f, 0x0c, 0xfd, 0xf2, 0xf7, 0x16, 0xef, 0x95, 0x7f, 0x9c, 0x82, 0x42, 0xa7, 0xa2, - 0xd5, 0x69, 0x18, 0xf1, 0x89, 0x71, 0x8c, 0x3d, 0x39, 0x00, 0x59, 0x52, 0x17, 0x21, 0x23, 0xd2, - 0x76, 0x9d, 0xb9, 0x42, 0xc1, 0x5b, 0x03, 0x51, 0xb5, 0x8a, 0x28, 0x56, 0x5f, 0x83, 0xac, 0xec, - 0xf0, 0xb2, 0xe5, 0x06, 0x09, 0xac, 0x26, 0x89, 0xbe, 0xce, 0xaa, 0xd4, 0xf5, 0x10, 0xc3, 0x3f, - 0x6b, 0x8a, 0xfc, 0x33, 0xff, 0xee, 0xeb, 0x31, 0x87, 0x27, 0x37, 0x06, 0x81, 0xbb, 0xdb, 0xe1, - 0xc5, 0xbd, 0xb3, 0x26, 0x0e, 0x38, 0xb1, 0xdf, 0xea, 0x32, 0x4c, 0x48, 0x18, 0x6a, 0x20, 0x0b, - 0xeb, 0x87, 0xc8, 0xf0, 0x5d, 0x8f, 0x67, 0x99, 0x39, 0x6d, 0x5c, 0x34, 0xd5, 0x59, 0xcb, 0x06, - 0x6f, 0x60, 0x43, 0xe7, 0x43, 0xd2, 0x4d, 0xec, 0xb8, 0xb6, 0x48, 0x0f, 0x35, 0xe0, 0x55, 0x55, - 0x56, 0xd3, 0x2e, 0xf7, 0xd1, 0x0e, 0xb9, 0xef, 0xc3, 0xe4, 0xa5, 0xb9, 0xdf, 0x00, 0x19, 0x99, - 0x4a, 0xba, 0x93, 0xbe, 0x6f, 0x41, 0xf1, 0xca, 0x64, 0x2f, 0x3d, 0xc8, 0xfa, 0xbf, 0x3c, 0xcb, - 0xab, 0x41, 0xbe, 0x23, 0x09, 0x87, 0xfe, 0x41, 0xb3, 0x76, 0x3c, 0x09, 0xae, 0x41, 0xbe, 0x23, - 0xc1, 0x1e, 0x20, 0x87, 0xcb, 0xfa, 0x71, 0xa8, 0xab, 0xd3, 0xc2, 0xec, 0x2d, 0xd3, 0xc2, 0x12, - 0x64, 0x08, 0xdd, 0xc5, 0x5e, 0x13, 0xfb, 0x2d, 0x64, 0xf1, 0xd4, 0x2c, 0xa5, 0xc5, 0xab, 0xd4, - 0x0f, 0x61, 0x84, 0xfa, 0xc8, 0x6f, 0x51, 0x9e, 0x4e, 0xe5, 0xdf, 0x5d, 0xea, 0x15, 0x68, 0xc5, - 0x62, 0xa8, 0xf3, 0xfe, 0x9a, 0xa4, 0x53, 0x35, 0x98, 0xb0, 0x89, 0x13, 0x3a, 0x29, 0xe3, 0x58, - 0xa7, 0xe4, 0x13, 0x2c, 0xf3, 0xa9, 0xbe, 0x86, 0x5e, 0xb0, 0x89, 0x23, 0x9d, 0x95, 0x71, 0x5c, - 0x27, 0x9f, 0x70, 0x89, 0x30, 0xcc, 0x97, 0x2d, 0xe4, 0xf8, 0xc4, 0x3f, 0x8b, 0xc1, 0x16, 0x06, - 0x90, 0x88, 0x4d, 0x9c, 0xaf, 0x4b, 0x84, 0x10, 0x79, 0x03, 0xb2, 0x0c, 0xd9, 0x71, 0x99, 0x4b, - 0x42, 0xd6, 0x20, 0x39, 0x54, 0xc6, 0x26, 0xce, 0xb6, 0xa4, 0x53, 0x27, 0x61, 0x98, 0x3b, 0x4d, - 0x9e, 0x11, 0xa5, 0x35, 0x51, 0x50, 0xdf, 0x82, 0x71, 0xfe, 0x43, 0x6f, 0x62, 0xcf, 0x26, 0x94, - 0xb2, 0x90, 0xc7, 0x33, 0x98, 0x9c, 0x56, 0xe0, 0x0d, 0xbb, 0x51, 0xbd, 0x74, 0x37, 0x7f, 0x9b, - 0x82, 0x89, 0xd5, 0xee, 0x6c, 0xe9, 0x4a, 0x8f, 0xf3, 0x10, 0x72, 0xc1, 0x32, 0x3f, 0xb3, 0x0f, - 0x5c, 0x4b, 0xfa, 0x1c, 0xe9, 0x65, 0xea, 0xbc, 0x8e, 0xf9, 0x76, 0xd9, 0xa9, 0xe9, 0xb9, 0x27, - 0xc4, 0xc4, 0x9e, 0x74, 0x3c, 0x79, 0x51, 0xbd, 0x2b, 0x6b, 0xff, 0xbb, 0x7c, 0xcf, 0x13, 0x98, - 0xc4, 0xa7, 0x4d, 0x22, 0xf2, 0xdc, 0x28, 0xb2, 0x71, 0x27, 0x94, 0xd4, 0x26, 0xa2, 0xb6, 0x30, - 0x7c, 0x31, 0x12, 0x8a, 0x7d, 0xdf, 0x92, 0x79, 0x7b, 0x48, 0x32, 0x2a, 0x48, 0xa2, 0xb6, 0x88, - 0x24, 0xd4, 0x51, 0x2a, 0xae, 0xa3, 0x0e, 0xbf, 0x97, 0xee, 0xed, 0xf7, 0xa0, 0xc3, 0xef, 0x75, - 0x7b, 0x90, 0xcc, 0xdd, 0x79, 0x90, 0xec, 0xdd, 0x7b, 0x90, 0xdc, 0x2d, 0x3d, 0xc8, 0xff, 0x35, - 0xff, 0xb0, 0x0d, 0x85, 0x98, 0x99, 0xf1, 0x41, 0xc7, 0x7c, 0x84, 0x72, 0x1d, 0xe6, 0x58, 0x44, - 0xcc, 0x47, 0xdc, 0xe5, 0x6f, 0xd4, 0x1b, 0xfa, 0x9b, 0x1b, 0x78, 0x96, 0x7f, 0x4e, 0xc0, 0xcc, - 0x3a, 0x5b, 0x49, 0x67, 0x1b, 0x2d, 0xbf, 0xe5, 0xe1, 0x70, 0x1f, 0x76, 0xe8, 0xf6, 0xce, 0xa9, - 0xae, 0x5a, 0x9d, 0x89, 0xab, 0x57, 0xe7, 0x17, 0x61, 0xd2, 0x7f, 0x85, 0x9a, 0x6c, 0x8b, 0xed, - 0xc5, 0x57, 0x67, 0x92, 0x93, 0xa8, 0xac, 0xad, 0xce, 0x9a, 0x22, 0x8a, 0x57, 0xf0, 0x85, 0x38, - 0x93, 0x88, 0x58, 0x18, 0x8a, 0xd1, 0xb2, 0x5b, 0x16, 0xcf, 0xc0, 0x06, 0x39, 0x90, 0x2b, 0xc7, - 0xc6, 0x16, 0xb0, 0xe4, 0x7a, 0x58, 0x0b, 0xe1, 0x2e, 0xd5, 0xf0, 0x00, 0x47, 0x71, 0x9d, 0x1a, - 0x2e, 0xff, 0x65, 0x02, 0x26, 0xc2, 0x78, 0xda, 0xaf, 0x88, 0xbf, 0x01, 0x33, 0x57, 0x9d, 0xd3, - 0x0c, 0x90, 0xbf, 0x4e, 0x36, 0x2e, 0x3b, 0xa0, 0xd9, 0x87, 0xc9, 0x4b, 0x0f, 0x66, 0x06, 0x38, - 0x3b, 0x55, 0x1b, 0xdd, 0x27, 0x32, 0xff, 0x1f, 0xa6, 0x1d, 0x7c, 0x1a, 0x1d, 0x8f, 0x45, 0x4a, - 0x1e, 0xe2, 0x4a, 0x9e, 0x64, 0xad, 0x72, 0x28, 0x91, 0x9a, 0x63, 0xa7, 0x63, 0xe1, 0x79, 0xda, - 0x70, 0xdb, 0xe9, 0x58, 0x70, 0x90, 0x56, 0xfe, 0x5c, 0x81, 0xe9, 0x0e, 0x41, 0x4a, 0x38, 0x55, - 0x03, 0x35, 0x32, 0x88, 0x60, 0x04, 0x42, 0xa8, 0xfd, 0x4d, 0x68, 0x3c, 0x22, 0x0f, 0x30, 0xb7, - 0xa1, 0x10, 0xc3, 0x14, 0x76, 0x30, 0x80, 0xec, 0xc7, 0x22, 0x62, 0xb1, 0xd2, 0x1f, 0x41, 0xde, - 0x42, 0xb4, 0xdb, 0xf8, 0x73, 0xac, 0x36, 0x14, 0x48, 0xf9, 0xd7, 0x14, 0x58, 0xe8, 0xdc, 0x5e, - 0xd4, 0x43, 0x93, 0xba, 0xde, 0x72, 0x2e, 0x33, 0xdf, 0xc4, 0x2d, 0xcc, 0xf7, 0xab, 0x30, 0xb9, - 0x7d, 0x99, 0xe2, 0x1e, 0x41, 0x9e, 0xab, 0x3b, 0x9a, 0x8e, 0x22, 0xa6, 0xc3, 0x6a, 0xa3, 0xe9, - 0xfc, 0x9b, 0x02, 0xf9, 0x2d, 0x62, 0x72, 0xac, 0x8a, 0x63, 0xee, 0xed, 0xac, 0xaa, 0x1f, 0x42, - 0xda, 0x26, 0xa6, 0x1c, 0x9a, 0xd2, 0xbf, 0xef, 0x4c, 0xd9, 0x12, 0x87, 0x45, 0xc6, 0x03, 0x66, - 0xb6, 0x07, 0xad, 0xb3, 0xae, 0x19, 0x5e, 0x0b, 0x93, 0x65, 0xa4, 0xab, 0xad, 0x33, 0x01, 0xf5, - 0x11, 0x8c, 0x71, 0x28, 0x8a, 0x2d, 0x4b, 0x62, 0x25, 0xfb, 0xc7, 0xca, 0x31, 0xda, 0x3a, 0xb6, - 0x2c, 0x21, 0xab, 0x1f, 0x0f, 0x03, 0xd4, 0xc3, 0xfb, 0x92, 0x2b, 0x53, 0xb4, 0x07, 0x00, 0x6c, - 0x37, 0x28, 0x13, 0x0c, 0x91, 0x9f, 0xa5, 0x59, 0x8d, 0xc8, 0x2f, 0x3a, 0x12, 0x90, 0x64, 0x57, - 0x02, 0xd2, 0x9d, 0x63, 0x0c, 0xdd, 0x5d, 0x8e, 0x31, 0x7c, 0xf7, 0x39, 0xc6, 0xc8, 0x2d, 0x73, - 0x8c, 0x9e, 0x1b, 0xcd, 0x28, 0x01, 0x49, 0xdd, 0x6d, 0x02, 0x92, 0xfe, 0xc9, 0x24, 0x20, 0x70, - 0xc7, 0x1b, 0x94, 0xcc, 0x6d, 0x37, 0x28, 0xd9, 0x6b, 0x37, 0x28, 0xb9, 0xcb, 0xd3, 0x88, 0xf2, - 0xef, 0x29, 0x30, 0x5a, 0xc5, 0x4d, 0x97, 0x12, 0x5f, 0xdd, 0x85, 0x71, 0x74, 0x82, 0x88, 0x85, - 0x0e, 0xf8, 0x59, 0x87, 0xc5, 0x76, 0xd6, 0x83, 0x38, 0xe0, 0x42, 0x48, 0xbd, 0x2a, 0x88, 0xd5, - 0x67, 0x90, 0xf3, 0x5d, 0x1f, 0x59, 0x21, 0x5a, 0x62, 0x10, 0xcb, 0x64, 0x94, 0x12, 0xa9, 0xfc, - 0x36, 0x4c, 0xd6, 0x5b, 0x07, 0xc8, 0xe0, 0xd7, 0x02, 0x7b, 0x1e, 0x32, 0xf1, 0xb6, 0xcb, 0x38, - 0x4c, 0xc2, 0xb0, 0xe3, 0x06, 0xe3, 0xcc, 0x69, 0xa2, 0xc0, 0xc2, 0x4c, 0x9a, 0x1f, 0x3d, 0x72, - 0x5f, 0xfb, 0x10, 0x72, 0x34, 0xa4, 0x8d, 0xfc, 0x6d, 0x36, 0xaa, 0xac, 0x99, 0xac, 0x13, 0x5f, - 0x3f, 0xd8, 0x20, 0x4d, 0x82, 0x1d, 0x3f, 0xd8, 0x73, 0x1d, 0x62, 0xac, 0x05, 0x75, 0xea, 0x97, - 0x61, 0xb8, 0xd3, 0xbf, 0x5c, 0x3b, 0x0f, 0x41, 0xa1, 0x7e, 0x0d, 0x52, 0x81, 0x25, 0x0d, 0xb2, - 0xd4, 0x43, 0x22, 0xb5, 0x00, 0x49, 0x83, 0x98, 0x62, 0x6d, 0x6b, 0xec, 0x67, 0xf9, 0xd3, 0x04, - 0xa4, 0x99, 0xab, 0xe2, 0x33, 0xbd, 0xee, 0x08, 0x0d, 0xc4, 0x21, 0x2f, 0x71, 0x0e, 0x5d, 0x79, - 0x95, 0xfb, 0xa8, 0xd7, 0x2a, 0x0b, 0xa5, 0x27, 0x4f, 0xfb, 0xd3, 0x6e, 0x28, 0xce, 0x6a, 0x80, - 0xc5, 0xb7, 0x93, 0x49, 0xbe, 0x62, 0xaf, 0xc7, 0xe2, 0xfb, 0x49, 0x81, 0xc2, 0xb7, 0x93, 0xcc, - 0x34, 0x3c, 0x72, 0x74, 0x84, 0x3d, 0xe9, 0xb2, 0x87, 0x06, 0x70, 0xff, 0x92, 0x52, 0x78, 0xec, - 0x1f, 0x24, 0x20, 0xcf, 0xc4, 0xb0, 0x49, 0x6c, 0x22, 0x65, 0xd1, 0x3e, 0x5d, 0xe5, 0x0e, 0xa7, - 0x9b, 0xb8, 0xe1, 0x74, 0xbf, 0x06, 0xa9, 0x43, 0x62, 0xf1, 0xc5, 0x31, 0x88, 0xf1, 0x84, 0x44, - 0x77, 0x27, 0x2f, 0x16, 0xba, 0xc4, 0x84, 0x1a, 0x88, 0x36, 0xb8, 0x3d, 0x65, 0xe5, 0x48, 0x9f, - 0x21, 0xda, 0x28, 0xff, 0x4d, 0x02, 0xc6, 0xa2, 0x00, 0x78, 0xf7, 0xf2, 0xdc, 0x80, 0xac, 0xf4, - 0x06, 0x3a, 0x3f, 0x2f, 0x1f, 0xc0, 0x25, 0x64, 0x24, 0xe1, 0x33, 0xd7, 0x32, 0x3b, 0xa6, 0x91, - 0xec, 0x98, 0x46, 0x87, 0xda, 0x86, 0xee, 0xca, 0x4a, 0x87, 0x6f, 0x6a, 0xa5, 0x7f, 0x95, 0x80, - 0xb1, 0x8e, 0x3b, 0xcc, 0xff, 0x69, 0x4b, 0xf6, 0x2b, 0x30, 0x22, 0x0e, 0x6b, 0x07, 0x71, 0x60, - 0x92, 0xe4, 0x0e, 0x25, 0xf9, 0xef, 0x49, 0x98, 0x8f, 0x62, 0x01, 0x1f, 0xe9, 0x81, 0xeb, 0x1e, - 0x6f, 0x61, 0x1f, 0x99, 0xc8, 0x47, 0xea, 0x97, 0x61, 0xf6, 0x04, 0x39, 0x6c, 0xdd, 0xe8, 0x16, - 0x73, 0x09, 0xf2, 0x7a, 0x4b, 0x5c, 0x28, 0x8b, 0x30, 0x31, 0x2d, 0x3b, 0x44, 0x2e, 0x43, 0xdc, - 0x25, 0x7f, 0x08, 0x0f, 0x3c, 0x6c, 0xb6, 0x0c, 0x2c, 0x2e, 0x78, 0xba, 0xc9, 0x13, 0x9c, 0x7c, - 0x56, 0x74, 0xda, 0x71, 0xac, 0xb3, 0x4e, 0x84, 0x06, 0x2c, 0xa0, 0xa3, 0x23, 0x0f, 0x1f, 0xb1, - 0xad, 0x5e, 0x1c, 0x2b, 0x74, 0xfe, 0x03, 0xac, 0xfe, 0xf9, 0x10, 0x4a, 0x0b, 0x19, 0x06, 0xc9, - 0x84, 0x8a, 0x60, 0x2e, 0xe2, 0x14, 0x4c, 0xf8, 0x26, 0x21, 0xa6, 0x18, 0xc2, 0x7c, 0x2c, 0x50, - 0x42, 0x16, 0xeb, 0xb0, 0x18, 0x00, 0x1b, 0xae, 0x63, 0x12, 0x91, 0x76, 0xb4, 0x09, 0x44, 0x1c, - 0xff, 0xdd, 0x97, 0xdd, 0xd6, 0xa2, 0x5e, 0x31, 0x99, 0x6c, 0xc2, 0xc3, 0xb8, 0x24, 0xae, 0x82, - 0x1a, 0xe1, 0x50, 0x8b, 0x91, 0x6c, 0x2f, 0x45, 0x2b, 0xff, 0xb9, 0x02, 0x63, 0x1d, 0xea, 0x8f, - 0xe2, 0xb2, 0x72, 0xab, 0xb8, 0x9c, 0xb8, 0x49, 0x5c, 0x2e, 0x43, 0x96, 0xd0, 0x48, 0x3f, 0x5c, - 0xbf, 0x29, 0xad, 0xad, 0x2e, 0x88, 0xdd, 0x43, 0x51, 0xec, 0x7e, 0x05, 0x13, 0x1d, 0x93, 0xa8, - 0x32, 0xdb, 0xad, 0xc0, 0x30, 0x17, 0x89, 0xf4, 0xb1, 0x6f, 0xf5, 0x5a, 0xa3, 0x1d, 0xf4, 0x9a, - 0xa0, 0xec, 0xf0, 0x8b, 0x89, 0x4e, 0xf7, 0xfe, 0xeb, 0x49, 0x98, 0x8c, 0xfc, 0xd0, 0x4f, 0x75, - 0xcc, 0x8c, 0xfc, 0x4d, 0x72, 0x70, 0x7f, 0x13, 0x0f, 0xb8, 0x43, 0x77, 0x12, 0x70, 0x87, 0xef, - 0x26, 0xe0, 0x8e, 0x74, 0x6a, 0xe4, 0x37, 0x93, 0x30, 0xd5, 0x79, 0x5a, 0xf0, 0xbf, 0x52, 0x25, - 0x55, 0xc8, 0xc8, 0xcb, 0x3e, 0x1e, 0xf8, 0x07, 0xd0, 0x0a, 0x08, 0x3a, 0x1e, 0xf7, 0xff, 0xcb, - 0xf4, 0xf2, 0x17, 0x09, 0x48, 0xed, 0xb2, 0x8d, 0x11, 0x71, 0x1d, 0x75, 0x1a, 0x46, 0x08, 0xdd, - 0x74, 0xe5, 0x89, 0x54, 0x4a, 0x93, 0xa5, 0xdb, 0xbb, 0x8f, 0x2a, 0x64, 0xb0, 0xe3, 0x7b, 0x67, - 0xfa, 0xc0, 0x1b, 0x0b, 0xe0, 0x74, 0x62, 0x2a, 0xb7, 0x0a, 0xcd, 0xdf, 0x82, 0x62, 0xf7, 0xc9, - 0x9b, 0xce, 0xd1, 0x07, 0x39, 0x4a, 0x98, 0xee, 0x3a, 0x7f, 0x5b, 0x67, 0x10, 0xe5, 0x1a, 0x4c, - 0xc6, 0x8c, 0xba, 0xe6, 0x98, 0xc4, 0x40, 0xbe, 0x7b, 0x4d, 0xf6, 0x33, 0x09, 0xc3, 0x84, 0xae, - 0xb6, 0x84, 0x50, 0x53, 0x9a, 0x28, 0x94, 0xff, 0x3a, 0x01, 0x29, 0xbe, 0xf9, 0xdb, 0x74, 0xdb, - 0x45, 0xaf, 0xdc, 0x44, 0xf4, 0x61, 0xd4, 0x48, 0x0c, 0x1c, 0x35, 0xba, 0xb6, 0x94, 0x22, 0xff, - 0x6c, 0xdf, 0x52, 0xbe, 0x07, 0xc9, 0x43, 0x3c, 0x90, 0xf7, 0x61, 0xfd, 0xaf, 0xc9, 0xcf, 0xd5, - 0xf7, 0x61, 0xaa, 0x6d, 0xa3, 0xaa, 0x23, 0xd3, 0xf4, 0x30, 0xa5, 0xc2, 0x80, 0xf9, 0xc2, 0x57, - 0xb4, 0x89, 0xf8, 0xb6, 0xb5, 0x22, 0x3a, 0x04, 0x51, 0x68, 0x34, 0x8a, 0x42, 0xbf, 0x9d, 0x80, - 0x5c, 0x60, 0xe2, 0x55, 0x6c, 0xf9, 0x48, 0x9d, 0x81, 0x51, 0x42, 0x75, 0xab, 0xdb, 0xd0, 0x35, - 0x50, 0xf1, 0x29, 0x36, 0x5a, 0xfc, 0x28, 0xff, 0x26, 0x26, 0x3f, 0x1e, 0x92, 0x87, 0xf9, 0xc5, - 0x36, 0x14, 0x22, 0xcc, 0xc1, 0xfd, 0xca, 0x58, 0x48, 0x2c, 0xee, 0xff, 0xd5, 0x4d, 0x88, 0xaa, - 0xba, 0x76, 0x49, 0xd7, 0xc2, 0xe5, 0x43, 0x5a, 0x91, 0x67, 0xfe, 0x6e, 0x12, 0xd4, 0xd8, 0xeb, - 0xd8, 0xc0, 0xec, 0x2e, 0x3d, 0x4d, 0xe8, 0x54, 0xfd, 0x2e, 0xe4, 0x9b, 0x52, 0xae, 0xba, 0xc9, - 0x04, 0x2b, 0x13, 0xf8, 0x37, 0x7b, 0x79, 0xdc, 0x36, 0x4d, 0x68, 0xb9, 0x66, 0x9b, 0x62, 0xbe, - 0x02, 0x23, 0x4d, 0x74, 0xe6, 0xb6, 0xfc, 0x81, 0x3c, 0xaf, 0x20, 0xf9, 0xe9, 0xb7, 0x44, 0x36, - 0xc2, 0xa6, 0x63, 0x0d, 0xf2, 0xb4, 0x84, 0xf5, 0x2f, 0xff, 0x3c, 0xa8, 0x51, 0x1a, 0x14, 0x3a, - 0xeb, 0x0f, 0x21, 0x15, 0x08, 0x4f, 0x46, 0xcd, 0xd7, 0xfb, 0x91, 0xbb, 0x16, 0x52, 0x75, 0x2b, - 0x39, 0xd1, 0xad, 0xe4, 0xf2, 0x2b, 0x18, 0x8f, 0x98, 0x07, 0x87, 0x68, 0x7d, 0x99, 0xc7, 0x57, - 0x61, 0xd4, 0x14, 0xfd, 0xa5, 0x5d, 0x3c, 0xec, 0x35, 0x3e, 0x09, 0xad, 0x05, 0x34, 0xe5, 0x26, - 0xe4, 0x64, 0xdd, 0x7e, 0xd3, 0x44, 0x3e, 0x3f, 0x05, 0x13, 0x07, 0xcd, 0xc2, 0x8d, 0x8a, 0x82, - 0x5a, 0x83, 0x94, 0xa4, 0xa0, 0xc5, 0x44, 0x29, 0xb9, 0x94, 0x79, 0xf7, 0x9d, 0xfe, 0xf2, 0xc9, - 0x80, 0x61, 0x48, 0x5e, 0xfe, 0x81, 0x02, 0x85, 0x5d, 0x97, 0x38, 0x3e, 0x8d, 0x3d, 0xda, 0xfa, - 0x26, 0xcc, 0x88, 0x33, 0xec, 0x26, 0x6f, 0x89, 0x3f, 0xd0, 0x1a, 0xc0, 0x1f, 0x4f, 0x71, 0x8c, - 0xcb, 0xc0, 0xfd, 0x2b, 0xc0, 0x07, 0x70, 0x3a, 0x53, 0xfe, 0x65, 0xe0, 0xe5, 0xff, 0x48, 0xc0, - 0xc2, 0x5e, 0xfc, 0x5d, 0xee, 0x1a, 0xb2, 0x9b, 0x88, 0x1c, 0x39, 0xab, 0xae, 0x4b, 0xc5, 0x05, - 0xcd, 0x7b, 0x30, 0x73, 0xc0, 0x0a, 0xd8, 0xd4, 0xdb, 0x3e, 0xc3, 0x30, 0x69, 0x51, 0xe1, 0x4f, - 0xe8, 0x26, 0x65, 0x73, 0x74, 0x56, 0x52, 0x33, 0xa9, 0xfa, 0x02, 0x66, 0xe2, 0xdd, 0xa3, 0x51, - 0x07, 0x2a, 0x78, 0xbb, 0xb7, 0x25, 0xb6, 0x0f, 0x54, 0xa6, 0x71, 0x53, 0xd1, 0x07, 0x1c, 0x51, - 0x1b, 0x55, 0x2b, 0xf0, 0x20, 0x18, 0xe2, 0x25, 0x9f, 0x70, 0x98, 0xb4, 0x98, 0xe4, 0x03, 0x9d, - 0x93, 0x9d, 0x3a, 0x73, 0x4c, 0x36, 0xdc, 0x13, 0x78, 0xd0, 0x4d, 0x1a, 0x1f, 0xf4, 0xd0, 0x8d, - 0x07, 0x3d, 0xdf, 0xf9, 0x21, 0x48, 0x6c, 0xe8, 0xe5, 0x3f, 0x55, 0x40, 0x0d, 0x64, 0x2e, 0x34, - 0xb0, 0xeb, 0x8a, 0x37, 0x2d, 0x9d, 0xb7, 0xcb, 0xe2, 0x46, 0x2a, 0x4f, 0xdb, 0x6f, 0x96, 0x7f, - 0x01, 0x26, 0xc5, 0x1b, 0x45, 0x01, 0x11, 0x3c, 0xc2, 0x96, 0x32, 0xee, 0xf1, 0x76, 0xf9, 0x8b, - 0x6c, 0x6c, 0x7f, 0xf8, 0x8f, 0x8b, 0x4b, 0x47, 0xc4, 0x6f, 0xb4, 0x0e, 0x96, 0x0d, 0xd7, 0x5e, - 0x91, 0x5f, 0xf3, 0x88, 0xff, 0xde, 0xa1, 0xe6, 0xf1, 0x0a, 0xcb, 0x91, 0x29, 0x27, 0xa0, 0x9a, - 0x6a, 0xa3, 0xd3, 0xf6, 0xa1, 0xd2, 0xf2, 0x1f, 0x24, 0x60, 0xf6, 0x52, 0xfb, 0xe1, 0xa6, 0xf3, - 0x01, 0xcc, 0x86, 0x03, 0x0b, 0x5e, 0x83, 0x87, 0xcf, 0x38, 0xc5, 0x7c, 0x66, 0x82, 0x0e, 0xc1, - 0x43, 0xf0, 0xe0, 0xc5, 0xe6, 0x6b, 0x90, 0x8d, 0x5d, 0x1c, 0x89, 0x09, 0xa5, 0xb5, 0x4c, 0x74, - 0x73, 0x44, 0xd5, 0x16, 0xcc, 0xb6, 0xbf, 0x3d, 0xd7, 0xb9, 0x82, 0xc5, 0x26, 0x21, 0xc9, 0xdd, - 0xc9, 0x07, 0xbd, 0xf4, 0xd5, 0xdb, 0xf0, 0xb5, 0xe9, 0xb6, 0x07, 0xeb, 0xd1, 0x82, 0xf8, 0x12, - 0xcc, 0x98, 0x84, 0xbe, 0x6c, 0x21, 0x8b, 0x1c, 0x12, 0x6c, 0xc6, 0xed, 0x6c, 0x88, 0x0f, 0x72, - 0x2a, 0xde, 0x1c, 0x9a, 0x58, 0xf9, 0xcf, 0x12, 0x30, 0xb1, 0x81, 0x71, 0x95, 0x50, 0x71, 0x76, - 0x4f, 0xe4, 0x86, 0xa4, 0x0e, 0x13, 0xc2, 0x7b, 0x98, 0xb2, 0x45, 0x5c, 0x34, 0x0d, 0x72, 0xe1, - 0xcb, 0xe9, 0x03, 0x60, 0x7e, 0xcd, 0x54, 0x87, 0x09, 0xff, 0x12, 0xd0, 0x41, 0xd2, 0x14, 0xbf, - 0x0b, 0x74, 0x15, 0x72, 0xf2, 0xb3, 0x02, 0x64, 0xf3, 0x93, 0x8a, 0x64, 0x3f, 0xcf, 0x62, 0xb3, - 0x82, 0xa6, 0xc2, 0x49, 0x58, 0xf8, 0x3e, 0x71, 0xad, 0x96, 0x3d, 0x50, 0x10, 0x96, 0x24, 0xe5, - 0x5f, 0x6d, 0x17, 0x61, 0xdd, 0x68, 0x60, 0xb3, 0x65, 0xf1, 0x87, 0xa7, 0x07, 0x2d, 0x83, 0x69, - 0x21, 0x3a, 0xdc, 0x1a, 0xd2, 0x32, 0xa2, 0x4e, 0x9c, 0xbd, 0xbc, 0x01, 0x63, 0xb2, 0x4b, 0xf8, - 0x5d, 0x82, 0x78, 0xe2, 0x91, 0x17, 0xd5, 0xe1, 0x87, 0x08, 0x9d, 0x86, 0x97, 0xec, 0x36, 0xbc, - 0x6d, 0x00, 0x9f, 0xc8, 0xdd, 0x68, 0xe0, 0x19, 0x56, 0x7a, 0x59, 0xda, 0x25, 0x6a, 0xd7, 0xd2, - 0xbe, 0xfc, 0x45, 0x7b, 0x59, 0xd4, 0x70, 0x2f, 0x8b, 0xda, 0x02, 0xb5, 0x03, 0x79, 0x6f, 0x6f, - 0x53, 0x55, 0x61, 0xc8, 0x0f, 0x42, 0xcf, 0x90, 0xc6, 0x7f, 0xb3, 0x60, 0xec, 0xfb, 0x56, 0xd7, - 0xf3, 0x96, 0xac, 0xef, 0x5b, 0xd1, 0xf5, 0xf6, 0xef, 0x28, 0x90, 0xfd, 0x98, 0x0b, 0x5a, 0xc3, - 0x86, 0xeb, 0x99, 0xfc, 0x7a, 0x8e, 0x1b, 0x91, 0xd4, 0x98, 0x32, 0xc8, 0xf5, 0x1c, 0x23, 0x14, - 0x68, 0x0c, 0xc7, 0x8f, 0xe3, 0x0c, 0x72, 0xd2, 0xed, 0x47, 0x38, 0xe5, 0xdf, 0x50, 0x20, 0x5f, - 0x11, 0x91, 0x59, 0x3a, 0x20, 0xb5, 0x08, 0xa3, 0x32, 0x56, 0xcb, 0x90, 0x1f, 0x14, 0x55, 0x0c, - 0xa3, 0x3f, 0x41, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x49, 0x81, 0x2c, 0x4f, 0x89, 0x85, 0xcc, 0x68, - 0xef, 0xdd, 0xdc, 0x73, 0x98, 0xb4, 0x90, 0x8f, 0xa9, 0xaf, 0x33, 0xe7, 0xc2, 0x53, 0x46, 0x37, - 0x1a, 0xe1, 0x1b, 0xd7, 0x79, 0x2b, 0xc9, 0x44, 0x53, 0x05, 0x48, 0x9c, 0x6f, 0xf9, 0x4b, 0x90, - 0x8b, 0x12, 0x97, 0x5a, 0x95, 0xaa, 0x8f, 0x20, 0xdf, 0x96, 0x80, 0x89, 0x78, 0x9d, 0xd5, 0x72, - 0xf1, 0x0c, 0x8c, 0x96, 0x7f, 0x5f, 0x81, 0x4c, 0x0c, 0x48, 0xbd, 0x0f, 0xe9, 0xce, 0xa0, 0x13, - 0x55, 0xdc, 0x66, 0xab, 0x18, 0xdf, 0xa6, 0x26, 0x6f, 0xb0, 0x4d, 0x2d, 0xdb, 0x30, 0x2c, 0x3e, - 0x64, 0x79, 0x02, 0x4a, 0x73, 0x10, 0x63, 0x54, 0x9a, 0x8c, 0xe4, 0xe5, 0x20, 0x63, 0x56, 0x5e, - 0x96, 0x7f, 0x4b, 0x81, 0xc5, 0x4a, 0x70, 0x22, 0x1c, 0x89, 0xb6, 0x6d, 0x85, 0xf4, 0x75, 0xa3, - 0xba, 0x03, 0x79, 0x69, 0x11, 0xc2, 0xfe, 0x03, 0x75, 0xf7, 0x71, 0xbb, 0x2f, 0x99, 0xe5, 0xec, - 0x58, 0x89, 0x96, 0xbf, 0xa3, 0xc0, 0xfd, 0x70, 0x64, 0x95, 0x4b, 0x86, 0x75, 0xf5, 0xaa, 0xb8, - 0xf3, 0xb1, 0x50, 0xc8, 0xc6, 0x9b, 0x7b, 0x9b, 0xff, 0x46, 0xe8, 0xfc, 0x45, 0xb6, 0xdf, 0x93, - 0x6b, 0x7c, 0x46, 0x32, 0x95, 0x0a, 0xe2, 0x40, 0x85, 0xe5, 0xfd, 0x8e, 0x6b, 0x57, 0xb1, 0x41, - 0x6c, 0x64, 0xd1, 0x2b, 0xf2, 0xfe, 0x39, 0x96, 0xf7, 0x8b, 0x1e, 0x9c, 0xe1, 0x90, 0x16, 0x96, - 0xcb, 0x18, 0xd4, 0xa7, 0x1e, 0x72, 0xfc, 0x4a, 0xcb, 0x6f, 0xb8, 0x1e, 0xf9, 0x44, 0x38, 0xff, - 0x22, 0x8c, 0x1e, 0xb1, 0x5a, 0xf9, 0x4d, 0x71, 0x5a, 0x0b, 0x8a, 0xea, 0x7b, 0x30, 0x22, 0x83, - 0x5e, 0xa2, 0x9f, 0xa0, 0x27, 0x3b, 0x97, 0xbf, 0x0d, 0x99, 0x0a, 0x9f, 0x1f, 0x67, 0x16, 0xe1, - 0x7b, 0xed, 0xf8, 0xde, 0x4d, 0xf1, 0xbf, 0xab, 0x40, 0x7e, 0xfd, 0xf0, 0x10, 0xf7, 0xc5, 0xa3, - 0x06, 0xe3, 0x0e, 0xf6, 0x75, 0x51, 0x94, 0x9f, 0x08, 0xf6, 0xc7, 0x6e, 0xcc, 0xc1, 0xfe, 0x53, - 0x41, 0xc6, 0x3f, 0x06, 0x54, 0x67, 0x21, 0x45, 0xa8, 0x7e, 0x82, 0x2c, 0x79, 0xe4, 0x93, 0xd2, - 0x46, 0x09, 0xfd, 0x98, 0x15, 0x1f, 0xfb, 0x70, 0xbf, 0xd7, 0x47, 0x6a, 0x2a, 0xc0, 0xc8, 0xb6, - 0x7b, 0xe0, 0x9a, 0x67, 0x85, 0x7b, 0x6a, 0x19, 0x16, 0x56, 0xf1, 0x11, 0x71, 0x56, 0x2d, 0xd7, - 0x38, 0xc6, 0x5e, 0xdd, 0x46, 0x9e, 0xbf, 0xe6, 0x3a, 0xbe, 0x87, 0x0c, 0x9f, 0xee, 0x38, 0xd6, - 0x59, 0x41, 0x51, 0xa7, 0x41, 0xbd, 0xa4, 0x3e, 0xa1, 0x66, 0x21, 0xb5, 0x7e, 0x82, 0xbd, 0x33, - 0xd7, 0xc1, 0x85, 0xe4, 0xe3, 0xbd, 0xc0, 0x0e, 0xc5, 0x83, 0x18, 0x75, 0x0c, 0x32, 0xfb, 0x0e, - 0x6d, 0x62, 0x83, 0xc7, 0xcc, 0xc2, 0x3d, 0xc6, 0x56, 0x68, 0xa2, 0xa0, 0xb0, 0xdf, 0xbb, 0xa8, - 0x45, 0xb1, 0x59, 0x48, 0xa8, 0x79, 0x80, 0x2a, 0xb6, 0x5d, 0x8b, 0xd0, 0x06, 0x36, 0x0b, 0x49, - 0x35, 0x03, 0xa3, 0xfc, 0x21, 0x29, 0x36, 0x0b, 0x43, 0x8f, 0xff, 0x24, 0x21, 0xdf, 0x4f, 0xf0, - 0x43, 0xdf, 0x12, 0x64, 0xf6, 0xb7, 0xeb, 0xbb, 0xeb, 0x6b, 0xb5, 0x8d, 0xda, 0x7a, 0xb5, 0x70, - 0x6f, 0x6e, 0xec, 0xfc, 0xa2, 0x14, 0xaf, 0x62, 0xfb, 0xf9, 0xd5, 0xfd, 0xe7, 0x05, 0x65, 0x6e, - 0xf4, 0xfc, 0xa2, 0xc4, 0x7e, 0xb2, 0x68, 0x5c, 0x5f, 0xdf, 0xdc, 0x2c, 0x24, 0xe6, 0x52, 0xe7, - 0x17, 0x25, 0xfe, 0x9b, 0xd9, 0x65, 0x7d, 0x6f, 0x67, 0x57, 0x67, 0x5d, 0x93, 0x73, 0xd9, 0xf3, - 0x8b, 0x52, 0x58, 0x66, 0xee, 0x97, 0xff, 0xe6, 0x44, 0x43, 0x73, 0xb9, 0xf3, 0x8b, 0x52, 0x54, - 0xc1, 0x28, 0xf7, 0x2a, 0x1f, 0xad, 0x73, 0xca, 0x61, 0x41, 0x19, 0x94, 0x19, 0x25, 0xff, 0xcd, - 0x29, 0x47, 0x04, 0x65, 0x58, 0xa1, 0x4e, 0xc3, 0xc8, 0xea, 0xfe, 0x73, 0x7d, 0x77, 0xa7, 0x30, - 0x3a, 0x07, 0xe7, 0x17, 0x25, 0x59, 0x62, 0xd6, 0xc2, 0xda, 0x59, 0x43, 0x6a, 0x2e, 0x73, 0x7e, - 0x51, 0x0a, 0x8a, 0xea, 0x02, 0x00, 0xeb, 0x53, 0xd9, 0xdb, 0xd9, 0xaa, 0xad, 0x15, 0xd2, 0x73, - 0xf9, 0xf3, 0x8b, 0x52, 0xac, 0x86, 0x49, 0x83, 0x77, 0x95, 0x1d, 0x40, 0x48, 0x23, 0x56, 0xf5, - 0xf8, 0x8f, 0x14, 0xc8, 0xad, 0x07, 0x67, 0x49, 0x5c, 0x82, 0xf7, 0xa1, 0x18, 0xd3, 0x4a, 0x5b, - 0x9b, 0x50, 0x91, 0xd0, 0x61, 0x41, 0x51, 0x73, 0x90, 0xe6, 0x77, 0x32, 0x1b, 0xc4, 0xb2, 0x0a, - 0x09, 0x75, 0x0e, 0xa6, 0x79, 0x71, 0x0b, 0xf9, 0x46, 0x43, 0x13, 0xdf, 0x8e, 0x72, 0xc5, 0x14, - 0x92, 0xcc, 0x40, 0xa2, 0xb6, 0x6d, 0xfc, 0x4a, 0xd4, 0x0f, 0xa9, 0x53, 0x30, 0x2e, 0x3f, 0x5d, - 0x93, 0xdf, 0x83, 0x12, 0xd7, 0x29, 0x0c, 0x33, 0x28, 0xf1, 0x52, 0xb8, 0xf3, 0x3d, 0x62, 0x61, - 0xe4, 0xf1, 0x77, 0x02, 0x7d, 0x6f, 0x21, 0x7a, 0xcc, 0x64, 0xb6, 0xbf, 0xbd, 0x5f, 0xe7, 0xaa, - 0xe6, 0x32, 0x13, 0x25, 0xa6, 0xe5, 0xca, 0x76, 0xa8, 0xe5, 0xca, 0xf6, 0x73, 0x26, 0x45, 0x6d, - 0xfd, 0xe9, 0xfe, 0x66, 0x45, 0x2b, 0x24, 0x84, 0x14, 0x65, 0x91, 0x49, 0x69, 0x6d, 0x67, 0xbb, - 0x5a, 0xdb, 0xab, 0xed, 0x6c, 0x57, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, 0xcc, 0x54, - 0x6b, 0xda, 0xfa, 0x1a, 0x2b, 0x32, 0x45, 0xea, 0x3b, 0x9a, 0xfe, 0xac, 0xf6, 0xf4, 0xd9, 0xba, - 0x56, 0x48, 0xcd, 0x8d, 0x9f, 0x5f, 0x94, 0x72, 0x6d, 0x95, 0xed, 0xfd, 0xb9, 0xb8, 0x77, 0x34, - 0x7d, 0x73, 0xe7, 0x67, 0xd7, 0xb5, 0x42, 0x41, 0xf4, 0x6f, 0xab, 0x54, 0xe7, 0x21, 0xb3, 0xf7, - 0x7c, 0x77, 0x5d, 0xdf, 0xaa, 0x68, 0x1f, 0xad, 0xef, 0x15, 0x4a, 0x62, 0x2a, 0xa2, 0xa4, 0xce, - 0x02, 0xf0, 0xc6, 0xcd, 0xda, 0x56, 0x6d, 0xaf, 0xf0, 0xe1, 0x5c, 0xfa, 0xfc, 0xa2, 0x34, 0xcc, - 0x0b, 0xab, 0x8d, 0xef, 0x7f, 0xb6, 0xa0, 0xfc, 0xf0, 0xb3, 0x05, 0xe5, 0x9f, 0x3e, 0x5b, 0x50, - 0xbe, 0xfb, 0xf9, 0xc2, 0xbd, 0x1f, 0x7e, 0xbe, 0x70, 0xef, 0xef, 0x3e, 0x5f, 0xb8, 0xf7, 0x8d, - 0xed, 0x58, 0x9a, 0x54, 0x0b, 0x1c, 0xf8, 0x26, 0x3a, 0xa0, 0x2b, 0xa1, 0x3b, 0x7f, 0xc7, 0x70, - 0x3d, 0x1c, 0x2f, 0x36, 0x10, 0x71, 0x56, 0x6c, 0x97, 0xa5, 0xeb, 0x34, 0xfa, 0x4b, 0x14, 0x3c, - 0xa5, 0x3a, 0x18, 0xe1, 0xdf, 0x3f, 0xfe, 0xbf, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x35, 0xcc, - 0x95, 0x72, 0xac, 0x42, 0x00, 0x00, + // 4472 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xd9, 0x6f, 0x64, 0xd9, + 0x59, 0xef, 0x5b, 0xe5, 0xa5, 0xea, 0xab, 0xc5, 0xe5, 0xeb, 0xad, 0x6c, 0x77, 0xdb, 0x35, 0xd5, + 0xd3, 0x19, 0x4f, 0xcf, 0x8c, 0x9d, 0x1e, 0x98, 0x68, 0x32, 0x51, 0x94, 0x29, 0x6f, 0xd3, 0xc5, + 0x78, 0xcb, 0x2d, 0x7b, 0xa0, 0x13, 0x25, 0x57, 0xc7, 0xf7, 0x1e, 0xbb, 0x4e, 0xfb, 0x2e, 0xd5, + 0xf7, 0xdc, 0x72, 0xdb, 0x83, 0x90, 0x78, 0x18, 0x21, 0x62, 0x40, 0x04, 0x21, 0x84, 0x84, 0x64, + 0x14, 0x1e, 0x10, 0x82, 0x17, 0x78, 0x44, 0x82, 0x07, 0x24, 0x04, 0xe4, 0x21, 0x48, 0x79, 0xe0, + 0x01, 0x21, 0x11, 0xd0, 0x0c, 0x12, 0x88, 0xbf, 0x01, 0x45, 0xe8, 0x2c, 0x77, 0xa9, 0xc5, 0xe5, + 0x2a, 0xdb, 0x03, 0x81, 0xbc, 0x74, 0xd7, 0x59, 0xbe, 0xdf, 0x77, 0xce, 0xf7, 0x7d, 0xe7, 0xfb, + 0xbe, 0xb3, 0x5c, 0xc3, 0xeb, 0xc4, 0x79, 0x8e, 0x0d, 0x9f, 0x9c, 0xe2, 0x15, 0x7c, 0x66, 0xd4, + 0x91, 0x73, 0x8c, 0x57, 0x4e, 0x9f, 0x1c, 0x62, 0x1f, 0x3d, 0x09, 0x2b, 0x96, 0x1b, 0x9e, 0xeb, + 0xbb, 0xea, 0x5c, 0xd8, 0x75, 0x39, 0x6c, 0x91, 0x5d, 0xe7, 0x26, 0x8f, 0xdd, 0x63, 0x97, 0x77, + 0x5b, 0x61, 0xbf, 0x04, 0xc5, 0xdc, 0x82, 0xe1, 0x52, 0xdb, 0xa5, 0x2b, 0x87, 0x88, 0x46, 0xa8, + 0x86, 0x4b, 0x1c, 0xd9, 0xfe, 0x28, 0x62, 0xee, 0x7a, 0xc8, 0xb0, 0xa2, 0x4e, 0xa2, 0x28, 0xbb, + 0x8d, 0x23, 0x9b, 0x38, 0xee, 0x0a, 0xff, 0x57, 0x54, 0x95, 0xff, 0x79, 0x0a, 0x46, 0xf6, 0x90, + 0x87, 0x6c, 0xaa, 0x62, 0x58, 0xa4, 0x0d, 0xd7, 0xd7, 0x6d, 0xe4, 0x9d, 0x60, 0x5f, 0x27, 0x0e, + 0xf5, 0x91, 0xe3, 0xeb, 0x16, 0xa1, 0x3e, 0x71, 0x8e, 0xf5, 0x23, 0x8c, 0x8b, 0x4a, 0x49, 0x59, + 0xca, 0xbc, 0x3d, 0xbb, 0x2c, 0x86, 0xb3, 0xcc, 0x86, 0x13, 0x8c, 0x7c, 0x79, 0xcd, 0x25, 0xce, + 0xea, 0xd0, 0xf7, 0x7f, 0xb4, 0x78, 0x4f, 0x9b, 0x67, 0x38, 0xdb, 0x1c, 0xa6, 0x2a, 0x50, 0xb6, + 0x04, 0xc8, 0x26, 0xc6, 0xea, 0x0b, 0x78, 0x64, 0x62, 0x8f, 0x9c, 0x22, 0x36, 0xdc, 0x5e, 0xcc, + 0x12, 0xfd, 0x31, 0x7b, 0x25, 0x42, 0xbb, 0x8a, 0x25, 0x82, 0x79, 0x13, 0x1f, 0xa1, 0xa6, 0xe5, + 0xeb, 0x72, 0x86, 0x27, 0xd8, 0x63, 0x3c, 0x74, 0x0f, 0xf9, 0xb8, 0x98, 0x2c, 0x29, 0x4b, 0xe9, + 0xd5, 0x87, 0x0c, 0xed, 0x9f, 0x7e, 0xb4, 0x38, 0x2f, 0xf8, 0x51, 0xf3, 0x64, 0x99, 0xb8, 0x2b, + 0x36, 0xf2, 0xeb, 0xcb, 0x5b, 0xf8, 0x18, 0x19, 0xe7, 0xeb, 0xd8, 0xd0, 0x66, 0x24, 0x4e, 0x8d, + 0x4f, 0xf0, 0x04, 0x7b, 0x9b, 0x18, 0x6b, 0xc8, 0xef, 0x64, 0xe1, 0xb7, 0xb2, 0x18, 0xba, 0x19, + 0x8b, 0xfd, 0x38, 0x0b, 0x1b, 0x5e, 0x09, 0x58, 0xb4, 0x08, 0xb0, 0x85, 0xd1, 0x70, 0xff, 0x8c, + 0x1e, 0x48, 0xb4, 0xf5, 0x98, 0xfc, 0xae, 0x65, 0xd7, 0x36, 0xaf, 0x91, 0xdb, 0xb0, 0x6b, 0x99, + 0x9d, 0x09, 0xf7, 0x03, 0x76, 0xc4, 0x21, 0x3e, 0x41, 0x16, 0xb3, 0x8d, 0x63, 0xe2, 0x30, 0x46, + 0xc4, 0x2d, 0x8e, 0xf6, 0xcf, 0x69, 0x56, 0x02, 0x55, 0x05, 0xce, 0x36, 0x87, 0xd1, 0x18, 0x8a, + 0x6a, 0x41, 0x29, 0xe0, 0x62, 0x23, 0xe2, 0xf8, 0xd8, 0x41, 0x8e, 0x81, 0x5b, 0x39, 0xa5, 0x06, + 0x9f, 0xd3, 0x76, 0x84, 0x15, 0xe7, 0xf6, 0x2e, 0x14, 0x03, 0x6e, 0x47, 0x4d, 0xc7, 0x64, 0x86, + 0xcd, 0xfa, 0x79, 0xa7, 0xc8, 0x2a, 0xa6, 0x4b, 0xca, 0x52, 0x52, 0x9b, 0x96, 0xed, 0x9b, 0xa2, + 0xb9, 0x2a, 0x5b, 0xd5, 0xd7, 0xa1, 0x10, 0x50, 0xd8, 0x4d, 0xcb, 0x27, 0x0d, 0x0b, 0x17, 0x81, + 0x53, 0x8c, 0xc9, 0xfa, 0x6d, 0x59, 0xad, 0xfe, 0x02, 0x4c, 0x7b, 0xd8, 0x42, 0xe7, 0x52, 0x2d, + 0xb4, 0x8e, 0x3c, 0xa9, 0x9c, 0x4c, 0xff, 0x13, 0x99, 0x90, 0x10, 0x9b, 0x18, 0xd7, 0x18, 0x00, + 0x57, 0x09, 0x81, 0xc5, 0x60, 0xf8, 0x75, 0xb7, 0xe9, 0x59, 0xe7, 0xe1, 0x2c, 0x18, 0xbc, 0x6e, + 0xa0, 0x46, 0x31, 0xdb, 0x3f, 0x8b, 0x60, 0x7d, 0x3c, 0xe5, 0x50, 0x72, 0xc2, 0x8c, 0xcf, 0x1a, + 0x6a, 0xc4, 0xb5, 0x2f, 0x59, 0x71, 0x41, 0x61, 0xea, 0x8b, 0xa9, 0xe4, 0x06, 0xd7, 0xbe, 0xe0, + 0x53, 0x95, 0x30, 0x7c, 0x42, 0xeb, 0xb0, 0x68, 0xa3, 0xb3, 0xb8, 0x39, 0xbb, 0x9e, 0x89, 0x3d, + 0x9d, 0x12, 0x13, 0xeb, 0x86, 0xdb, 0x74, 0xfc, 0x62, 0xbe, 0xa4, 0x2c, 0xe5, 0xb4, 0x79, 0x1b, + 0x9d, 0x45, 0x76, 0xba, 0xcb, 0x3a, 0xd5, 0x88, 0x89, 0xd7, 0x58, 0x17, 0x95, 0xc2, 0x6b, 0xc4, + 0x79, 0xae, 0x7b, 0xf8, 0x25, 0xf2, 0x4c, 0x9d, 0xb2, 0x15, 0x61, 0xea, 0x1e, 0x7e, 0xd1, 0x24, + 0x1e, 0xb6, 0xb1, 0xe3, 0xeb, 0x7e, 0xdd, 0xc3, 0xb4, 0xee, 0x5a, 0x66, 0x71, 0x8c, 0x0f, 0xfb, + 0x81, 0x1c, 0xf6, 0x54, 0xe7, 0xb0, 0xab, 0x8e, 0xaf, 0x3d, 0x24, 0xce, 0x73, 0x8d, 0x83, 0xd5, + 0x38, 0x96, 0x16, 0x41, 0xed, 0x07, 0x48, 0xea, 0x07, 0x50, 0xf2, 0x3d, 0x24, 0x84, 0xcf, 0xfb, + 0x52, 0xfd, 0x14, 0x0b, 0x5f, 0x69, 0x36, 0xb9, 0xdd, 0x3a, 0xc5, 0x02, 0x37, 0x90, 0x07, 0xb2, + 0x9f, 0x80, 0xa4, 0x1f, 0x89, 0x5e, 0xeb, 0xb2, 0x13, 0x93, 0xb4, 0x45, 0x5e, 0x34, 0x89, 0x89, + 0x7c, 0xd7, 0x0b, 0x27, 0x11, 0x19, 0xcd, 0xf8, 0x00, 0x92, 0x8e, 0x80, 0xe4, 0xf8, 0x43, 0xd3, + 0x39, 0x83, 0xd7, 0x0f, 0x89, 0x83, 0xbc, 0x73, 0xdd, 0x6d, 0x30, 0xb6, 0xb4, 0x97, 0xa3, 0x57, + 0xfb, 0x73, 0xf4, 0xaf, 0x0a, 0xc4, 0x5d, 0x01, 0x78, 0x95, 0xaf, 0xff, 0x65, 0x05, 0x4a, 0xc8, + 0x77, 0x6d, 0x62, 0x04, 0x2c, 0x85, 0x8e, 0x91, 0x61, 0x60, 0x4a, 0x75, 0x0b, 0x9f, 0x62, 0xab, + 0x38, 0x51, 0x52, 0x96, 0xf2, 0x6f, 0xbf, 0xbb, 0x7c, 0x75, 0x20, 0x5e, 0xae, 0x70, 0x0c, 0xc1, + 0x85, 0x1b, 0x40, 0x85, 0x03, 0x6c, 0x31, 0x7a, 0xed, 0x3e, 0xea, 0xd1, 0xaa, 0x9e, 0xc1, 0x6b, + 0x3c, 0x06, 0x74, 0x1b, 0x06, 0x5b, 0xa2, 0x72, 0x45, 0x13, 0xec, 0x15, 0x27, 0xfb, 0x97, 0x76, + 0x99, 0x61, 0x76, 0x8c, 0x6a, 0x13, 0xe3, 0xed, 0x10, 0x4e, 0xfd, 0x44, 0x81, 0xb7, 0x62, 0xd6, + 0xdd, 0xc7, 0x00, 0xa6, 0xfa, 0x1f, 0xc0, 0x52, 0x84, 0x7c, 0xcd, 0x30, 0x7e, 0x4d, 0x81, 0x27, + 0x6d, 0xea, 0xef, 0x63, 0x28, 0xd3, 0xfd, 0x0f, 0xe5, 0x8d, 0x16, 0x53, 0xb8, 0x66, 0x34, 0xdf, + 0x86, 0x59, 0x9b, 0x38, 0xc4, 0x46, 0x96, 0xce, 0x73, 0x1e, 0xc3, 0xb5, 0xa2, 0x00, 0x36, 0xd3, + 0x3f, 0xd3, 0x69, 0x89, 0xb2, 0x27, 0x41, 0x82, 0xc8, 0xf5, 0x4d, 0x78, 0x83, 0xd0, 0xd0, 0xb0, + 0x3b, 0x73, 0x1b, 0x0b, 0x35, 0x1d, 0xa3, 0xae, 0x63, 0x07, 0x1d, 0x5a, 0xd8, 0x2c, 0x16, 0x4b, + 0xca, 0x52, 0x4a, 0xfb, 0x02, 0xa1, 0xd2, 0x76, 0xd7, 0xdb, 0xd2, 0x97, 0x2d, 0xde, 0x7d, 0x43, + 0xf4, 0x66, 0x2e, 0xab, 0xe1, 0x52, 0x5f, 0x77, 0x1d, 0xeb, 0x5c, 0xb7, 0x5d, 0x13, 0xeb, 0x75, + 0x4c, 0x8e, 0xeb, 0x71, 0x27, 0x33, 0xcb, 0x97, 0xfd, 0x3c, 0xeb, 0xb6, 0xeb, 0x58, 0xe7, 0xdb, + 0xae, 0x89, 0x9f, 0xf2, 0x3e, 0x91, 0xf7, 0x38, 0x86, 0x27, 0x32, 0xc4, 0x99, 0xd8, 0xf0, 0x30, + 0xa2, 0x58, 0x6f, 0x78, 0xc4, 0xc0, 0xba, 0x4f, 0x6c, 0x4c, 0x7d, 0x64, 0x37, 0x22, 0x3c, 0x9d, + 0x62, 0xc3, 0x75, 0x4c, 0x5a, 0x9c, 0xe3, 0xb8, 0x6f, 0x0a, 0xc2, 0x75, 0x49, 0xb7, 0xc7, 0xc8, + 0xf6, 0x03, 0xaa, 0x90, 0x43, 0x4d, 0xd0, 0xa8, 0xaf, 0xc1, 0x58, 0xb0, 0x92, 0x74, 0x64, 0xda, + 0xc4, 0xa1, 0xc5, 0xf9, 0x52, 0x72, 0x29, 0xad, 0xe5, 0x83, 0xea, 0x0a, 0xaf, 0x55, 0xb7, 0x60, + 0x82, 0x39, 0x51, 0xd4, 0x34, 0x98, 0x0a, 0x75, 0xe6, 0x96, 0x59, 0x3c, 0xb9, 0xdf, 0x8f, 0xc3, + 0x2c, 0x10, 0xe7, 0x79, 0x45, 0x10, 0x6e, 0xa3, 0xb3, 0x35, 0xd4, 0x78, 0xaf, 0xf8, 0x1f, 0xdf, + 0x5b, 0x54, 0x2e, 0xfe, 0xfd, 0xcf, 0x1e, 0x87, 0xdc, 0x57, 0x44, 0x52, 0x5b, 0xfe, 0x44, 0x81, + 0x09, 0x21, 0xd7, 0x56, 0xa3, 0x98, 0x87, 0x74, 0xe0, 0x91, 0x4c, 0x9e, 0xd6, 0xa6, 0xb5, 0x94, + 0xa8, 0xa8, 0x9a, 0xea, 0xcf, 0x41, 0xbe, 0xcd, 0x36, 0x13, 0xfd, 0x9b, 0x49, 0xee, 0x28, 0xce, + 0xe8, 0xbd, 0xa1, 0x5f, 0xfd, 0xde, 0xe2, 0xbd, 0xf2, 0x6f, 0xa7, 0xa1, 0xd0, 0xae, 0x68, 0x75, + 0x1a, 0x46, 0x7c, 0x62, 0x9c, 0x60, 0x4f, 0x0e, 0x40, 0x96, 0xd4, 0x45, 0xc8, 0x88, 0xb4, 0x5d, + 0x67, 0xae, 0x50, 0xf0, 0xd6, 0x40, 0x54, 0xad, 0x22, 0x8a, 0xd5, 0x57, 0x20, 0x2b, 0x3b, 0xbc, + 0x68, 0xba, 0x41, 0x02, 0xab, 0x49, 0xa2, 0xaf, 0xb3, 0x2a, 0x75, 0x23, 0xc4, 0xf0, 0xcf, 0x1b, + 0x22, 0xff, 0xcc, 0xbf, 0xfd, 0x6a, 0xcc, 0xe1, 0xc9, 0x8d, 0x41, 0xe0, 0xee, 0x76, 0x79, 0x71, + 0xff, 0xbc, 0x81, 0x03, 0x4e, 0xec, 0xb7, 0xba, 0x0c, 0x13, 0x12, 0x86, 0x1a, 0xc8, 0xc2, 0xfa, + 0x11, 0x32, 0x7c, 0xd7, 0xe3, 0x59, 0x66, 0x4e, 0x1b, 0x17, 0x4d, 0x35, 0xd6, 0xb2, 0xc9, 0x1b, + 0xd8, 0xd0, 0xf9, 0x90, 0x74, 0x13, 0x3b, 0xae, 0x2d, 0xd2, 0x43, 0x0d, 0x78, 0xd5, 0x3a, 0xab, + 0x69, 0x95, 0xfb, 0x68, 0x9b, 0xdc, 0x0f, 0x60, 0xb2, 0x6b, 0xee, 0x37, 0x40, 0x46, 0xa6, 0x92, + 0xce, 0xa4, 0xef, 0x5b, 0x50, 0xbc, 0x32, 0xd9, 0x4b, 0x0f, 0xb2, 0xfe, 0xbb, 0x67, 0x79, 0x55, + 0xc8, 0xb7, 0x25, 0xe1, 0xd0, 0x3f, 0x68, 0xd6, 0x8e, 0x27, 0xc1, 0x55, 0xc8, 0xb7, 0x25, 0xd8, + 0x03, 0xe4, 0x70, 0x59, 0x3f, 0x0e, 0x75, 0x75, 0x5a, 0x98, 0xbd, 0x65, 0x5a, 0x58, 0x82, 0x0c, + 0xa1, 0x7b, 0xd8, 0x6b, 0x60, 0xbf, 0x89, 0x2c, 0x9e, 0x9a, 0xa5, 0xb4, 0x78, 0x95, 0xfa, 0x3e, + 0x8c, 0x50, 0x1f, 0xf9, 0x4d, 0xca, 0xd3, 0xa9, 0xfc, 0xdb, 0x4b, 0xbd, 0x02, 0xad, 0x58, 0x0c, + 0x35, 0xde, 0x5f, 0x93, 0x74, 0xaa, 0x06, 0x13, 0x36, 0x71, 0x42, 0x27, 0x65, 0x9c, 0xe8, 0x94, + 0x7c, 0x8c, 0x65, 0x3e, 0xd5, 0xd7, 0xd0, 0x0b, 0x36, 0x71, 0xa4, 0xb3, 0x32, 0x4e, 0x6a, 0xe4, + 0x63, 0x2e, 0x11, 0x86, 0xf9, 0xa2, 0x89, 0x1c, 0x9f, 0xf8, 0xe7, 0x31, 0xd8, 0xc2, 0x00, 0x12, + 0xb1, 0x89, 0xf3, 0x75, 0x89, 0x10, 0x22, 0x6f, 0x42, 0x96, 0x21, 0x3b, 0x2e, 0x73, 0x49, 0xc8, + 0x1a, 0x24, 0x87, 0xca, 0xd8, 0xc4, 0xd9, 0x91, 0x74, 0xea, 0x24, 0x0c, 0x73, 0xa7, 0xc9, 0x33, + 0xa2, 0xb4, 0x26, 0x0a, 0xea, 0x1b, 0x30, 0xce, 0x7f, 0xe8, 0x0d, 0xec, 0xd9, 0x84, 0x52, 0x16, + 0xf2, 0x78, 0x06, 0x93, 0xd3, 0x0a, 0xbc, 0x61, 0x2f, 0xaa, 0x57, 0x1f, 0x41, 0x3e, 0x58, 0x80, + 0x06, 0x0b, 0x56, 0x94, 0xa7, 0x18, 0x39, 0x2d, 0x27, 0xd7, 0xa0, 0xa8, 0x94, 0x5e, 0xe9, 0xc7, + 0x29, 0x98, 0x58, 0xed, 0x4c, 0xaa, 0xae, 0x74, 0x4c, 0x0f, 0x21, 0x17, 0x78, 0x83, 0x73, 0xfb, + 0xd0, 0xb5, 0xa4, 0x6b, 0x92, 0xce, 0xa8, 0xc6, 0xeb, 0x58, 0x08, 0x90, 0x9d, 0x1a, 0x9e, 0x7b, + 0x4a, 0x4c, 0xec, 0x49, 0xff, 0x94, 0x17, 0xd5, 0x7b, 0xb2, 0xf6, 0x7f, 0xcb, 0x45, 0x3d, 0x81, + 0x49, 0x7c, 0xd6, 0x20, 0x22, 0x1d, 0x8e, 0x02, 0x20, 0xf7, 0x55, 0x49, 0x6d, 0x22, 0x6a, 0x0b, + 0xa3, 0x1c, 0x23, 0xa1, 0xd8, 0xf7, 0x2d, 0x99, 0xde, 0x87, 0x24, 0xa3, 0x82, 0x24, 0x6a, 0x8b, + 0x48, 0x42, 0x55, 0xa6, 0xe2, 0xaa, 0x6c, 0x73, 0x8f, 0xe9, 0xde, 0xee, 0x11, 0xda, 0xdc, 0x63, + 0xa7, 0xa3, 0xc9, 0xdc, 0x9d, 0xa3, 0xc9, 0xde, 0xbd, 0xa3, 0xc9, 0xdd, 0xd2, 0xd1, 0xfc, 0xb4, + 0xb9, 0x91, 0x1d, 0x28, 0xc4, 0xcc, 0x8c, 0x0f, 0x3a, 0xe6, 0x4a, 0x94, 0xeb, 0x30, 0xc7, 0x22, + 0x62, 0x3e, 0xe2, 0x0e, 0xb7, 0xa4, 0xde, 0xd0, 0x2d, 0x7d, 0x7e, 0x0e, 0xe8, 0xdf, 0x12, 0x30, + 0xb3, 0xc1, 0x16, 0xdc, 0xf9, 0x66, 0xd3, 0x6f, 0x7a, 0x38, 0xdc, 0xd5, 0x1d, 0xb9, 0xbd, 0x33, + 0xb4, 0xab, 0x16, 0x71, 0xe2, 0xea, 0x45, 0xfc, 0x45, 0x98, 0xf4, 0x5f, 0xa2, 0x06, 0xdb, 0xb0, + 0x7b, 0xf1, 0x45, 0x9c, 0xe4, 0x24, 0x2a, 0x6b, 0xab, 0xb1, 0xa6, 0x88, 0xe2, 0x25, 0x7c, 0x21, + 0xce, 0x24, 0x22, 0x16, 0xf6, 0x64, 0x34, 0xed, 0xa6, 0xc5, 0xf3, 0xb9, 0x41, 0x8e, 0xf7, 0xca, + 0xb1, 0xb1, 0x05, 0x2c, 0xb9, 0xba, 0xd6, 0x42, 0xb8, 0xae, 0x86, 0x30, 0xc0, 0xc1, 0x5e, 0xbb, + 0x21, 0x94, 0xff, 0x36, 0x01, 0x13, 0x61, 0x74, 0xee, 0x57, 0xc4, 0xdf, 0x80, 0x99, 0xab, 0x4e, + 0x7d, 0x06, 0xc8, 0x86, 0x27, 0xeb, 0xdd, 0x8e, 0x7b, 0x0e, 0x60, 0xb2, 0xeb, 0x31, 0xcf, 0x00, + 0x27, 0xb1, 0x6a, 0xbd, 0xf3, 0x7c, 0xe7, 0x67, 0x61, 0xda, 0xc1, 0x67, 0xd1, 0x61, 0x5b, 0xa4, + 0xe4, 0x21, 0xae, 0xe4, 0x49, 0xd6, 0x2a, 0x87, 0x12, 0xa9, 0x39, 0x76, 0xd6, 0x16, 0x9e, 0xce, + 0x0d, 0xb7, 0x9c, 0xb5, 0x05, 0xc7, 0x72, 0xe5, 0xcf, 0x14, 0x98, 0x6e, 0x13, 0xa4, 0x84, 0x53, + 0x35, 0x50, 0x23, 0x83, 0x08, 0x46, 0x20, 0x84, 0xda, 0xdf, 0x84, 0xc6, 0x23, 0xf2, 0x00, 0x73, + 0x07, 0x0a, 0x31, 0x4c, 0x61, 0x07, 0x03, 0xc8, 0x7e, 0x2c, 0x22, 0x16, 0x0e, 0xe1, 0x11, 0xe4, + 0x2d, 0x44, 0x3b, 0x8d, 0x3f, 0xc7, 0x6a, 0x43, 0x81, 0x94, 0x7f, 0x43, 0x81, 0x85, 0xf6, 0xcd, + 0x4a, 0x2d, 0x34, 0xa9, 0xeb, 0x2d, 0xa7, 0x9b, 0xf9, 0x26, 0x6e, 0x61, 0xbe, 0x5f, 0x85, 0xc9, + 0x9d, 0x6e, 0x8a, 0x7b, 0x04, 0x79, 0xae, 0xee, 0x68, 0x3a, 0x8a, 0x98, 0x0e, 0xab, 0x8d, 0xa6, + 0xf3, 0x9f, 0x0a, 0xe4, 0xb7, 0x89, 0xc9, 0xb1, 0x2a, 0x8e, 0xb9, 0xbf, 0xbb, 0xaa, 0xbe, 0x0f, + 0x69, 0x9b, 0x98, 0x72, 0x68, 0x4a, 0xff, 0x2e, 0x36, 0x65, 0x4b, 0x1c, 0x16, 0x40, 0x0f, 0x99, + 0xd9, 0x1e, 0x36, 0xcf, 0x3b, 0x66, 0x78, 0x2d, 0x4c, 0x96, 0x91, 0xae, 0x36, 0xcf, 0x05, 0xd4, + 0x87, 0x30, 0xc6, 0xa1, 0x28, 0xb6, 0x2c, 0x89, 0x95, 0xec, 0x1f, 0x2b, 0xc7, 0x68, 0x6b, 0xd8, + 0xb2, 0x84, 0xac, 0xfe, 0x7c, 0x04, 0xa0, 0x16, 0xde, 0xbe, 0x5c, 0x99, 0xc9, 0x3d, 0x00, 0x60, + 0x7b, 0x4b, 0x99, 0x87, 0x88, 0x34, 0x2e, 0xcd, 0x6a, 0x44, 0x1a, 0xd2, 0x96, 0xa7, 0x24, 0x3b, + 0xf2, 0x94, 0xce, 0x54, 0x64, 0xe8, 0xee, 0x52, 0x91, 0xe1, 0xbb, 0x4f, 0x45, 0x46, 0x6e, 0x99, + 0x8a, 0xf4, 0xdc, 0xb6, 0x46, 0x79, 0x4a, 0xea, 0x6e, 0xf3, 0x94, 0xf4, 0xe7, 0x93, 0xa7, 0xc0, + 0x1d, 0x6f, 0x77, 0x32, 0xb7, 0xdd, 0xee, 0x64, 0xaf, 0xdd, 0xee, 0xe4, 0xae, 0xc8, 0x36, 0x1e, + 0x42, 0x4e, 0xda, 0xb1, 0x4c, 0x36, 0xc4, 0xf9, 0x7d, 0x56, 0x98, 0xb2, 0xa8, 0xeb, 0x92, 0x92, + 0x8c, 0x75, 0x49, 0x49, 0xca, 0x7f, 0xa8, 0xc0, 0xe8, 0x3a, 0x6e, 0xb8, 0x94, 0xf8, 0xea, 0x1e, + 0x8c, 0xa3, 0x53, 0x44, 0x2c, 0x74, 0xc8, 0x4f, 0x61, 0x2c, 0xb6, 0xe7, 0x1f, 0xc4, 0x99, 0x17, + 0x42, 0xea, 0x55, 0x41, 0xac, 0x3e, 0x85, 0x9c, 0xef, 0xfa, 0xc8, 0x0a, 0xd1, 0x12, 0x83, 0x58, + 0x39, 0xa3, 0x94, 0x48, 0xe5, 0x37, 0x61, 0xb2, 0xd6, 0x3c, 0x44, 0x06, 0xbf, 0xb0, 0xd8, 0xf7, + 0x90, 0x89, 0x77, 0x5c, 0xc6, 0x61, 0x12, 0x86, 0x1d, 0x37, 0x18, 0x67, 0x4e, 0x13, 0x05, 0x16, + 0xb2, 0xd2, 0xfc, 0x50, 0x94, 0xfb, 0xed, 0x87, 0x90, 0xa3, 0x21, 0x6d, 0xe4, 0xbb, 0xb3, 0x51, + 0x65, 0xd5, 0x64, 0x9d, 0xf8, 0x5a, 0xc4, 0x06, 0x69, 0x10, 0xec, 0xf8, 0xc1, 0x36, 0xef, 0x08, + 0x63, 0x2d, 0xa8, 0x53, 0xbf, 0x0c, 0xc3, 0xed, 0xbe, 0xea, 0xda, 0x79, 0x08, 0x0a, 0xf5, 0x6b, + 0x90, 0x0a, 0xac, 0x72, 0x10, 0xb7, 0x11, 0x12, 0xa9, 0x05, 0x48, 0x1a, 0xc4, 0x14, 0x7e, 0x42, + 0x63, 0x3f, 0xcb, 0x9f, 0x24, 0x20, 0xcd, 0xdc, 0x1e, 0x9f, 0xe9, 0x75, 0x87, 0x7b, 0x20, 0x8e, + 0x9f, 0x89, 0x73, 0xe4, 0xca, 0x4b, 0xe6, 0x47, 0xbd, 0x56, 0x6c, 0x28, 0x3d, 0x79, 0x0f, 0x91, + 0x76, 0x43, 0x71, 0xae, 0x07, 0x58, 0x7c, 0x07, 0x9b, 0xe4, 0xab, 0xff, 0x7a, 0x2c, 0xbe, 0x85, + 0x15, 0x28, 0x7c, 0x07, 0xcb, 0x4c, 0xc3, 0x23, 0xc7, 0xc7, 0xd8, 0x93, 0xee, 0x7f, 0x68, 0x80, + 0x50, 0x22, 0x29, 0x85, 0xf7, 0xff, 0x41, 0x02, 0xf2, 0x4c, 0x0c, 0x5b, 0xc4, 0x26, 0x52, 0x16, + 0xad, 0xd3, 0x55, 0xee, 0x70, 0xba, 0x89, 0x1b, 0x4e, 0xf7, 0x6b, 0x90, 0x3a, 0x22, 0x16, 0x5f, + 0x1c, 0x83, 0x18, 0x4f, 0x48, 0x74, 0x77, 0xf2, 0x62, 0x61, 0x50, 0x4c, 0xa8, 0x8e, 0x68, 0x9d, + 0xdb, 0x53, 0x56, 0x8e, 0xf4, 0x29, 0xa2, 0xf5, 0xf2, 0x3f, 0x24, 0x60, 0x2c, 0x0a, 0xa6, 0x77, + 0x2f, 0xcf, 0x4d, 0xc8, 0x4a, 0x6f, 0xa0, 0xf3, 0x93, 0xfc, 0x01, 0x5c, 0x42, 0x46, 0x12, 0x3e, + 0x75, 0x2d, 0xb3, 0x6d, 0x1a, 0xc9, 0xb6, 0x69, 0xb4, 0xa9, 0x6d, 0xe8, 0xae, 0xac, 0x74, 0xf8, + 0xa6, 0x56, 0xfa, 0x77, 0x09, 0x18, 0x6b, 0xbb, 0x5d, 0xfd, 0xbf, 0xb6, 0x64, 0xbf, 0x02, 0x23, + 0xe2, 0x18, 0x79, 0x10, 0x07, 0x26, 0x49, 0xee, 0x50, 0x92, 0xff, 0x95, 0x84, 0xf9, 0x28, 0x16, + 0xf0, 0x91, 0x1e, 0xba, 0xee, 0xc9, 0x36, 0xf6, 0x91, 0x89, 0x7c, 0xa4, 0x7e, 0x19, 0x66, 0x4f, + 0x91, 0xc3, 0xd6, 0x8d, 0x6e, 0x31, 0x97, 0x20, 0x2f, 0xde, 0xc4, 0x55, 0xb7, 0x08, 0x13, 0xd3, + 0xb2, 0x43, 0xe4, 0x32, 0xc4, 0x2d, 0xf7, 0xfb, 0xf0, 0xc0, 0xc3, 0x66, 0xd3, 0xc0, 0xe2, 0xea, + 0xa9, 0x93, 0x3c, 0xc1, 0xc9, 0x67, 0x45, 0xa7, 0x5d, 0xc7, 0x3a, 0x6f, 0x47, 0xa8, 0xc3, 0x02, + 0x3a, 0x3e, 0xf6, 0xf0, 0x31, 0xdb, 0x36, 0xc6, 0xb1, 0x42, 0xe7, 0x3f, 0xc0, 0xea, 0x9f, 0x0f, + 0xa1, 0xb4, 0x90, 0x61, 0x90, 0x98, 0xa8, 0x08, 0xe6, 0x22, 0x4e, 0xc1, 0x84, 0x6f, 0x12, 0x62, + 0x8a, 0x21, 0xcc, 0x47, 0x02, 0x25, 0x64, 0xb1, 0x01, 0x8b, 0x01, 0xb0, 0xe1, 0x3a, 0x26, 0x11, + 0x29, 0x4c, 0x8b, 0x40, 0xc4, 0x89, 0xe3, 0x7d, 0xd9, 0x6d, 0x2d, 0xea, 0x15, 0x93, 0xc9, 0x16, + 0x3c, 0x8c, 0x4b, 0xe2, 0x2a, 0xa8, 0x11, 0x0e, 0xb5, 0x18, 0xc9, 0xb6, 0x2b, 0x5a, 0xf9, 0xaf, + 0x15, 0x18, 0x6b, 0x53, 0x7f, 0x14, 0x97, 0x95, 0x5b, 0xc5, 0xe5, 0xc4, 0x4d, 0xe2, 0x72, 0x19, + 0xb2, 0x84, 0x46, 0xfa, 0xe1, 0xfa, 0x4d, 0x69, 0x2d, 0x75, 0x41, 0xec, 0x1e, 0x8a, 0x62, 0xf7, + 0x4b, 0x98, 0x68, 0x9b, 0xc4, 0x3a, 0xb3, 0xdd, 0x0a, 0x0c, 0x73, 0x91, 0x48, 0x1f, 0xfb, 0x46, + 0xaf, 0x35, 0xda, 0x46, 0xaf, 0x09, 0xca, 0x36, 0xbf, 0x98, 0x68, 0x77, 0xef, 0xbf, 0x99, 0x84, + 0xc9, 0xc8, 0x0f, 0xfd, 0x44, 0xc7, 0xcc, 0xc8, 0xdf, 0x24, 0x07, 0xf7, 0x37, 0xf1, 0x80, 0x3b, + 0x74, 0x27, 0x01, 0x77, 0xf8, 0x6e, 0x02, 0xee, 0x48, 0xbb, 0x46, 0x7e, 0x27, 0x09, 0x53, 0xed, + 0x27, 0x0f, 0xff, 0x2f, 0x55, 0xb2, 0x0e, 0x19, 0x79, 0x0d, 0xc9, 0x03, 0xff, 0x00, 0x5a, 0x01, + 0x41, 0xc7, 0xe3, 0xfe, 0xff, 0x98, 0x5e, 0xfe, 0x26, 0x01, 0xa9, 0x3d, 0xb6, 0x31, 0x22, 0xae, + 0xa3, 0x4e, 0xc3, 0x08, 0xa1, 0x5b, 0xae, 0x3c, 0xdd, 0x4a, 0x69, 0xb2, 0x74, 0x7b, 0xf7, 0xb1, + 0x0e, 0x19, 0xec, 0xf8, 0xde, 0xb9, 0x3e, 0xf0, 0xc6, 0x02, 0x38, 0x9d, 0x98, 0xca, 0xad, 0x42, + 0xf3, 0xb7, 0xa0, 0xd8, 0x79, 0x8a, 0xa7, 0x73, 0xf4, 0x41, 0x8e, 0x25, 0xa6, 0x3b, 0xce, 0xf2, + 0x36, 0x18, 0x44, 0xb9, 0x0a, 0x93, 0x31, 0xa3, 0xae, 0x3a, 0x26, 0x31, 0x90, 0xef, 0x5e, 0x93, + 0xfd, 0x4c, 0xc2, 0x30, 0xa1, 0xab, 0x4d, 0x21, 0xd4, 0x94, 0x26, 0x0a, 0xe5, 0xbf, 0x4f, 0x40, + 0x8a, 0x6f, 0xfe, 0xb6, 0xdc, 0x56, 0xd1, 0x2b, 0x37, 0x11, 0x7d, 0x18, 0x35, 0x12, 0x03, 0x47, + 0x8d, 0x8e, 0x2d, 0xa5, 0xc8, 0x3f, 0x5b, 0xb7, 0x94, 0xef, 0x40, 0xf2, 0x08, 0x0f, 0xe4, 0x7d, + 0x58, 0xff, 0x6b, 0xf2, 0x73, 0xf5, 0x5d, 0x98, 0x6a, 0xd9, 0xa8, 0xea, 0xc8, 0x34, 0x3d, 0x4c, + 0xa9, 0x30, 0x60, 0xbe, 0xf0, 0x15, 0x6d, 0x22, 0xbe, 0x6d, 0xad, 0x88, 0x0e, 0x41, 0x14, 0x1a, + 0x8d, 0xa2, 0xd0, 0xef, 0x25, 0x20, 0x17, 0x98, 0xf8, 0x3a, 0xb6, 0x7c, 0xa4, 0xce, 0xc0, 0x28, + 0xa1, 0xba, 0xd5, 0x69, 0xe8, 0x1a, 0xa8, 0xf8, 0x0c, 0x1b, 0x4d, 0x7e, 0x2d, 0x70, 0x13, 0x93, + 0x1f, 0x0f, 0xc9, 0xc3, 0xfc, 0x62, 0x07, 0x0a, 0x11, 0xe6, 0xe0, 0x7e, 0x65, 0x2c, 0x24, 0x16, + 0x2f, 0x13, 0xd4, 0x2d, 0x88, 0xaa, 0x3a, 0x76, 0x49, 0xd7, 0xc2, 0xe5, 0x43, 0x5a, 0x91, 0x67, + 0xfe, 0x41, 0x12, 0xd4, 0xd8, 0xbb, 0xdd, 0xc0, 0xec, 0xba, 0x9e, 0x26, 0xb4, 0xab, 0x7e, 0x0f, + 0xf2, 0x0d, 0x29, 0x57, 0xdd, 0x64, 0x82, 0x95, 0x09, 0xfc, 0xeb, 0xbd, 0x3c, 0x6e, 0x8b, 0x26, + 0xb4, 0x5c, 0xa3, 0x45, 0x31, 0x5f, 0x81, 0x91, 0x06, 0x3a, 0x77, 0x9b, 0xfe, 0x40, 0x9e, 0x57, + 0x90, 0xfc, 0xe4, 0x5b, 0x22, 0x1b, 0x61, 0xc3, 0xb1, 0x06, 0x79, 0xf4, 0xc2, 0xfa, 0x97, 0x7f, + 0x11, 0xd4, 0x28, 0x0d, 0x0a, 0x9d, 0xf5, 0xfb, 0x90, 0x0a, 0x84, 0x27, 0xa3, 0xe6, 0xab, 0xfd, + 0xc8, 0x5d, 0x0b, 0xa9, 0x3a, 0x95, 0x9c, 0xe8, 0x54, 0x72, 0xf9, 0x25, 0x8c, 0x47, 0xcc, 0x83, + 0x43, 0xb4, 0xbe, 0xcc, 0xe3, 0xab, 0x30, 0x6a, 0x8a, 0xfe, 0xd2, 0x2e, 0x1e, 0xf6, 0x1a, 0x9f, + 0x84, 0xd6, 0x02, 0x9a, 0x72, 0x03, 0x72, 0xb2, 0xee, 0xa0, 0x61, 0x22, 0x9f, 0x9f, 0x82, 0x89, + 0x43, 0x6b, 0xe1, 0x46, 0x45, 0x41, 0xad, 0x42, 0x4a, 0x52, 0xd0, 0x62, 0xa2, 0x94, 0x5c, 0xca, + 0xbc, 0xfd, 0x56, 0x7f, 0xf9, 0x64, 0xc0, 0x30, 0x24, 0x2f, 0xff, 0x40, 0x81, 0xc2, 0x9e, 0x4b, + 0x1c, 0x9f, 0xc6, 0x9e, 0x93, 0x7d, 0x13, 0x66, 0xc4, 0x79, 0x78, 0x83, 0xb7, 0xc4, 0x9f, 0x8e, + 0x0d, 0xe0, 0x8f, 0xa7, 0x38, 0x46, 0x37, 0x70, 0xff, 0x0a, 0xf0, 0x01, 0x9c, 0xce, 0x94, 0xdf, + 0x0d, 0xbc, 0xfc, 0xe3, 0x04, 0x2c, 0xec, 0xc7, 0x5f, 0x0c, 0xaf, 0x21, 0xbb, 0x81, 0xc8, 0xb1, + 0xb3, 0xea, 0xba, 0x54, 0x5c, 0xf6, 0xbc, 0x03, 0x33, 0x87, 0xac, 0x80, 0x4d, 0xbd, 0xe5, 0x03, + 0x11, 0x93, 0x16, 0x15, 0xfe, 0xb8, 0x6f, 0x52, 0x36, 0x47, 0x67, 0x25, 0x55, 0x93, 0xaa, 0xcf, + 0x61, 0x26, 0xde, 0x3d, 0x1a, 0x75, 0xa0, 0x82, 0x37, 0x7b, 0x5b, 0x62, 0xeb, 0x40, 0x65, 0x1a, + 0x37, 0x15, 0x7d, 0x5a, 0x12, 0xb5, 0x51, 0xb5, 0x02, 0x0f, 0x82, 0x21, 0x76, 0xf9, 0xb8, 0xc4, + 0xa4, 0xc5, 0x24, 0x1f, 0xe8, 0x9c, 0xec, 0xd4, 0x9e, 0x63, 0xb2, 0xe1, 0x9e, 0xc2, 0x83, 0x4e, + 0xd2, 0xf8, 0xa0, 0x87, 0x6e, 0x3c, 0xe8, 0xf9, 0xf6, 0x4f, 0x54, 0x62, 0x43, 0x2f, 0xff, 0xa5, + 0x02, 0x6a, 0x20, 0x73, 0xa1, 0x81, 0x3d, 0x57, 0x3c, 0xa3, 0x69, 0xbf, 0xa9, 0x16, 0xb7, 0x5b, + 0x79, 0xda, 0x7a, 0x4b, 0xfd, 0x4b, 0x30, 0x29, 0x5e, 0x4f, 0x0a, 0x88, 0xe0, 0x79, 0xb8, 0x94, + 0x71, 0x8f, 0x57, 0xd5, 0x5f, 0x64, 0x63, 0xfb, 0x93, 0x7f, 0x59, 0x5c, 0x3a, 0x26, 0x7e, 0xbd, + 0x79, 0xb8, 0x6c, 0xb8, 0xf6, 0x8a, 0xfc, 0xce, 0x48, 0xfc, 0xf7, 0x16, 0x35, 0x4f, 0x56, 0x58, + 0x8e, 0x4c, 0x39, 0x01, 0xd5, 0x54, 0x1b, 0x9d, 0xb5, 0x0e, 0x95, 0x96, 0xff, 0x38, 0x01, 0xb3, + 0x5d, 0xed, 0x87, 0x9b, 0xce, 0x7b, 0x30, 0x1b, 0x0e, 0x2c, 0x78, 0xa7, 0x1e, 0x3e, 0x30, 0x15, + 0xf3, 0x99, 0x09, 0x3a, 0x04, 0x4f, 0xd4, 0x83, 0xb7, 0xa4, 0xaf, 0x40, 0x36, 0x76, 0x09, 0x25, + 0x26, 0x94, 0xd6, 0x32, 0xd1, 0x2d, 0x14, 0x55, 0x9b, 0x30, 0xdb, 0xfa, 0x2a, 0x5e, 0xe7, 0x0a, + 0x16, 0x9b, 0x84, 0x24, 0x77, 0x27, 0xef, 0xf5, 0xd2, 0x57, 0x6f, 0xc3, 0xd7, 0xa6, 0x5b, 0x9e, + 0xd2, 0x47, 0x0b, 0xe2, 0x4b, 0x30, 0x63, 0x12, 0xfa, 0xa2, 0x89, 0x2c, 0x72, 0x44, 0xb0, 0x19, + 0xb7, 0xb3, 0x21, 0x3e, 0xc8, 0xa9, 0x78, 0x73, 0x68, 0x62, 0xe5, 0xbf, 0x4a, 0xc0, 0xc4, 0x26, + 0xc6, 0xeb, 0x84, 0x8a, 0xb3, 0x7b, 0x22, 0x37, 0x24, 0x35, 0x98, 0x10, 0xde, 0xc3, 0x94, 0x2d, + 0xe2, 0xd2, 0x6a, 0x90, 0xcb, 0x63, 0x4e, 0x1f, 0x00, 0xf3, 0x2b, 0xab, 0x1a, 0x4c, 0xf8, 0x5d, + 0x40, 0x07, 0x49, 0x53, 0xfc, 0x0e, 0xd0, 0x55, 0xc8, 0xc9, 0x0f, 0x1e, 0x90, 0xcd, 0x4f, 0x2a, + 0x92, 0xfd, 0x3c, 0xd8, 0xcd, 0x0a, 0x9a, 0x0a, 0x27, 0x61, 0xe1, 0xfb, 0xd4, 0xb5, 0x9a, 0xf6, + 0x40, 0x41, 0x58, 0x92, 0x94, 0x7f, 0xbd, 0x55, 0x84, 0x35, 0xa3, 0x8e, 0xcd, 0xa6, 0xc5, 0x9f, + 0xc4, 0x1e, 0x36, 0x0d, 0xa6, 0x85, 0xe8, 0x70, 0x6b, 0x48, 0xcb, 0x88, 0x3a, 0x71, 0xf6, 0xf2, + 0x1a, 0x8c, 0xc9, 0x2e, 0xe1, 0x17, 0x13, 0xe2, 0xb9, 0x48, 0x5e, 0x54, 0x87, 0x9f, 0x48, 0xb4, + 0x1b, 0x5e, 0xb2, 0xd3, 0xf0, 0x76, 0x00, 0x7c, 0x22, 0x77, 0xa3, 0x81, 0x67, 0x58, 0xe9, 0x65, + 0x69, 0x5d, 0xd4, 0xae, 0xa5, 0x7d, 0xf9, 0x8b, 0xf6, 0xb2, 0xa8, 0xe1, 0x5e, 0x16, 0xb5, 0x0d, + 0x6a, 0x1b, 0xf2, 0xfe, 0xfe, 0x96, 0xaa, 0xc2, 0x90, 0x1f, 0x84, 0x9e, 0x21, 0x8d, 0xff, 0x66, + 0xc1, 0xd8, 0xf7, 0xad, 0x8e, 0xa7, 0x32, 0x59, 0xdf, 0xb7, 0xa2, 0xab, 0xf2, 0xdf, 0x57, 0x20, + 0xfb, 0x11, 0x17, 0xb4, 0x86, 0x0d, 0xd7, 0x33, 0xf9, 0x55, 0x1f, 0x37, 0x22, 0xa9, 0x31, 0x65, + 0x90, 0xab, 0x3e, 0x46, 0x28, 0xd0, 0x18, 0x8e, 0x1f, 0xc7, 0x19, 0xe4, 0xa4, 0xdb, 0x8f, 0x70, + 0xca, 0xbf, 0xa5, 0x40, 0xbe, 0x22, 0x22, 0xb3, 0x74, 0x40, 0x6a, 0x11, 0x46, 0x65, 0xac, 0x96, + 0x21, 0x3f, 0x28, 0xaa, 0x18, 0x46, 0x3f, 0x47, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x45, 0x81, 0x2c, + 0x4f, 0x89, 0x85, 0xcc, 0x68, 0xef, 0xdd, 0xdc, 0x33, 0x98, 0xb4, 0x90, 0x8f, 0xa9, 0xaf, 0x33, + 0xe7, 0xc2, 0x53, 0x46, 0x37, 0x1a, 0xe1, 0x6b, 0xd7, 0x79, 0x2b, 0xc9, 0x44, 0x53, 0x05, 0x48, + 0x9c, 0x6f, 0xf9, 0x4b, 0x90, 0x8b, 0x12, 0x97, 0xea, 0x3a, 0xbf, 0xf8, 0x6c, 0x49, 0xc0, 0x44, + 0xbc, 0xce, 0x6a, 0xb9, 0x78, 0x06, 0x46, 0xcb, 0x7f, 0xa4, 0x40, 0x26, 0x06, 0xa4, 0xde, 0x87, + 0x74, 0x7b, 0xd0, 0x89, 0x2a, 0x6e, 0xb3, 0x55, 0x8c, 0x6f, 0x53, 0x93, 0x37, 0xd8, 0xa6, 0x96, + 0x6d, 0x18, 0x16, 0x9f, 0xd8, 0x3c, 0x01, 0xa5, 0x31, 0x88, 0x31, 0x2a, 0x0d, 0x46, 0xf2, 0x62, + 0x90, 0x31, 0x2b, 0x2f, 0xca, 0xbf, 0xab, 0xc0, 0x62, 0x25, 0x38, 0x11, 0x8e, 0x44, 0xdb, 0xb2, + 0x42, 0xfa, 0xba, 0x51, 0xdd, 0x85, 0xbc, 0xb4, 0x08, 0x61, 0xff, 0x81, 0xba, 0xfb, 0x78, 0x29, + 0x20, 0x99, 0xe5, 0xec, 0x58, 0x89, 0x96, 0xbf, 0xa3, 0xc0, 0xfd, 0x70, 0x64, 0x95, 0x2e, 0xc3, + 0xba, 0x7a, 0x55, 0xdc, 0xf9, 0x58, 0x28, 0x64, 0xe3, 0xcd, 0xbd, 0xcd, 0x7f, 0x33, 0x74, 0xfe, + 0x22, 0xdb, 0xef, 0xc9, 0x35, 0x3e, 0x23, 0x99, 0x4a, 0x05, 0x71, 0xa0, 0xc2, 0xf2, 0x7e, 0xc7, + 0xb5, 0xc3, 0x4b, 0xfe, 0xee, 0x79, 0xff, 0x1c, 0xcb, 0xfb, 0xe5, 0xa5, 0x7f, 0x82, 0x7b, 0xc3, + 0xb0, 0x5c, 0xc6, 0xa0, 0x7e, 0xe0, 0x21, 0xc7, 0xaf, 0x34, 0xfd, 0xba, 0xeb, 0x91, 0x8f, 0x85, + 0xf3, 0x2f, 0xc2, 0xe8, 0x31, 0xab, 0x95, 0x5f, 0x3b, 0xa7, 0xb5, 0xa0, 0xa8, 0xbe, 0x03, 0x23, + 0x32, 0xe8, 0x25, 0xfa, 0x09, 0x7a, 0xb2, 0x73, 0xf9, 0xdb, 0x90, 0xa9, 0xf0, 0xf9, 0x71, 0x66, + 0x11, 0xbe, 0xd7, 0x8a, 0xef, 0xdd, 0x14, 0xff, 0xbb, 0x0a, 0xe4, 0x37, 0x8e, 0x8e, 0x70, 0x5f, + 0x3c, 0xaa, 0x30, 0xee, 0x60, 0x5f, 0x17, 0x45, 0xf9, 0xf1, 0x62, 0x7f, 0xec, 0xc6, 0x1c, 0xec, + 0x7f, 0x20, 0xc8, 0xf8, 0x67, 0x8a, 0xea, 0x2c, 0xa4, 0x08, 0xd5, 0x4f, 0x91, 0x25, 0x8f, 0x7c, + 0x52, 0xda, 0x28, 0xa1, 0x1f, 0xb1, 0xe2, 0x63, 0x1f, 0xee, 0xf7, 0xfa, 0x7c, 0x4e, 0x05, 0x18, + 0xd9, 0x71, 0x0f, 0x5d, 0xf3, 0xbc, 0x70, 0x4f, 0x2d, 0xc3, 0xc2, 0x2a, 0x3e, 0x26, 0xce, 0xaa, + 0xe5, 0x1a, 0x27, 0xd8, 0xab, 0xd9, 0xc8, 0xf3, 0xd7, 0x5c, 0xc7, 0xf7, 0x90, 0xe1, 0xd3, 0x5d, + 0xc7, 0x3a, 0x2f, 0x28, 0xea, 0x34, 0xa8, 0x5d, 0xea, 0x13, 0x6a, 0x16, 0x52, 0x1b, 0xa7, 0xd8, + 0x3b, 0x77, 0x1d, 0x5c, 0x48, 0x3e, 0xde, 0x0f, 0xec, 0x50, 0x3c, 0xae, 0x51, 0xc7, 0x20, 0x73, + 0xe0, 0xd0, 0x06, 0x36, 0x78, 0xcc, 0x2c, 0xdc, 0x63, 0x6c, 0x85, 0x26, 0x0a, 0x0a, 0xfb, 0xbd, + 0x87, 0x9a, 0x14, 0x9b, 0x85, 0x84, 0x9a, 0x07, 0x58, 0xc7, 0xb6, 0x6b, 0x11, 0x5a, 0xc7, 0x66, + 0x21, 0xa9, 0x66, 0x60, 0x94, 0x3f, 0x4a, 0xc5, 0x66, 0x61, 0xe8, 0xf1, 0x5f, 0x24, 0xe4, 0xfb, + 0x09, 0x7e, 0xe8, 0x5b, 0x82, 0xcc, 0xc1, 0x4e, 0x6d, 0x6f, 0x63, 0xad, 0xba, 0x59, 0xdd, 0x58, + 0x2f, 0xdc, 0x9b, 0x1b, 0xbb, 0xb8, 0x2c, 0xc5, 0xab, 0xd8, 0x7e, 0x7e, 0xf5, 0xe0, 0x59, 0x41, + 0x99, 0x1b, 0xbd, 0xb8, 0x2c, 0xb1, 0x9f, 0x2c, 0x1a, 0xd7, 0x36, 0xb6, 0xb6, 0x0a, 0x89, 0xb9, + 0xd4, 0xc5, 0x65, 0x89, 0xff, 0x66, 0x76, 0x59, 0xdb, 0xdf, 0xdd, 0xd3, 0x59, 0xd7, 0xe4, 0x5c, + 0xf6, 0xe2, 0xb2, 0x14, 0x96, 0x99, 0xfb, 0xe5, 0xbf, 0x39, 0xd1, 0xd0, 0x5c, 0xee, 0xe2, 0xb2, + 0x14, 0x55, 0x30, 0xca, 0xfd, 0xca, 0x87, 0x1b, 0x9c, 0x72, 0x58, 0x50, 0x06, 0x65, 0x46, 0xc9, + 0x7f, 0x73, 0xca, 0x11, 0x41, 0x19, 0x56, 0xa8, 0xd3, 0x30, 0xb2, 0x7a, 0xf0, 0x4c, 0xdf, 0xdb, + 0x2d, 0x8c, 0xce, 0xc1, 0xc5, 0x65, 0x49, 0x96, 0x98, 0xb5, 0xb0, 0x76, 0xd6, 0x90, 0x9a, 0xcb, + 0x5c, 0x5c, 0x96, 0x82, 0xa2, 0xba, 0x00, 0xc0, 0xfa, 0x54, 0xf6, 0x77, 0xb7, 0xab, 0x6b, 0x85, + 0xf4, 0x5c, 0xfe, 0xe2, 0xb2, 0x14, 0xab, 0x61, 0xd2, 0xe0, 0x5d, 0x65, 0x07, 0x10, 0xd2, 0x88, + 0x55, 0x3d, 0xfe, 0x53, 0x05, 0x72, 0x1b, 0xc1, 0x59, 0x12, 0x97, 0xe0, 0x7d, 0x28, 0xc6, 0xb4, + 0xd2, 0xd2, 0x26, 0x54, 0x24, 0x74, 0x58, 0x50, 0xd4, 0x1c, 0xa4, 0xf9, 0x9d, 0xcc, 0x26, 0xb1, + 0xac, 0x42, 0x42, 0x9d, 0x83, 0x69, 0x5e, 0xdc, 0x46, 0xbe, 0x51, 0xd7, 0xc4, 0x57, 0xad, 0x5c, + 0x31, 0x85, 0x24, 0x33, 0x90, 0xa8, 0x6d, 0x07, 0xbf, 0x14, 0xf5, 0x43, 0xea, 0x14, 0x8c, 0xcb, + 0x8f, 0xea, 0xe4, 0x97, 0xaa, 0xc4, 0x75, 0x0a, 0xc3, 0x0c, 0x4a, 0xbc, 0x3a, 0x6e, 0x7f, 0xdb, + 0x58, 0x18, 0x79, 0xfc, 0x9d, 0x40, 0xdf, 0xdb, 0x88, 0x9e, 0x30, 0x99, 0x1d, 0xec, 0x1c, 0xd4, + 0xb8, 0xaa, 0xb9, 0xcc, 0x44, 0x89, 0x69, 0xb9, 0xb2, 0x13, 0x6a, 0xb9, 0xb2, 0xf3, 0x8c, 0x49, + 0x51, 0xdb, 0xf8, 0xe0, 0x60, 0xab, 0xa2, 0x15, 0x12, 0x42, 0x8a, 0xb2, 0xc8, 0xa4, 0xb4, 0xb6, + 0xbb, 0xb3, 0x5e, 0xdd, 0xaf, 0xee, 0xee, 0x54, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, + 0xcc, 0xac, 0x57, 0xb5, 0x8d, 0x35, 0x56, 0x64, 0x8a, 0xd4, 0x77, 0x35, 0xfd, 0x69, 0xf5, 0x83, + 0xa7, 0x1b, 0x5a, 0x21, 0x35, 0x37, 0x7e, 0x71, 0x59, 0xca, 0xb5, 0x54, 0xb6, 0xf6, 0xe7, 0xe2, + 0xde, 0xd5, 0xf4, 0xad, 0xdd, 0x9f, 0xdf, 0xd0, 0x0a, 0x05, 0xd1, 0xbf, 0xa5, 0x52, 0x9d, 0x87, + 0xcc, 0xfe, 0xb3, 0xbd, 0x0d, 0x7d, 0xbb, 0xa2, 0x7d, 0xb8, 0xb1, 0x5f, 0x28, 0x89, 0xa9, 0x88, + 0x92, 0x3a, 0x0b, 0xc0, 0x1b, 0xb7, 0xaa, 0xdb, 0xd5, 0xfd, 0xc2, 0xfb, 0x73, 0xe9, 0x8b, 0xcb, + 0xd2, 0x30, 0x2f, 0xac, 0xd6, 0xbf, 0xff, 0xe9, 0x82, 0xf2, 0xc3, 0x4f, 0x17, 0x94, 0x7f, 0xfd, + 0x74, 0x41, 0xf9, 0xee, 0x67, 0x0b, 0xf7, 0x7e, 0xf8, 0xd9, 0xc2, 0xbd, 0x7f, 0xfc, 0x6c, 0xe1, + 0xde, 0x37, 0x76, 0x62, 0x69, 0x52, 0x35, 0x70, 0xe0, 0x5b, 0xe8, 0x90, 0xae, 0x84, 0xee, 0xfc, + 0x2d, 0xc3, 0xf5, 0x70, 0xbc, 0x58, 0x47, 0xc4, 0x59, 0xb1, 0x5d, 0x96, 0xae, 0xd3, 0xe8, 0x6f, + 0x64, 0xf0, 0x94, 0xea, 0x70, 0x84, 0x7f, 0x99, 0xf9, 0x33, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, + 0x6a, 0xde, 0xbc, 0xbe, 0x46, 0x43, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -4088,6 +4112,13 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -4271,6 +4302,13 @@ func (m *BinaryOptionsMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -4741,6 +4779,16 @@ func (m *SpotMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x78 + } + if m.BaseDecimals != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x70 + } if m.AdminPermissions != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -7123,6 +7171,9 @@ func (m *DerivativeMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 2 + sovExchange(uint64(m.AdminPermissions)) } + if m.QuoteDecimals != 0 { + n += 2 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -7190,6 +7241,9 @@ func (m *BinaryOptionsMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 2 + sovExchange(uint64(m.AdminPermissions)) } + if m.QuoteDecimals != 0 { + n += 2 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -7347,6 +7401,12 @@ func (m *SpotMarket) Size() (n int) { if m.AdminPermissions != 0 { n += 1 + sovExchange(uint64(m.AdminPermissions)) } + if m.BaseDecimals != 0 { + n += 1 + sovExchange(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovExchange(uint64(m.QuoteDecimals)) + } return n } @@ -9739,6 +9799,25 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error { break } } + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -10335,6 +10414,25 @@ func (m *BinaryOptionsMarket) Unmarshal(dAtA []byte) error { break } } + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -11643,6 +11741,44 @@ func (m *SpotMarket) Unmarshal(dAtA []byte) error { break } } + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index c1fdf2c0..e2236d37 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -10,6 +10,7 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" + "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" ) @@ -562,6 +563,13 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { return errors.Wrap(ErrInvalidNotional, err.Error()) } + if msg.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if msg.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return nil } @@ -1827,16 +1835,16 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { return err } - hasDuplicateSpotMarketIDs := HasDuplicatesHexHash(msg.SpotMarketIdsToCancelAll) + hasDuplicateSpotMarketIDs := helpers.HasDuplicate(msg.SpotMarketIdsToCancelAll) if hasDuplicateSpotMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all spot market ids") } - hasDuplicateDerivativesMarketIDs := HasDuplicatesHexHash(msg.DerivativeMarketIdsToCancelAll) + hasDuplicateDerivativesMarketIDs := helpers.HasDuplicate(msg.DerivativeMarketIdsToCancelAll) if hasDuplicateDerivativesMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all derivative market ids") } - hasDuplicateBinaryOptionsMarketIDs := HasDuplicatesHexHash(msg.BinaryOptionsMarketIdsToCancelAll) + hasDuplicateBinaryOptionsMarketIDs := helpers.HasDuplicate(msg.BinaryOptionsMarketIdsToCancelAll) if hasDuplicateBinaryOptionsMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all binary options market ids") } diff --git a/chain/exchange/types/params.go b/chain/exchange/types/params.go index fbec3e19..e44b5cbb 100644 --- a/chain/exchange/types/params.go +++ b/chain/exchange/types/params.go @@ -35,6 +35,8 @@ const ( MaxOracleScaleFactor uint32 = 18 + MaxDecimals uint32 = 18 + MaxTickerLength int = 40 // MaxHistoricalTradeRecordAge is the maximum age of trade records to track. @@ -47,6 +49,8 @@ const ( MaxGranterDelegations = 25 ) +var DefaultInjAuctionMaxCap = math.NewIntWithDecimal(10_000, 18) + var MaxBinaryOptionsOrderPrice = math.LegacyOneDec() // would be $0.000001 for USDT @@ -190,31 +194,34 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { // DefaultParams returns a default set of parameters. func DefaultParams() Params { return Params{ - SpotMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), - DerivativeMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), - DefaultSpotMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultSpotTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultDerivativeMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultDerivativeTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultInitialMarginRatio: math.LegacyNewDecWithPrec(5, 2), // default 5% initial margin ratio - DefaultMaintenanceMarginRatio: math.LegacyNewDecWithPrec(2, 2), // default 2% maintenance margin ratio - DefaultFundingInterval: DefaultFundingIntervalSeconds, - FundingMultiple: DefaultFundingMultipleSeconds, - RelayerFeeShareRate: math.LegacyNewDecWithPrec(40, 2), // default 40% relayer fee share - DefaultHourlyFundingRateCap: math.LegacyNewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate - DefaultHourlyInterestRate: math.LegacyNewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 - MaxDerivativeOrderSideCount: MaxDerivativeOrderSideCount, - InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ - TradingRewardsVestingDuration: 604800, // 7 days - LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward - BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), - AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, - SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - DerivativeAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - BinaryOptionsAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier - MinimalProtocolFeeRate: math.LegacyMustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate - IsInstantDerivativeMarketLaunchEnabled: false, - PostOnlyModeHeightThreshold: 0, + SpotMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), + DerivativeMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), + DefaultSpotMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultSpotTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultDerivativeMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultDerivativeTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultInitialMarginRatio: math.LegacyNewDecWithPrec(5, 2), // default 5% initial margin ratio + DefaultMaintenanceMarginRatio: math.LegacyNewDecWithPrec(2, 2), // default 2% maintenance margin ratio + DefaultFundingInterval: DefaultFundingIntervalSeconds, + FundingMultiple: DefaultFundingMultipleSeconds, + RelayerFeeShareRate: math.LegacyNewDecWithPrec(40, 2), // default 40% relayer fee share + DefaultHourlyFundingRateCap: math.LegacyNewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate + DefaultHourlyInterestRate: math.LegacyNewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 + MaxDerivativeOrderSideCount: MaxDerivativeOrderSideCount, + InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ + TradingRewardsVestingDuration: 604800, // 7 days + LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward + BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), + AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, + SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + DerivativeAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + BinaryOptionsAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + MinimalProtocolFeeRate: math.LegacyMustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate + IsInstantDerivativeMarketLaunchEnabled: false, + PostOnlyModeHeightThreshold: 0, + MarginDecreasePriceTimestampThresholdSeconds: 60, + ExchangeAdmins: []string{}, + InjAuctionMaxCap: DefaultInjAuctionMaxCap, } } diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index 333507e2..9cdde119 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -12,6 +12,7 @@ import ( gov "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/ethereum/go-ethereum/common" + "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" ) @@ -213,7 +214,7 @@ func (p *BatchExchangeModificationProposal) ValidateBasic() error { } // NewSpotMarketParamUpdateProposal returns new instance of SpotMarketParamUpdateProposal -func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, status MarketStatus, ticker string) *SpotMarketParamUpdateProposal { +func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, status MarketStatus, ticker string, baseDecimals, quoteDecimals uint32) *SpotMarketParamUpdateProposal { return &SpotMarketParamUpdateProposal{ title, description, @@ -227,6 +228,8 @@ func NewSpotMarketParamUpdateProposal(title, description string, marketID common ticker, minNotional, nil, + baseDecimals, + quoteDecimals, } } @@ -326,6 +329,13 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidMarketStatus, p.Status.String()) } + if p.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if p.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return govtypes.ValidateAbstract(p) } @@ -341,6 +351,8 @@ func NewSpotMarketLaunchProposal( minNotional math.LegacyDec, makerFeeRate *math.LegacyDec, takerFeeRate *math.LegacyDec, + baseDecimals uint32, + quoteDecimals uint32, ) *SpotMarketLaunchProposal { return &SpotMarketLaunchProposal{ Title: title, @@ -353,6 +365,8 @@ func NewSpotMarketLaunchProposal( MinNotional: minNotional, MakerFeeRate: makerFeeRate, TakerFeeRate: takerFeeRate, + BaseDecimals: baseDecimals, + QuoteDecimals: quoteDecimals, } } @@ -424,6 +438,13 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { } } + if p.BaseDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "base decimals is invalid") + } + if p.QuoteDecimals > MaxDecimals { + return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid") + } + return govtypes.ValidateAbstract(p) } @@ -697,7 +718,7 @@ func (d *DenomDecimals) Validate() error { return errors.Wrap(sdkerrors.ErrInvalidCoins, d.Denom) } - if d.Decimals <= 0 || d.Decimals > uint64(MaxOracleScaleFactor) { + if d.Decimals > uint64(MaxDecimals) { return errors.Wrapf(ErrInvalidDenomDecimal, "invalid decimals passed: %d", d.Decimals) } return nil @@ -1089,7 +1110,7 @@ func (p *TradingRewardPendingPointsUpdateProposal) ValidateBasic() error { } } - hasDuplicateAccountAddresses := HasDuplicates(accountAddresses) + hasDuplicateAccountAddresses := helpers.HasDuplicate(accountAddresses) if hasDuplicateAccountAddresses { return errors.Wrap(ErrInvalidTradingRewardsPendingPointsUpdate, "account address cannot have duplicates") } @@ -1185,7 +1206,7 @@ func (t *TradingRewardCampaignBoostInfo) ValidateBasic() error { return errors.Wrap(ErrInvalidTradingRewardCampaign, "boosted derivative market ids is not matching derivative market multipliers") } - hasDuplicatesInMarkets := HasDuplicates(t.BoostedSpotMarketIds) || HasDuplicates(t.BoostedDerivativeMarketIds) + hasDuplicatesInMarkets := helpers.HasDuplicate(t.BoostedSpotMarketIds) || helpers.HasDuplicate(t.BoostedDerivativeMarketIds) if hasDuplicatesInMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate boosted market ids") } @@ -1241,7 +1262,7 @@ func (c *TradingRewardCampaignInfo) ValidateBasic() error { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign quote denoms cannot be nil") } - hasTradingRewardBoostInfoDefined := c != nil && c.TradingRewardBoostInfo != nil + hasTradingRewardBoostInfoDefined := c.TradingRewardBoostInfo != nil if hasTradingRewardBoostInfoDefined { if err := c.TradingRewardBoostInfo.ValidateBasic(); err != nil { return err @@ -1254,7 +1275,7 @@ func (c *TradingRewardCampaignInfo) ValidateBasic() error { } } - hasDuplicatesInDisqualifiedMarkets := c != nil && HasDuplicates(c.DisqualifiedMarketIds) + hasDuplicatesInDisqualifiedMarkets := helpers.HasDuplicate(c.DisqualifiedMarketIds) if hasDuplicatesInDisqualifiedMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate disqualified market ids") } @@ -1278,7 +1299,7 @@ func validateCampaignRewardPool(pool *CampaignRewardPool, campaignDurationSecond prevStartTimestamp = pool.StartTimestamp - hasDuplicatesInEpochRewards := HasDuplicatesCoin(pool.MaxCampaignRewards) + hasDuplicatesInEpochRewards := helpers.HasDuplicateCoins(pool.MaxCampaignRewards) if hasDuplicatesInEpochRewards { return 0, errors.Wrap(ErrInvalidTradingRewardCampaign, "reward pool campaign contains duplicate market coins") } @@ -1340,7 +1361,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule must have have bucket durations of at least 10 seconds") } - if HasDuplicates(p.Schedule.QuoteDenoms) { + if helpers.HasDuplicate(p.Schedule.QuoteDenoms) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate quote denoms") } @@ -1350,7 +1371,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { } } - if HasDuplicates(p.Schedule.DisqualifiedMarketIds) { + if helpers.HasDuplicate(p.Schedule.DisqualifiedMarketIds) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate disqualified market ids") } diff --git a/chain/exchange/types/proposal.pb.go b/chain/exchange/types/proposal.pb.go index 1a20dfa1..ad50518d 100644 --- a/chain/exchange/types/proposal.pb.go +++ b/chain/exchange/types/proposal.pb.go @@ -81,6 +81,10 @@ type SpotMarketParamUpdateProposal struct { // orders in the market MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` AdminInfo *AdminInfo `protobuf:"bytes,12,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,13,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,14,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarketParamUpdateProposal) Reset() { *m = SpotMarketParamUpdateProposal{} } @@ -227,6 +231,10 @@ type SpotMarketLaunchProposal struct { // min_notional defines the minimum notional for orders in the market MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` AdminInfo *AdminInfo `protobuf:"bytes,11,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,14,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,15,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *SpotMarketLaunchProposal) Reset() { *m = SpotMarketLaunchProposal{} } @@ -1221,160 +1229,163 @@ func init() { } var fileDescriptor_32e9ec9b6b22477c = []byte{ - // 2444 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x8f, 0x1b, 0x49, - 0xfd, 0x9f, 0x9e, 0x99, 0x4c, 0xec, 0xb2, 0xe7, 0xd5, 0xe3, 0x9d, 0x9f, 0x77, 0x92, 0x78, 0x66, - 0x3a, 0xaf, 0xd9, 0xfc, 0x36, 0x36, 0x09, 0x8b, 0x22, 0x2c, 0x21, 0x98, 0xe7, 0xee, 0x88, 0x64, - 0xe2, 0xb4, 0x67, 0x76, 0x57, 0x11, 0xa8, 0x55, 0xee, 0xae, 0x99, 0x29, 0xe2, 0x7e, 0xa4, 0xab, - 0x3c, 0xc9, 0xac, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x0f, 0x71, 0x88, 0xb4, 0x27, 0xce, - 0x48, 0xf0, 0x0f, 0xc0, 0x01, 0x2d, 0x2b, 0x0e, 0x2b, 0x71, 0x00, 0x71, 0x58, 0xa1, 0x44, 0x08, - 0xfe, 0x02, 0xc4, 0x81, 0x03, 0xea, 0xaa, 0xea, 0x76, 0xdb, 0x6e, 0xb7, 0xdb, 0x1e, 0x9b, 0x3d, - 0x90, 0x4b, 0xe2, 0xfe, 0xd6, 0xb7, 0x3e, 0xf5, 0xad, 0xef, 0xab, 0xbe, 0xf5, 0x18, 0xf0, 0x06, - 0xb6, 0xbe, 0x85, 0x74, 0x8a, 0x4f, 0x50, 0x09, 0x3d, 0xd5, 0x8f, 0xa1, 0x75, 0x84, 0x4a, 0x27, - 0xb7, 0x6a, 0x88, 0xc2, 0x5b, 0x25, 0xc7, 0xb5, 0x1d, 0x9b, 0xc0, 0x7a, 0xd1, 0x71, 0x6d, 0x6a, - 0xcb, 0x4b, 0x01, 0x6b, 0xd1, 0x67, 0x2d, 0x0a, 0xd6, 0xa5, 0x82, 0x6e, 0x13, 0xd3, 0x26, 0xa5, - 0x1a, 0x24, 0xcd, 0xfe, 0xba, 0x8d, 0x2d, 0xde, 0x77, 0xa9, 0x28, 0xda, 0x0d, 0x4c, 0xa8, 0x8b, - 0x6b, 0x0d, 0x8a, 0x6d, 0x2b, 0xe0, 0x0b, 0x13, 0x05, 0xff, 0xff, 0x09, 0x7e, 0x93, 0x1c, 0x95, - 0x4e, 0x6e, 0x79, 0xff, 0x89, 0x86, 0xd7, 0x79, 0x83, 0xc6, 0xbe, 0x4a, 0xfc, 0x43, 0x34, 0xe5, - 0x8e, 0xec, 0x23, 0x9b, 0xd3, 0xbd, 0x5f, 0x82, 0x1a, 0x37, 0xc1, 0x60, 0x1a, 0x9c, 0xf5, 0x6a, - 0x93, 0xd5, 0x76, 0xa1, 0x5e, 0x6f, 0x32, 0xf2, 0x4f, 0xc1, 0x36, 0x0f, 0x4d, 0x6c, 0xd9, 0x25, - 0xf6, 0x2f, 0x27, 0x29, 0x7f, 0x9c, 0x02, 0x97, 0xaa, 0x8e, 0x4d, 0xef, 0x41, 0xf7, 0x11, 0xa2, - 0x15, 0xe8, 0x42, 0xf3, 0xc0, 0x31, 0x20, 0x45, 0x15, 0xa1, 0x42, 0x39, 0x07, 0xce, 0x51, 0x4c, - 0xeb, 0x28, 0x2f, 0xad, 0x48, 0x6b, 0x69, 0x95, 0x7f, 0xc8, 0x2b, 0x20, 0x63, 0x20, 0xa2, 0xbb, - 0xd8, 0xf1, 0xe6, 0x9e, 0x1f, 0x67, 0x6d, 0x61, 0x92, 0x7c, 0x01, 0xa4, 0x4d, 0x06, 0xaa, 0x61, - 0x23, 0x3f, 0xc1, 0xda, 0x53, 0x9c, 0xb0, 0x6b, 0xc8, 0xbb, 0x60, 0xc6, 0x84, 0x8f, 0x90, 0xab, - 0x1d, 0x22, 0xa4, 0xb9, 0x90, 0xa2, 0xfc, 0xa4, 0xc7, 0xb1, 0x71, 0xf9, 0xe3, 0xcf, 0x96, 0xa5, - 0xbf, 0x7c, 0xb6, 0x7c, 0x81, 0xeb, 0x87, 0x18, 0x8f, 0x8a, 0xd8, 0x2e, 0x99, 0x90, 0x1e, 0x17, - 0xef, 0xa2, 0x23, 0xa8, 0x9f, 0x6e, 0x21, 0x5d, 0xcd, 0xb2, 0xae, 0x3b, 0x08, 0xa9, 0x90, 0x22, - 0x0f, 0x8a, 0xb6, 0x42, 0x9d, 0xeb, 0x03, 0x8a, 0x86, 0xa1, 0xde, 0x07, 0x8b, 0x2e, 0xaa, 0xc3, - 0x53, 0x01, 0x46, 0x8e, 0xa1, 0x2b, 0x20, 0xa7, 0x92, 0x43, 0x2e, 0x08, 0x88, 0x1d, 0x84, 0xaa, - 0x1e, 0x00, 0x43, 0x56, 0xc1, 0x82, 0x89, 0x2d, 0xcd, 0x71, 0xb1, 0x8e, 0x34, 0x8a, 0xf5, 0x47, - 0x1a, 0xc1, 0x1f, 0xa0, 0xfc, 0xf9, 0xe4, 0xb0, 0x73, 0x26, 0xb6, 0x2a, 0x5e, 0xf7, 0x7d, 0xac, - 0x3f, 0xaa, 0xe2, 0x0f, 0x98, 0xb4, 0x1e, 0xe6, 0xe3, 0x06, 0xb4, 0x28, 0xa6, 0xa7, 0x21, 0xd8, - 0x54, 0x1f, 0xd2, 0x9a, 0xd8, 0x7a, 0x20, 0x10, 0x02, 0xe4, 0xaf, 0x81, 0x29, 0x42, 0x21, 0x6d, - 0x90, 0x7c, 0x7a, 0x45, 0x5a, 0x9b, 0xb9, 0xbd, 0x56, 0xec, 0x1e, 0x40, 0x45, 0xee, 0x39, 0x55, - 0xc6, 0xaf, 0x8a, 0x7e, 0xf2, 0x45, 0x30, 0xe5, 0x89, 0x83, 0xdc, 0x3c, 0x60, 0xb2, 0x4c, 0x7a, - 0xb2, 0xa8, 0x82, 0x26, 0xef, 0x80, 0xac, 0x27, 0xb9, 0x65, 0x7b, 0x8e, 0x02, 0xeb, 0xf9, 0x4c, - 0x72, 0x79, 0x33, 0x26, 0xb6, 0xf6, 0x44, 0x3f, 0x79, 0x0b, 0x00, 0x68, 0x78, 0x48, 0xd8, 0x3a, - 0xb4, 0xf3, 0xd9, 0x15, 0x69, 0x2d, 0x73, 0xfb, 0x6a, 0x9c, 0xac, 0xeb, 0x1e, 0xf7, 0xae, 0x75, - 0x68, 0xab, 0x69, 0xe8, 0xff, 0x2c, 0x3f, 0xf8, 0xfe, 0x47, 0xcb, 0x63, 0xff, 0xf8, 0x68, 0x79, - 0xec, 0x93, 0x5f, 0xdf, 0x5c, 0x12, 0x71, 0x79, 0x64, 0x9f, 0x04, 0x9d, 0x36, 0x6d, 0x8b, 0x22, - 0x8b, 0x3e, 0xfb, 0xfb, 0x2f, 0x6f, 0x5c, 0x0b, 0x02, 0x31, 0x36, 0x66, 0x94, 0x3f, 0x48, 0x60, - 0x71, 0x5b, 0xb0, 0x6e, 0x5b, 0xb0, 0x56, 0x3f, 0x7b, 0x38, 0xdd, 0x05, 0x59, 0x7f, 0xf0, 0xfd, - 0x53, 0x07, 0xb1, 0x88, 0xea, 0x61, 0x99, 0xed, 0x10, 0xbf, 0xda, 0xd2, 0xbb, 0xfc, 0xa6, 0x3f, - 0x67, 0x6f, 0x56, 0xcb, 0xc1, 0xac, 0xa2, 0x65, 0x56, 0x7e, 0x3a, 0x0d, 0x56, 0x37, 0x20, 0xd5, - 0x8f, 0xfd, 0xf6, 0x7b, 0xb6, 0x81, 0x0f, 0xb1, 0x0e, 0x3d, 0xc9, 0xce, 0x3c, 0xb3, 0x0f, 0x25, - 0xa0, 0x10, 0xc7, 0xa6, 0x9a, 0x48, 0x17, 0x8e, 0xa7, 0x50, 0xad, 0xc1, 0x34, 0xaa, 0xf9, 0x99, - 0x9c, 0xe4, 0x27, 0x56, 0x26, 0xd6, 0x32, 0xb7, 0xbf, 0x1c, 0x37, 0xe1, 0x58, 0xa3, 0xa8, 0x05, - 0x12, 0xd7, 0x4c, 0xe4, 0x9f, 0x49, 0x60, 0xcd, 0x40, 0x2e, 0x3e, 0x81, 0x1e, 0x7a, 0x0f, 0x69, - 0x26, 0x99, 0x34, 0x5f, 0x8d, 0x93, 0x66, 0x2b, 0xc0, 0xea, 0x2e, 0xd3, 0x15, 0xa3, 0x37, 0x13, - 0x91, 0x1b, 0xe0, 0x62, 0x58, 0x41, 0x75, 0xd8, 0xb0, 0xf4, 0xe3, 0x90, 0x30, 0xe7, 0x98, 0x30, - 0x6f, 0x25, 0x53, 0xcd, 0x5d, 0xd6, 0x3b, 0x90, 0xe0, 0x75, 0xd2, 0xa5, 0x85, 0xc8, 0xdf, 0x95, - 0xc0, 0xaa, 0x83, 0x5c, 0x07, 0xd1, 0x06, 0xac, 0x77, 0x1d, 0x7c, 0xaa, 0xb7, 0x5d, 0x2a, 0x3e, - 0x48, 0xa4, 0x04, 0x05, 0x27, 0xae, 0x99, 0xc8, 0x3f, 0x94, 0xc0, 0x35, 0xf4, 0xd4, 0xc1, 0xee, - 0xa9, 0x76, 0xd8, 0xa0, 0x0d, 0x17, 0x91, 0xae, 0xb2, 0x9c, 0x67, 0xb2, 0x7c, 0x25, 0x3e, 0x28, - 0x3c, 0xa4, 0x1d, 0x0e, 0x14, 0x29, 0x8f, 0x82, 0x7a, 0xb1, 0x10, 0xf9, 0x27, 0x12, 0xb8, 0x4e, - 0x5d, 0x68, 0x60, 0xeb, 0x48, 0x73, 0xd1, 0x13, 0xe8, 0x1a, 0x9a, 0x0e, 0x4d, 0x07, 0xe2, 0x23, - 0xab, 0xdd, 0x57, 0x58, 0x36, 0xee, 0xe1, 0x2a, 0xfb, 0x1c, 0x4a, 0x65, 0x48, 0x9b, 0x02, 0xa8, - 0xcd, 0x55, 0x2e, 0xd3, 0xde, 0x4c, 0x4c, 0x57, 0x35, 0x6c, 0x41, 0xf7, 0x54, 0xb3, 0x59, 0x74, - 0x75, 0xd7, 0x55, 0xba, 0xb7, 0xae, 0x36, 0x18, 0xd2, 0x7d, 0x0e, 0x14, 0xad, 0xab, 0x5a, 0x2f, - 0x16, 0x22, 0xff, 0x58, 0x02, 0x57, 0xdb, 0x64, 0xea, 0x12, 0x54, 0x80, 0x89, 0xb4, 0xd1, 0xa7, - 0x48, 0x51, 0x71, 0xb5, 0xda, 0x22, 0x57, 0x64, 0x50, 0x7d, 0x1b, 0x14, 0x0c, 0x64, 0xd9, 0xa6, - 0x66, 0x20, 0x1d, 0x9b, 0xb0, 0x4e, 0x3a, 0x0c, 0x97, 0x61, 0x86, 0xbb, 0x13, 0x27, 0x0e, 0x07, - 0xdd, 0xf2, 0x70, 0xb6, 0x04, 0x4c, 0x20, 0xc3, 0x05, 0x23, 0x4c, 0x6e, 0x33, 0x94, 0x0e, 0x5e, - 0xf3, 0x4a, 0x0c, 0x03, 0x13, 0xdd, 0x6e, 0x58, 0xb4, 0x39, 0x28, 0x5f, 0xc5, 0x4a, 0x71, 0x83, - 0xee, 0x20, 0xb4, 0x25, 0xfa, 0x05, 0x83, 0x2d, 0x1c, 0x76, 0x12, 0xe5, 0xef, 0x49, 0x40, 0x11, - 0xe6, 0x3f, 0xb4, 0x5d, 0x1d, 0x19, 0x1a, 0x41, 0x94, 0xd6, 0x91, 0x89, 0x42, 0x23, 0x92, 0xfc, - 0x34, 0x53, 0x7b, 0xb9, 0xf7, 0x22, 0xbf, 0xc3, 0x40, 0xaa, 0x01, 0x46, 0x30, 0xfa, 0xb2, 0x19, - 0xdb, 0x4e, 0xca, 0x07, 0xc9, 0xd7, 0xd8, 0x1b, 0xc1, 0x6a, 0xd4, 0x73, 0xc9, 0x51, 0x3e, 0x39, - 0x07, 0xf2, 0xdd, 0x32, 0xdb, 0xc0, 0xeb, 0xd1, 0x62, 0x50, 0xbb, 0xf0, 0xaa, 0xd5, 0xaf, 0x5a, - 0x2e, 0x01, 0xe0, 0x6d, 0x12, 0x34, 0x66, 0x56, 0x5e, 0xaf, 0xaa, 0x69, 0x8f, 0xc2, 0xcc, 0x2f, - 0x2f, 0x83, 0xcc, 0xe3, 0x86, 0x4d, 0xfd, 0x76, 0x56, 0x84, 0xaa, 0x80, 0x91, 0x38, 0x43, 0x97, - 0x1a, 0xb0, 0x59, 0x5a, 0x8e, 0x0d, 0xb3, 0x06, 0x3c, 0x9f, 0x1c, 0x36, 0xb2, 0x06, 0xec, 0xac, - 0xd0, 0x53, 0xc3, 0xab, 0xd0, 0xd3, 0x83, 0x56, 0xe8, 0xed, 0x95, 0x23, 0x48, 0x3e, 0xcb, 0x98, - 0xca, 0x31, 0x33, 0x60, 0xe5, 0x78, 0x37, 0xb9, 0x57, 0xaf, 0x46, 0x54, 0x8e, 0xad, 0xfe, 0xaa, - 0xfc, 0x22, 0x05, 0x2e, 0xc5, 0xae, 0x94, 0x43, 0xf7, 0xe8, 0x36, 0x97, 0x9d, 0xec, 0x70, 0xd9, - 0x65, 0x90, 0xe1, 0x1b, 0x48, 0xcd, 0xf3, 0x73, 0xdf, 0xa7, 0x39, 0x69, 0x03, 0x12, 0x24, 0xaf, - 0x82, 0xac, 0x60, 0x60, 0xbd, 0xb8, 0x33, 0xab, 0xa2, 0xd3, 0x03, 0x8f, 0x24, 0x17, 0xc1, 0x82, - 0x60, 0x21, 0x3a, 0xac, 0x23, 0xed, 0x10, 0xea, 0xd4, 0x76, 0x99, 0x7f, 0x4e, 0xab, 0xf3, 0xbc, - 0xa9, 0xea, 0xb5, 0xec, 0xb0, 0x06, 0x79, 0x3b, 0x18, 0x93, 0x7a, 0x75, 0x6e, 0x8a, 0xd5, 0xb9, - 0x57, 0x42, 0xb6, 0x11, 0x5b, 0x5a, 0x5f, 0xc9, 0xf7, 0xd9, 0x27, 0xab, 0x71, 0x85, 0x64, 0xde, - 0x6f, 0xf9, 0x00, 0xe4, 0xb0, 0x85, 0x29, 0xe6, 0x95, 0xcb, 0x11, 0xb6, 0x3c, 0xcf, 0xc3, 0x76, - 0xc8, 0xf5, 0x7a, 0x7a, 0x8c, 0x2c, 0x00, 0xee, 0xb1, 0xfe, 0xaa, 0xd7, 0x5d, 0xfe, 0x26, 0xc8, - 0x9b, 0x10, 0x7b, 0x66, 0x85, 0x96, 0x8e, 0x5a, 0xa1, 0xfb, 0x70, 0xc6, 0xc5, 0x10, 0x48, 0x18, - 0xbe, 0x33, 0xea, 0x32, 0xc9, 0x41, 0x7b, 0x45, 0x5d, 0xb6, 0x0f, 0xa8, 0x96, 0xa8, 0xeb, 0x92, - 0xb9, 0xa6, 0x47, 0x93, 0xb9, 0x66, 0xce, 0x98, 0xb9, 0xda, 0x73, 0xc4, 0xec, 0x50, 0x72, 0xc4, - 0xdc, 0x7f, 0x73, 0x77, 0x19, 0x9b, 0x06, 0x94, 0xbf, 0x9d, 0x07, 0xab, 0x3d, 0x4b, 0xb3, 0xa1, - 0x27, 0x8b, 0xcb, 0x60, 0xda, 0x8f, 0xe3, 0x53, 0xb3, 0x66, 0xd7, 0x45, 0xba, 0x10, 0xf1, 0x5f, - 0x65, 0x34, 0xf9, 0x3a, 0x98, 0x15, 0x4c, 0x8e, 0x6b, 0x9f, 0x60, 0x03, 0xb9, 0x22, 0x69, 0xcc, - 0x70, 0x72, 0x45, 0x50, 0xdb, 0xa3, 0x7c, 0x6a, 0xc0, 0x28, 0xef, 0x37, 0xb9, 0xdc, 0x02, 0x39, - 0x56, 0xdd, 0xb3, 0x32, 0x42, 0xa3, 0xd8, 0x44, 0x84, 0x42, 0xd3, 0x61, 0x59, 0x66, 0x42, 0x5d, - 0x68, 0xb6, 0xed, 0xfb, 0x4d, 0x5e, 0x97, 0x50, 0xd5, 0xd4, 0xec, 0x92, 0xe6, 0x5d, 0x9a, 0x6d, - 0xcd, 0x2e, 0x39, 0x70, 0x8e, 0x39, 0x00, 0xcf, 0x08, 0x2a, 0xff, 0x68, 0xcf, 0xb6, 0x99, 0x8e, - 0x6c, 0xdb, 0x19, 0xfc, 0xd9, 0xe1, 0x05, 0xff, 0xf4, 0x90, 0x83, 0x7f, 0x66, 0x34, 0xc1, 0x3f, - 0x3b, 0xe4, 0xe0, 0x9f, 0x1b, 0x30, 0xf8, 0xff, 0x1f, 0xcc, 0xf3, 0xe0, 0x77, 0x90, 0x6b, 0x62, - 0x42, 0xbc, 0x30, 0xcb, 0xcf, 0x33, 0xb7, 0x9a, 0x63, 0x0d, 0x95, 0x26, 0x7d, 0xc0, 0xea, 0xb6, - 0x57, 0x04, 0x2b, 0xbf, 0x4b, 0x81, 0xd5, 0x9e, 0xdb, 0xd5, 0x57, 0x45, 0x41, 0x1f, 0xe9, 0x62, - 0x11, 0x4c, 0xf1, 0xcd, 0xbd, 0x88, 0x5e, 0xf1, 0xd5, 0xb5, 0x58, 0x00, 0xa3, 0x2b, 0x16, 0x32, - 0xa3, 0x28, 0x16, 0x5e, 0xe5, 0x8b, 0xcf, 0x2b, 0x5f, 0xb4, 0x16, 0x0b, 0xf3, 0x03, 0x16, 0x0b, - 0x03, 0x25, 0x92, 0x9e, 0x29, 0x42, 0xf9, 0x11, 0x00, 0x97, 0x13, 0x9c, 0x46, 0x8e, 0xe6, 0xaa, - 0xa7, 0x5b, 0x6c, 0xf5, 0x71, 0xe1, 0xd3, 0x6f, 0x6c, 0xf5, 0x71, 0x01, 0x94, 0x3c, 0xb6, 0xa6, - 0x86, 0xb7, 0xfd, 0x3d, 0x3f, 0xfc, 0x0b, 0xaa, 0xd4, 0x68, 0x2e, 0xa8, 0xd2, 0xa3, 0xb9, 0xa0, - 0x02, 0x67, 0xbc, 0xa0, 0xaa, 0x02, 0xf9, 0x1d, 0xbb, 0xe1, 0xd6, 0x4f, 0x77, 0x2d, 0x8a, 0x5c, - 0x44, 0xa8, 0xda, 0xba, 0x55, 0xea, 0xed, 0x51, 0x9d, 0xdd, 0xe5, 0xf7, 0x40, 0x8e, 0x53, 0x77, - 0x1a, 0x16, 0x3b, 0x68, 0x85, 0x14, 0x6d, 0x42, 0x27, 0x94, 0x54, 0x7b, 0xc2, 0x46, 0x02, 0x84, - 0xae, 0xd3, 0xa6, 0x07, 0xbc, 0x4e, 0xbb, 0x17, 0xd4, 0xde, 0xec, 0xe4, 0x94, 0xb0, 0x6c, 0x9a, - 0x89, 0x07, 0xe2, 0x4b, 0x20, 0x0b, 0x73, 0xe2, 0x57, 0xe9, 0xfc, 0x2b, 0x74, 0x3b, 0x37, 0x9b, - 0xe0, 0x76, 0x6e, 0x6e, 0x28, 0xb7, 0x73, 0x83, 0xa6, 0xc4, 0xf7, 0x92, 0xa7, 0xc4, 0x37, 0x83, - 0x94, 0x98, 0x20, 0xd9, 0x29, 0x7b, 0x20, 0x1d, 0x0c, 0xd8, 0xac, 0xd8, 0xa5, 0x70, 0xc5, 0x1e, - 0x59, 0x04, 0x8e, 0x47, 0x17, 0x81, 0xca, 0xcf, 0xc7, 0x41, 0x21, 0xfe, 0x98, 0x74, 0x34, 0xf9, - 0x75, 0x0f, 0xcc, 0xb5, 0x9c, 0xea, 0x62, 0xbd, 0xaf, 0xcb, 0xf4, 0x59, 0x12, 0x92, 0x13, 0xeb, - 0xa8, 0xac, 0x26, 0x57, 0xf8, 0xf5, 0x40, 0xe1, 0xf1, 0x13, 0x57, 0xfe, 0x25, 0x81, 0x0b, 0x31, - 0x47, 0xe5, 0x03, 0x2b, 0xa6, 0x02, 0x66, 0x5a, 0xcf, 0xf0, 0xc5, 0x2d, 0xe1, 0x1b, 0xf1, 0xf7, - 0x72, 0x21, 0x11, 0xd4, 0xe9, 0x96, 0x53, 0xfa, 0xf2, 0xfd, 0xe4, 0xb3, 0xbf, 0x12, 0xcc, 0x3e, - 0x66, 0x6a, 0xca, 0x6f, 0x53, 0xe0, 0x5a, 0xb2, 0x4b, 0x8b, 0x57, 0x2f, 0x2d, 0xfe, 0xf7, 0x5e, - 0x5a, 0x74, 0x3b, 0x8f, 0x48, 0xf7, 0x7f, 0x1e, 0x01, 0xba, 0x9f, 0x47, 0x44, 0xa5, 0x88, 0xcc, - 0xe0, 0x29, 0xa2, 0x99, 0x2d, 0xb3, 0xe1, 0x6c, 0x79, 0xf6, 0x65, 0xee, 0x20, 0x7a, 0x99, 0xfb, - 0x42, 0xec, 0xdd, 0xb2, 0x38, 0x51, 0xfa, 0xbc, 0x97, 0xbb, 0xf2, 0xc3, 0xe4, 0x99, 0xa3, 0x14, - 0x77, 0x08, 0x10, 0xb5, 0x56, 0xfd, 0x46, 0x02, 0xb9, 0xa8, 0x89, 0x7a, 0x1b, 0x5a, 0x71, 0x1a, - 0xc7, 0x73, 0x86, 0xf8, 0x92, 0x97, 0x40, 0x2a, 0x38, 0x80, 0xe3, 0x19, 0x23, 0xf8, 0xee, 0xb6, - 0xf7, 0x9e, 0x48, 0xb8, 0xf7, 0x9e, 0x1c, 0x6c, 0xef, 0xad, 0xfc, 0x5e, 0x02, 0xd9, 0x16, 0xd9, - 0xdb, 0xce, 0x11, 0xa4, 0x9e, 0xe7, 0x08, 0xe3, 0x89, 0xcf, 0x11, 0x46, 0x3d, 0x97, 0x7f, 0x8e, - 0x83, 0xcb, 0x91, 0x77, 0xf6, 0x43, 0x3a, 0x9b, 0x79, 0x08, 0xa6, 0x83, 0xe7, 0x04, 0xac, 0x7a, - 0x9a, 0x60, 0x81, 0xf0, 0xa5, 0xbe, 0xdf, 0x10, 0xb0, 0x6a, 0x2a, 0xab, 0x87, 0xbe, 0xe4, 0x1a, - 0x78, 0x2d, 0xc0, 0x16, 0x4f, 0x17, 0x1c, 0xdb, 0x0e, 0x9e, 0xb4, 0x14, 0xe3, 0xc6, 0xf0, 0x61, - 0xf9, 0x20, 0x15, 0xdb, 0xae, 0xab, 0x0b, 0x7a, 0x07, 0x8d, 0x0c, 0x56, 0xb4, 0x25, 0x50, 0xa8, - 0xf2, 0xef, 0x89, 0x2e, 0x8a, 0x1f, 0xd2, 0x52, 0x3a, 0x4a, 0xc5, 0x37, 0xc0, 0x72, 0xa4, 0xe2, - 0x35, 0x68, 0x18, 0x98, 0x25, 0x80, 0x01, 0x4d, 0x70, 0x31, 0xc2, 0x04, 0xeb, 0x3e, 0xa6, 0xfc, - 0x18, 0x5c, 0x8a, 0x1e, 0x96, 0x3f, 0x77, 0xf0, 0x5f, 0x0f, 0xf5, 0x3b, 0xe8, 0x52, 0xc4, 0xa0, - 0xdc, 0x08, 0xc3, 0x34, 0x7f, 0x5b, 0x1e, 0xfc, 0x8e, 0x04, 0xe6, 0xfd, 0xf1, 0xb0, 0x45, 0x79, - 0xab, 0x7c, 0x1d, 0xcc, 0x42, 0x9d, 0x3f, 0xa3, 0x80, 0x86, 0xe1, 0x22, 0x42, 0x84, 0xd9, 0x67, - 0x04, 0x79, 0x9d, 0x53, 0xe5, 0x0d, 0x00, 0x2c, 0xf4, 0x44, 0x73, 0xbc, 0xbe, 0xa4, 0x9f, 0xc3, - 0xb2, 0xb4, 0x85, 0x9e, 0xb0, 0x11, 0x89, 0xf2, 0xa7, 0x71, 0xb0, 0xd6, 0x22, 0x6a, 0x05, 0xb1, - 0xcd, 0x1e, 0x6f, 0x1e, 0x92, 0x1b, 0xbe, 0x05, 0x16, 0x1d, 0x0e, 0xcb, 0x6c, 0x15, 0x5a, 0xe5, - 0x27, 0xd8, 0x2a, 0x9f, 0x73, 0xfc, 0x41, 0xed, 0x7a, 0x73, 0x99, 0xd7, 0x40, 0x2e, 0x30, 0x30, - 0xb6, 0x68, 0x60, 0x60, 0xee, 0x55, 0x37, 0xe3, 0x0c, 0xdc, 0xa1, 0x54, 0x55, 0x76, 0xdb, 0x49, - 0xa4, 0xfc, 0x8d, 0xe4, 0x76, 0xbd, 0x15, 0x6d, 0xd7, 0x18, 0x65, 0x29, 0x2f, 0x25, 0xb0, 0x10, - 0xf1, 0xb4, 0x65, 0x60, 0x25, 0x7e, 0x1d, 0xa4, 0x88, 0x7e, 0x8c, 0x8c, 0x46, 0x1d, 0x89, 0x30, - 0x4e, 0xfa, 0xaa, 0xa6, 0x2a, 0xba, 0xa9, 0x01, 0x40, 0xf9, 0xed, 0xe4, 0x53, 0xbf, 0x18, 0x4c, - 0x3d, 0x62, 0x36, 0xca, 0x87, 0xe3, 0x60, 0x99, 0x3d, 0x6c, 0xd9, 0xb4, 0x4d, 0xb3, 0x61, 0x61, - 0x7a, 0xea, 0x19, 0xb1, 0xea, 0x19, 0xf4, 0xcc, 0x33, 0x3e, 0x00, 0xe9, 0xf6, 0xf7, 0x92, 0x77, - 0xc4, 0xfb, 0xf5, 0x62, 0xcb, 0x53, 0xf5, 0xa6, 0xd4, 0xdd, 0x64, 0x50, 0x9b, 0x48, 0xe5, 0x6a, - 0xf2, 0xb9, 0xaf, 0xb5, 0x3e, 0xde, 0xe9, 0x8e, 0xaf, 0xfc, 0x6a, 0x1c, 0x14, 0xd7, 0xa9, 0x6d, - 0x62, 0x9d, 0x97, 0x3d, 0xf7, 0x5d, 0x83, 0x55, 0xf2, 0xf7, 0x1a, 0x75, 0x8a, 0x9d, 0x3a, 0x46, - 0xae, 0x6f, 0x85, 0x33, 0xab, 0x05, 0x81, 0x45, 0xff, 0x15, 0x14, 0x42, 0x9a, 0x19, 0x0c, 0xe0, - 0xeb, 0xa8, 0x94, 0xe0, 0xe5, 0x53, 0x58, 0x30, 0x35, 0x67, 0x76, 0x12, 0x49, 0xb9, 0x96, 0x5c, - 0x4d, 0x77, 0x02, 0x35, 0xf5, 0xa7, 0x82, 0x1b, 0x4f, 0x41, 0x36, 0xfc, 0xaa, 0x57, 0xbe, 0x0d, - 0x72, 0xdb, 0xef, 0x6f, 0xbe, 0xb3, 0xbe, 0xf7, 0xf6, 0xb6, 0x76, 0xb0, 0x57, 0xad, 0x6c, 0x6f, - 0xee, 0xee, 0xec, 0x6e, 0x6f, 0xcd, 0x8d, 0x2d, 0xe5, 0x9f, 0x3d, 0x5f, 0x89, 0x6c, 0x93, 0x65, - 0x30, 0x59, 0xad, 0xdc, 0xdf, 0x9f, 0x93, 0x96, 0x52, 0xcf, 0x9e, 0xaf, 0xb0, 0xdf, 0x9e, 0x12, - 0xb7, 0xb6, 0xd5, 0xdd, 0x77, 0xd7, 0xf7, 0x77, 0xdf, 0xdd, 0xae, 0xce, 0x8d, 0x2f, 0xcd, 0x3e, - 0x7b, 0xbe, 0x12, 0x26, 0x6d, 0x1c, 0x7f, 0xfc, 0xa2, 0x20, 0x7d, 0xfa, 0xa2, 0x20, 0xfd, 0xf5, - 0x45, 0x41, 0xfa, 0xc1, 0xcb, 0xc2, 0xd8, 0xa7, 0x2f, 0x0b, 0x63, 0x7f, 0x7e, 0x59, 0x18, 0x7b, - 0xb8, 0x77, 0x84, 0xe9, 0x71, 0xa3, 0x56, 0xd4, 0x6d, 0xb3, 0xb4, 0xeb, 0x2b, 0xf2, 0x2e, 0xac, - 0x91, 0x52, 0xa0, 0xd6, 0x9b, 0xba, 0xed, 0xa2, 0xf0, 0xe7, 0x31, 0xc4, 0x56, 0xc9, 0xb4, 0xbd, - 0xb9, 0x91, 0x66, 0x35, 0xec, 0xd5, 0x64, 0xa4, 0x36, 0xc5, 0xfe, 0x32, 0xe1, 0x8b, 0xff, 0x09, - 0x00, 0x00, 0xff, 0xff, 0x16, 0x7b, 0x31, 0x71, 0xe1, 0x31, 0x00, 0x00, + // 2486 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x1c, 0x49, + 0x19, 0x77, 0xdb, 0x8e, 0xed, 0xa9, 0x99, 0xf1, 0xa3, 0xed, 0x35, 0xb3, 0x4e, 0xe2, 0xc7, 0x38, + 0x0f, 0x6f, 0xd8, 0xcc, 0x90, 0xb0, 0x28, 0x62, 0x24, 0x04, 0x7e, 0xee, 0x5a, 0x24, 0xce, 0xa4, + 0xc7, 0xde, 0x5d, 0x45, 0xa0, 0x56, 0x4d, 0x77, 0xd9, 0x2e, 0x32, 0xfd, 0x48, 0x57, 0x8d, 0x13, + 0xaf, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x2c, 0xe2, 0x10, 0xb1, 0x27, 0xce, 0x48, 0xf0, + 0x0f, 0xc0, 0x01, 0x2d, 0x88, 0xc3, 0xde, 0x40, 0x1c, 0x56, 0x28, 0x11, 0x82, 0xbf, 0x00, 0x71, + 0xe0, 0x80, 0xea, 0xd1, 0x3d, 0x3d, 0x33, 0x3d, 0x3d, 0x3d, 0xe3, 0xb1, 0xf6, 0x40, 0x2e, 0xc9, + 0xf4, 0x57, 0x5f, 0xfd, 0xea, 0xab, 0xaf, 0xea, 0xfb, 0xea, 0x57, 0x0f, 0x83, 0x37, 0xb0, 0xfd, + 0x1d, 0x64, 0x50, 0x7c, 0x82, 0x8a, 0xe8, 0xa9, 0x71, 0x0c, 0xed, 0x23, 0x54, 0x3c, 0xb9, 0x55, + 0x45, 0x14, 0xde, 0x2a, 0xba, 0x9e, 0xe3, 0x3a, 0x04, 0xd6, 0x0a, 0xae, 0xe7, 0x50, 0x47, 0x5d, + 0x08, 0x54, 0x0b, 0xbe, 0x6a, 0x41, 0xaa, 0x2e, 0x2c, 0x1a, 0x0e, 0xb1, 0x1c, 0x52, 0xac, 0x42, + 0xd2, 0xa8, 0x6f, 0x38, 0xd8, 0x16, 0x75, 0x17, 0x0a, 0xb2, 0xdc, 0xc4, 0x84, 0x7a, 0xb8, 0x5a, + 0xa7, 0xd8, 0xb1, 0x03, 0xbd, 0xb0, 0x50, 0xea, 0x7f, 0x41, 0xea, 0x5b, 0xe4, 0xa8, 0x78, 0x72, + 0x8b, 0xfd, 0x27, 0x0b, 0x5e, 0x17, 0x05, 0x3a, 0xff, 0x2a, 0x8a, 0x0f, 0x59, 0x34, 0x77, 0xe4, + 0x1c, 0x39, 0x42, 0xce, 0x7e, 0x49, 0x69, 0x5c, 0x07, 0x83, 0x6e, 0x08, 0xd5, 0xab, 0x0d, 0x55, + 0xc7, 0x83, 0x46, 0xad, 0xa1, 0x28, 0x3e, 0xa5, 0xda, 0x0c, 0xb4, 0xb0, 0xed, 0x14, 0xf9, 0xbf, + 0x42, 0x94, 0xff, 0xe5, 0x38, 0xb8, 0x5c, 0x71, 0x1d, 0x7a, 0x0f, 0x7a, 0x8f, 0x10, 0x2d, 0x43, + 0x0f, 0x5a, 0x07, 0xae, 0x09, 0x29, 0x2a, 0x4b, 0x17, 0xaa, 0x73, 0xe0, 0x02, 0xc5, 0xb4, 0x86, + 0x72, 0xca, 0xb2, 0xb2, 0x96, 0xd2, 0xc4, 0x87, 0xba, 0x0c, 0xd2, 0x26, 0x22, 0x86, 0x87, 0x5d, + 0xd6, 0xf7, 0xdc, 0x30, 0x2f, 0x0b, 0x8b, 0xd4, 0x8b, 0x20, 0x65, 0x71, 0x50, 0x1d, 0x9b, 0xb9, + 0x11, 0x5e, 0x3e, 0x21, 0x04, 0xbb, 0xa6, 0xba, 0x0b, 0x26, 0x2d, 0xf8, 0x08, 0x79, 0xfa, 0x21, + 0x42, 0xba, 0x07, 0x29, 0xca, 0x8d, 0x32, 0x8d, 0x8d, 0xd5, 0x4f, 0x3e, 0x5b, 0x52, 0xfe, 0xf6, + 0xd9, 0xd2, 0x45, 0xe1, 0x1f, 0x62, 0x3e, 0x2a, 0x60, 0xa7, 0x68, 0x41, 0x7a, 0x5c, 0xb8, 0x8b, + 0x8e, 0xa0, 0x71, 0xba, 0x85, 0x0c, 0x2d, 0xc3, 0xab, 0xee, 0x20, 0xa4, 0x41, 0x8a, 0x18, 0x14, + 0x6d, 0x86, 0xba, 0xd0, 0x03, 0x14, 0x0d, 0x43, 0xbd, 0x0f, 0xe6, 0x3d, 0x54, 0x83, 0xa7, 0x12, + 0x8c, 0x1c, 0x43, 0x4f, 0x42, 0x8e, 0x25, 0x87, 0x9c, 0x95, 0x10, 0x3b, 0x08, 0x55, 0x18, 0x00, + 0x47, 0xd6, 0xc0, 0xac, 0x85, 0x6d, 0xdd, 0xf5, 0xb0, 0x81, 0x74, 0x8a, 0x8d, 0x47, 0x3a, 0xc1, + 0x1f, 0xa0, 0xdc, 0x78, 0x72, 0xd8, 0x69, 0x0b, 0xdb, 0x65, 0x56, 0x7d, 0x1f, 0x1b, 0x8f, 0x2a, + 0xf8, 0x03, 0x6e, 0x2d, 0xc3, 0x7c, 0x5c, 0x87, 0x36, 0xc5, 0xf4, 0x34, 0x04, 0x3b, 0xd1, 0x83, + 0xb5, 0x16, 0xb6, 0x1f, 0x48, 0x84, 0x00, 0xf9, 0x1b, 0x60, 0x8c, 0x50, 0x48, 0xeb, 0x24, 0x97, + 0x5a, 0x56, 0xd6, 0x26, 0x6f, 0xaf, 0x15, 0x3a, 0x07, 0x50, 0x41, 0xcc, 0x9c, 0x0a, 0xd7, 0xd7, + 0x64, 0x3d, 0xf5, 0x12, 0x18, 0x63, 0xe6, 0x20, 0x2f, 0x07, 0xb8, 0x2d, 0xa3, 0xcc, 0x16, 0x4d, + 0xca, 0xd4, 0x1d, 0x90, 0x61, 0x96, 0xdb, 0x0e, 0x9b, 0x28, 0xb0, 0x96, 0x4b, 0x27, 0xb7, 0x37, + 0x6d, 0x61, 0x7b, 0x4f, 0xd6, 0x53, 0xb7, 0x00, 0x80, 0x26, 0x43, 0xc2, 0xf6, 0xa1, 0x93, 0xcb, + 0x2c, 0x2b, 0x6b, 0xe9, 0xdb, 0x57, 0xe3, 0x6c, 0x5d, 0x67, 0xda, 0xbb, 0xf6, 0xa1, 0xa3, 0xa5, + 0xa0, 0xff, 0x53, 0x5d, 0x05, 0x59, 0x16, 0xfc, 0xba, 0x89, 0x0c, 0x6c, 0xc1, 0x1a, 0xc9, 0x65, + 0x97, 0x95, 0xb5, 0xac, 0x96, 0x61, 0xc2, 0x2d, 0x29, 0x53, 0xaf, 0x82, 0xc9, 0xc7, 0x75, 0x87, + 0x86, 0xb4, 0x26, 0xb9, 0x56, 0x96, 0x4b, 0x7d, 0xb5, 0xd2, 0x83, 0x1f, 0x7e, 0xbc, 0x34, 0xf4, + 0xaf, 0x8f, 0x97, 0x86, 0xfe, 0xf4, 0xdb, 0x9b, 0x0b, 0x32, 0xc6, 0x8f, 0x9c, 0x93, 0xc0, 0x80, + 0x4d, 0xc7, 0xa6, 0xc8, 0xa6, 0xcf, 0xfe, 0xf9, 0xeb, 0x1b, 0xd7, 0x82, 0xa0, 0x8e, 0x8d, 0xbf, + 0xfc, 0x9f, 0x15, 0x30, 0xbf, 0x2d, 0x55, 0xb7, 0x6d, 0x58, 0xad, 0x9d, 0x3d, 0x34, 0xef, 0x82, + 0x8c, 0xdf, 0xf8, 0xfe, 0xa9, 0x8b, 0x78, 0x74, 0x76, 0x19, 0xe5, 0xed, 0x90, 0xbe, 0xd6, 0x54, + 0xbb, 0xf4, 0xa6, 0xdf, 0x67, 0xd6, 0xab, 0xa5, 0xa0, 0x57, 0xd1, 0x36, 0xe7, 0x3f, 0xca, 0x82, + 0x95, 0x0d, 0x48, 0x8d, 0x63, 0xbf, 0xfc, 0x9e, 0x63, 0xe2, 0x43, 0x6c, 0x40, 0x66, 0xd9, 0x99, + 0x7b, 0xf6, 0xa1, 0x02, 0xf2, 0xc4, 0x75, 0xa8, 0x2e, 0x53, 0x8f, 0xcb, 0x1c, 0xaa, 0xd7, 0xb9, + 0x47, 0x75, 0x7f, 0x55, 0x20, 0xb9, 0x91, 0xe5, 0x91, 0xb5, 0xf4, 0xed, 0xaf, 0xc6, 0x75, 0x38, + 0x76, 0x50, 0xb4, 0x45, 0x12, 0x57, 0x4c, 0xd4, 0x9f, 0x2b, 0x60, 0xcd, 0x44, 0x1e, 0x3e, 0x81, + 0x0c, 0xbd, 0x8b, 0x35, 0xa3, 0xdc, 0x9a, 0xaf, 0xc7, 0x59, 0xb3, 0x15, 0x60, 0x75, 0xb6, 0xe9, + 0x8a, 0xd9, 0x5d, 0x89, 0xa8, 0x75, 0x70, 0x29, 0xec, 0xa0, 0x1a, 0xac, 0xdb, 0xc6, 0x71, 0xc8, + 0x98, 0x0b, 0xdc, 0x98, 0xb7, 0x92, 0xb9, 0xe6, 0x2e, 0xaf, 0x1d, 0x58, 0xf0, 0x3a, 0xe9, 0x50, + 0x42, 0xd4, 0xef, 0x2b, 0x60, 0xc5, 0x45, 0x9e, 0x8b, 0x68, 0x1d, 0xd6, 0x3a, 0x36, 0x3e, 0xd6, + 0x7d, 0x5c, 0xca, 0x3e, 0x48, 0xa4, 0x05, 0x8b, 0x6e, 0x5c, 0x31, 0x51, 0x7f, 0xac, 0x80, 0x6b, + 0xe8, 0xa9, 0x8b, 0xbd, 0x53, 0xfd, 0xb0, 0x4e, 0xeb, 0x1e, 0x22, 0x1d, 0x6d, 0x19, 0xe7, 0xb6, + 0x7c, 0x2d, 0x3e, 0x28, 0x18, 0xd2, 0x8e, 0x00, 0x8a, 0xb4, 0x27, 0x8f, 0xba, 0xa9, 0x10, 0xf5, + 0x67, 0x0a, 0xb8, 0x4e, 0x3d, 0x68, 0x62, 0xfb, 0x48, 0xf7, 0xd0, 0x13, 0xe8, 0x99, 0xba, 0x01, + 0x2d, 0x17, 0xe2, 0x23, 0xbb, 0x75, 0xae, 0xf0, 0xcc, 0xde, 0x65, 0xaa, 0xec, 0x0b, 0x28, 0x8d, + 0x23, 0x6d, 0x4a, 0xa0, 0x96, 0xa9, 0xb2, 0x4a, 0xbb, 0x2b, 0x71, 0x5f, 0x55, 0xb1, 0x0d, 0xbd, + 0x53, 0xdd, 0xe1, 0xd1, 0xd5, 0xd9, 0x57, 0xa9, 0xee, 0xbe, 0xda, 0xe0, 0x48, 0xf7, 0x05, 0x50, + 0xb4, 0xaf, 0xaa, 0xdd, 0x54, 0x88, 0xfa, 0x53, 0x05, 0x5c, 0x6d, 0xb1, 0xa9, 0x43, 0x50, 0x01, + 0x6e, 0xd2, 0x46, 0x8f, 0x26, 0x45, 0xc5, 0xd5, 0x4a, 0x93, 0x5d, 0x91, 0x41, 0xf5, 0x5d, 0xb0, + 0x68, 0x22, 0xdb, 0xb1, 0x82, 0xd5, 0xa1, 0x6d, 0xe0, 0xd2, 0x7c, 0xe0, 0xee, 0xc4, 0x99, 0x23, + 0x40, 0xb7, 0x18, 0x8e, 0xbf, 0x9e, 0x04, 0x36, 0x5c, 0x34, 0xc3, 0xe2, 0x96, 0x81, 0x32, 0xc0, + 0x6b, 0x8c, 0xae, 0x98, 0x98, 0x18, 0x4e, 0xdd, 0xa6, 0x8d, 0x46, 0xc5, 0x8a, 0x58, 0x8c, 0x6b, + 0x74, 0x07, 0xa1, 0x2d, 0x59, 0x2f, 0x68, 0x6c, 0xf6, 0xb0, 0x5d, 0xa8, 0xfe, 0x40, 0x01, 0x79, + 0x39, 0xfc, 0x87, 0x8e, 0x67, 0x20, 0x53, 0x27, 0x88, 0xd2, 0x1a, 0xb2, 0x50, 0xa8, 0x45, 0xb6, + 0x76, 0x32, 0xb7, 0x97, 0xba, 0x13, 0x86, 0x1d, 0x0e, 0x52, 0x09, 0x30, 0x82, 0xd6, 0x97, 0xac, + 0xd8, 0x72, 0x52, 0x3a, 0x48, 0xbe, 0xc6, 0xde, 0x08, 0x56, 0xa3, 0xae, 0x4b, 0x4e, 0xfe, 0xa3, + 0x31, 0x90, 0xeb, 0x94, 0xd9, 0xfa, 0x5e, 0x8f, 0xe6, 0x03, 0x1e, 0x24, 0x18, 0xb0, 0xcf, 0x80, + 0x2e, 0x03, 0x20, 0x39, 0x87, 0xed, 0x58, 0x82, 0xfb, 0x6a, 0x29, 0x41, 0x38, 0x6c, 0xc7, 0x52, + 0x97, 0x40, 0xda, 0x67, 0x1b, 0xac, 0x9c, 0x13, 0x5a, 0x0d, 0x48, 0xaa, 0xc1, 0x14, 0x3a, 0xf0, + 0xc9, 0x06, 0x4d, 0x1d, 0x1a, 0x24, 0x9f, 0x1c, 0x4f, 0x0e, 0x1b, 0xc9, 0x27, 0xdb, 0xd9, 0xfe, + 0xc4, 0xe0, 0xd8, 0x7e, 0xaa, 0x5f, 0xb6, 0xdf, 0xca, 0x42, 0x41, 0xf2, 0x5e, 0xc6, 0xb0, 0xd0, + 0xf4, 0xa0, 0x58, 0xe8, 0x64, 0x22, 0x16, 0x3a, 0x15, 0xc5, 0x42, 0xef, 0x26, 0x8f, 0x90, 0x95, + 0x08, 0x16, 0xda, 0x3c, 0xf7, 0xf3, 0xbf, 0x9a, 0x00, 0x97, 0x63, 0x57, 0xdd, 0x81, 0x47, 0x47, + 0xcb, 0xf4, 0x1f, 0x6d, 0x9b, 0xfe, 0x4b, 0x20, 0x2d, 0x36, 0xb6, 0x3a, 0x73, 0x8f, 0x1f, 0x1f, + 0x42, 0xb4, 0x01, 0x09, 0x52, 0x57, 0x40, 0x46, 0x2a, 0xf0, 0x5a, 0x22, 0x30, 0x34, 0x59, 0xe9, + 0x01, 0x13, 0xa9, 0x05, 0x30, 0x2b, 0x55, 0x88, 0x01, 0x6b, 0x48, 0x3f, 0x84, 0x06, 0x75, 0x3c, + 0x3e, 0xd7, 0xb3, 0xda, 0x8c, 0x28, 0xaa, 0xb0, 0x92, 0x1d, 0x5e, 0xa0, 0x6e, 0x07, 0x6d, 0x52, + 0xc6, 0x99, 0x27, 0x38, 0x67, 0xbe, 0x12, 0x1a, 0x67, 0xb9, 0xd5, 0xf6, 0x9d, 0x7c, 0x9f, 0x7f, + 0x72, 0xbe, 0x2c, 0x2d, 0x63, 0xbf, 0xd5, 0x03, 0x30, 0x87, 0x6d, 0x4c, 0xb1, 0x60, 0x41, 0x47, + 0xd8, 0x66, 0xb3, 0x18, 0x3b, 0xa1, 0x69, 0xdc, 0x75, 0xf6, 0xa9, 0x12, 0xe0, 0x1e, 0xaf, 0xaf, + 0xb1, 0xea, 0xea, 0xb7, 0x41, 0xce, 0x82, 0x98, 0x0d, 0x2b, 0xb4, 0x0d, 0xd4, 0x0c, 0xdd, 0xc3, + 0xc4, 0x9e, 0x0f, 0x81, 0x84, 0xe1, 0xdb, 0x23, 0x38, 0x9d, 0x1c, 0xb4, 0x5b, 0x04, 0x67, 0x7a, + 0x80, 0x6a, 0x8a, 0xe0, 0x0e, 0x59, 0x30, 0x7b, 0x3e, 0x59, 0x70, 0xf2, 0x8c, 0x59, 0xb0, 0x35, + 0xdf, 0x4c, 0x0d, 0x24, 0xdf, 0x4c, 0xf7, 0x97, 0x6f, 0xfa, 0xdb, 0xa9, 0xc6, 0xa6, 0x81, 0xfc, + 0x3f, 0xc6, 0xc1, 0x4a, 0x57, 0x9a, 0x37, 0xf0, 0x64, 0xb1, 0x0a, 0xb2, 0x7e, 0x1c, 0x9f, 0x5a, + 0x55, 0xa7, 0x26, 0xd3, 0x85, 0x8c, 0xff, 0x0a, 0x97, 0xa9, 0xd7, 0xc1, 0x94, 0x54, 0x72, 0x3d, + 0xe7, 0x04, 0x9b, 0xc8, 0x93, 0x49, 0x63, 0x52, 0x88, 0xcb, 0x52, 0xda, 0x1a, 0xe5, 0x63, 0x7d, + 0x46, 0x79, 0xaf, 0xc9, 0xe5, 0x16, 0x98, 0xe3, 0x3b, 0x05, 0x4e, 0x49, 0x74, 0x8a, 0x2d, 0x44, + 0x28, 0xb4, 0x5c, 0x9e, 0x65, 0x46, 0xb4, 0xd9, 0x46, 0xd9, 0xbe, 0x5f, 0xc4, 0xaa, 0x84, 0x18, + 0x58, 0xa3, 0x4a, 0x4a, 0x54, 0x69, 0x94, 0x35, 0xaa, 0xcc, 0x81, 0x0b, 0x7c, 0x02, 0x88, 0x8c, + 0xa0, 0x89, 0x8f, 0xd6, 0x6c, 0x9b, 0x6e, 0xcb, 0xb6, 0xed, 0xc1, 0x9f, 0x19, 0x5c, 0xf0, 0x67, + 0x07, 0x1c, 0xfc, 0x93, 0xe7, 0x13, 0xfc, 0x53, 0x03, 0x0e, 0xfe, 0xe9, 0x3e, 0x83, 0xff, 0x8b, + 0x60, 0x46, 0x04, 0xbf, 0x8b, 0x3c, 0x0b, 0x13, 0xc2, 0xc2, 0x2c, 0x37, 0xc3, 0xa7, 0xd5, 0x34, + 0x2f, 0x28, 0x37, 0xe4, 0x7d, 0x32, 0xe5, 0x6e, 0x11, 0x9c, 0xff, 0xc3, 0x04, 0x58, 0xe9, 0xba, + 0xf5, 0x7d, 0x45, 0x0a, 0x7a, 0x48, 0x17, 0xf3, 0x60, 0x4c, 0x1c, 0x14, 0xc8, 0xe8, 0x95, 0x5f, + 0x1d, 0xc9, 0x02, 0x38, 0x3f, 0xb2, 0x90, 0x3e, 0x0f, 0xb2, 0xf0, 0x2a, 0x5f, 0x7c, 0x5e, 0xf9, + 0xa2, 0x99, 0x2c, 0xcc, 0xf4, 0x49, 0x16, 0xfa, 0x4a, 0x24, 0x5d, 0x53, 0x44, 0xfe, 0x27, 0x00, + 0xac, 0x26, 0x38, 0xd9, 0x3c, 0x9f, 0x2b, 0xa8, 0x4e, 0xb1, 0xd5, 0xc3, 0x45, 0x54, 0xaf, 0xb1, + 0xd5, 0xc3, 0xc5, 0x54, 0xf2, 0xd8, 0x1a, 0x1b, 0xdc, 0x56, 0x7a, 0x7c, 0xf0, 0x17, 0x67, 0x13, + 0xe7, 0x73, 0x71, 0x96, 0x3a, 0x9f, 0x8b, 0x33, 0x70, 0xc6, 0x8b, 0xb3, 0x0a, 0x50, 0xdf, 0x71, + 0xea, 0x5e, 0xed, 0x74, 0xd7, 0xa6, 0xc8, 0x43, 0x84, 0x6a, 0xcd, 0x5b, 0xa5, 0xee, 0x33, 0xaa, + 0xbd, 0xba, 0xfa, 0x1e, 0x98, 0x13, 0xd2, 0x9d, 0xba, 0xcd, 0x0f, 0x6d, 0x21, 0x45, 0x9b, 0xd0, + 0x0d, 0x25, 0xd5, 0xae, 0xb0, 0x91, 0x00, 0xa1, 0x6b, 0xbe, 0x6c, 0x9f, 0xd7, 0x7c, 0xf7, 0x02, + 0xee, 0xcd, 0x4f, 0x61, 0xc5, 0xa1, 0x45, 0x3a, 0x1e, 0x48, 0x2c, 0x81, 0x3c, 0xcc, 0x89, 0xcf, + 0xd2, 0xc5, 0x57, 0xe8, 0xd6, 0x70, 0x2a, 0xc1, 0xad, 0xe1, 0xf4, 0x40, 0x6e, 0x0d, 0xfb, 0x4d, + 0x89, 0xef, 0x25, 0x4f, 0x89, 0x6f, 0x06, 0x29, 0x31, 0x41, 0xb2, 0xcb, 0xef, 0x81, 0x54, 0xd0, + 0x60, 0x83, 0xb1, 0x2b, 0x61, 0xc6, 0x1e, 0x49, 0x02, 0x87, 0xa3, 0x49, 0x60, 0xfe, 0x17, 0xc3, + 0x60, 0x31, 0xfe, 0xc8, 0xf5, 0x7c, 0xf2, 0xeb, 0x1e, 0x98, 0x6e, 0x3a, 0x21, 0xc6, 0x46, 0x4f, + 0x97, 0xfc, 0x53, 0x24, 0x64, 0x27, 0x36, 0x50, 0x49, 0x4b, 0xee, 0xf0, 0xeb, 0x81, 0xc3, 0xe3, + 0x3b, 0x9e, 0xff, 0x8f, 0x02, 0x2e, 0xc6, 0x1c, 0xbb, 0xf7, 0xed, 0x98, 0x32, 0x98, 0x6c, 0xbe, + 0x0f, 0x90, 0x37, 0x8e, 0x6f, 0xc4, 0xdf, 0xf1, 0x85, 0x4c, 0xd0, 0xb2, 0x4d, 0x27, 0xfe, 0xa5, + 0xfb, 0xc9, 0x7b, 0x7f, 0x25, 0xe8, 0x7d, 0x4c, 0xd7, 0xf2, 0xbf, 0x9f, 0x00, 0xd7, 0x92, 0x5d, + 0x80, 0xbc, 0x7a, 0x01, 0xf2, 0xff, 0xf7, 0x02, 0xa4, 0xd3, 0x79, 0x44, 0xaa, 0xf7, 0xf3, 0x08, + 0xd0, 0xf9, 0x3c, 0x22, 0x2a, 0x45, 0xa4, 0xfb, 0x4f, 0x11, 0x8d, 0x6c, 0x99, 0x09, 0x67, 0xcb, + 0xb3, 0x2f, 0x73, 0x07, 0xd1, 0xcb, 0xdc, 0x97, 0x62, 0xef, 0xa9, 0xe5, 0x89, 0xd2, 0xe7, 0xbd, + 0xdc, 0x95, 0x1e, 0x26, 0xcf, 0x1c, 0xc5, 0xb8, 0x43, 0x80, 0xa8, 0xb5, 0xea, 0x77, 0x0a, 0x98, + 0x8b, 0xea, 0x28, 0xdb, 0xd0, 0xca, 0xd3, 0x38, 0x91, 0x33, 0xe4, 0x97, 0xba, 0x00, 0x26, 0x82, + 0x03, 0x38, 0x91, 0x31, 0x82, 0xef, 0x4e, 0x7b, 0xef, 0x91, 0x84, 0x7b, 0xef, 0xd1, 0xfe, 0xf6, + 0xde, 0xf9, 0x3f, 0x2a, 0x20, 0xd3, 0x64, 0x7b, 0xcb, 0x39, 0x82, 0xd2, 0xf5, 0x1c, 0x61, 0x38, + 0xf1, 0x39, 0xc2, 0x79, 0xf7, 0xe5, 0xdf, 0xc3, 0x60, 0x35, 0xf2, 0xfe, 0x7f, 0x40, 0x67, 0x33, + 0x0f, 0x41, 0x36, 0x78, 0x9a, 0xc0, 0xd9, 0xd3, 0x08, 0x0f, 0x84, 0xaf, 0xf4, 0xfc, 0x1e, 0x81, + 0xb3, 0xa9, 0x8c, 0x11, 0xfa, 0x52, 0xab, 0xe0, 0xb5, 0x00, 0x5b, 0x3e, 0x83, 0x70, 0x1d, 0x27, + 0x78, 0x1e, 0x53, 0x88, 0x6b, 0xc3, 0x87, 0x15, 0x8d, 0x94, 0x1d, 0xa7, 0xa6, 0xcd, 0x1a, 0x6d, + 0x32, 0xd2, 0x1f, 0x69, 0x4b, 0xe0, 0xd0, 0xfc, 0x7f, 0x47, 0x3a, 0x38, 0x7e, 0x40, 0x4b, 0xe9, + 0x79, 0x3a, 0xbe, 0x0e, 0x96, 0x22, 0x1d, 0xaf, 0x43, 0xd3, 0xc4, 0x3c, 0x01, 0xf4, 0x39, 0x04, + 0x97, 0x22, 0x86, 0x60, 0xdd, 0xc7, 0x54, 0x1f, 0x83, 0xcb, 0xd1, 0xcd, 0x8a, 0xa7, 0x13, 0xfe, + 0x4b, 0xa4, 0x5e, 0x1b, 0x5d, 0x88, 0x68, 0x54, 0x0c, 0xc2, 0x20, 0x87, 0xbf, 0x25, 0x0f, 0x7e, + 0x4f, 0x01, 0x33, 0x7e, 0x7b, 0xd8, 0xa6, 0xa2, 0x54, 0xbd, 0x0e, 0xa6, 0xa0, 0x21, 0x9e, 0x64, + 0x40, 0xd3, 0xf4, 0x10, 0x21, 0x72, 0xd8, 0x27, 0xa5, 0x78, 0x5d, 0x48, 0xd5, 0x0d, 0x00, 0x6c, + 0xf4, 0x44, 0x77, 0x59, 0x5d, 0xd2, 0xcb, 0x61, 0x59, 0xca, 0x46, 0x4f, 0x78, 0x8b, 0x24, 0xff, + 0x97, 0x61, 0xb0, 0xd6, 0x64, 0x6a, 0x19, 0xf1, 0xcd, 0x9e, 0x28, 0x1e, 0xd0, 0x34, 0x7c, 0x0b, + 0xcc, 0xbb, 0x02, 0x96, 0x8f, 0x55, 0x68, 0x95, 0x1f, 0xe1, 0xab, 0xfc, 0x9c, 0xeb, 0x37, 0xea, + 0xd4, 0x1a, 0xcb, 0xbc, 0x0e, 0xe6, 0x82, 0x01, 0xc6, 0x36, 0x0d, 0x06, 0x58, 0xcc, 0xaa, 0x9b, + 0x71, 0x03, 0xdc, 0xe6, 0x54, 0x4d, 0xf5, 0x5a, 0x45, 0xa4, 0xf4, 0xad, 0xe4, 0xe3, 0x7a, 0x2b, + 0x7a, 0x5c, 0x63, 0x9c, 0x95, 0x7f, 0xa9, 0x80, 0xd9, 0x88, 0x67, 0x32, 0x7d, 0x3b, 0xf1, 0x9b, + 0x60, 0x82, 0x18, 0xc7, 0xc8, 0xac, 0xd7, 0x90, 0x0c, 0xe3, 0xa4, 0x2f, 0x74, 0x2a, 0xb2, 0x9a, + 0x16, 0x00, 0x94, 0xde, 0x4e, 0xde, 0xf5, 0x4b, 0x41, 0xd7, 0x23, 0x7a, 0x93, 0xff, 0x70, 0x18, + 0x2c, 0xf1, 0x47, 0x32, 0x9b, 0x8e, 0x65, 0xd5, 0x6d, 0x4c, 0x4f, 0xd9, 0x20, 0x56, 0xd8, 0x80, + 0x9e, 0xb9, 0xc7, 0x07, 0x20, 0xd5, 0xfa, 0xf6, 0xf2, 0x8e, 0x7c, 0x57, 0x5f, 0x68, 0x7a, 0x42, + 0xdf, 0xb0, 0xba, 0x93, 0x0d, 0x5a, 0x03, 0xa9, 0x54, 0x49, 0xde, 0xf7, 0xb5, 0xe6, 0x87, 0x40, + 0x9d, 0xf1, 0xf3, 0xbf, 0x19, 0x06, 0x85, 0x75, 0xea, 0x58, 0xd8, 0x10, 0xb4, 0xe7, 0xbe, 0x67, + 0x72, 0x26, 0x7f, 0xaf, 0x5e, 0xa3, 0xd8, 0xad, 0x61, 0xe4, 0xf9, 0xa3, 0x70, 0x66, 0xb7, 0x20, + 0x30, 0xef, 0xbf, 0xa8, 0x42, 0x48, 0xb7, 0x82, 0x06, 0x7c, 0x1f, 0x15, 0x13, 0xbc, 0xa2, 0x0a, + 0x1b, 0xa6, 0xcd, 0x59, 0xed, 0x42, 0x52, 0xaa, 0x26, 0x77, 0xd3, 0x9d, 0xc0, 0x4d, 0xbd, 0xb9, + 0xe0, 0xc6, 0x53, 0x90, 0x09, 0xbf, 0x10, 0x56, 0x6f, 0x83, 0xb9, 0xed, 0xf7, 0x37, 0xdf, 0x59, + 0xdf, 0x7b, 0x7b, 0x5b, 0x3f, 0xd8, 0xab, 0x94, 0xb7, 0x37, 0x77, 0x77, 0x76, 0xb7, 0xb7, 0xa6, + 0x87, 0x16, 0x72, 0xcf, 0x9e, 0x2f, 0x47, 0x96, 0xa9, 0x2a, 0x18, 0xad, 0x94, 0xef, 0xef, 0x4f, + 0x2b, 0x0b, 0x13, 0xcf, 0x9e, 0x2f, 0xf3, 0xdf, 0xcc, 0x89, 0x5b, 0xdb, 0xda, 0xee, 0xbb, 0xeb, + 0xfb, 0xbb, 0xef, 0x6e, 0x57, 0xa6, 0x87, 0x17, 0xa6, 0x9e, 0x3d, 0x5f, 0x0e, 0x8b, 0x36, 0x8e, + 0x3f, 0x79, 0xb1, 0xa8, 0x7c, 0xfa, 0x62, 0x51, 0xf9, 0xfb, 0x8b, 0x45, 0xe5, 0x47, 0x2f, 0x17, + 0x87, 0x3e, 0x7d, 0xb9, 0x38, 0xf4, 0xd7, 0x97, 0x8b, 0x43, 0x0f, 0xf7, 0x8e, 0x30, 0x3d, 0xae, + 0x57, 0x0b, 0x86, 0x63, 0x15, 0x77, 0x7d, 0x47, 0xde, 0x85, 0x55, 0x52, 0x0c, 0xdc, 0x7a, 0xd3, + 0x70, 0x3c, 0x14, 0xfe, 0x3c, 0x86, 0xd8, 0x2e, 0x5a, 0x0e, 0xeb, 0x1b, 0x69, 0xb0, 0x61, 0xc6, + 0xc9, 0x48, 0x75, 0x8c, 0xff, 0xc5, 0xc4, 0x97, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x86, 0x3e, + 0x35, 0xf5, 0x79, 0x32, 0x00, 0x00, } func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) { @@ -1397,6 +1408,16 @@ func (m *SpotMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x70 + } + if m.BaseDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x68 + } if m.AdminInfo != nil { { size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) @@ -1764,6 +1785,16 @@ func (m *SpotMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x78 + } + if m.BaseDecimals != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x70 + } if m.AdminInfo != nil { { size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) @@ -3406,6 +3437,12 @@ func (m *SpotMarketParamUpdateProposal) Size() (n int) { l = m.AdminInfo.Size() n += 1 + l + sovProposal(uint64(l)) } + if m.BaseDecimals != 0 { + n += 1 + sovProposal(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovProposal(uint64(m.QuoteDecimals)) + } return n } @@ -3550,6 +3587,12 @@ func (m *SpotMarketLaunchProposal) Size() (n int) { l = m.AdminInfo.Size() n += 1 + l + sovProposal(uint64(l)) } + if m.BaseDecimals != 0 { + n += 1 + sovProposal(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovProposal(uint64(m.QuoteDecimals)) + } return n } @@ -4590,6 +4633,44 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -5637,6 +5718,44 @@ func (m *SpotMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go index 865c480d..00a13881 100644 --- a/chain/exchange/types/query.pb.go +++ b/chain/exchange/types/query.pb.go @@ -6275,6 +6275,255 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) GetOrders() []*TrimmedD return nil } +type QueryFullSpotOrderbookRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryFullSpotOrderbookRequest) Reset() { *m = QueryFullSpotOrderbookRequest{} } +func (m *QueryFullSpotOrderbookRequest) String() string { return proto.CompactTextString(m) } +func (*QueryFullSpotOrderbookRequest) ProtoMessage() {} +func (*QueryFullSpotOrderbookRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{122} +} +func (m *QueryFullSpotOrderbookRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullSpotOrderbookRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullSpotOrderbookRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullSpotOrderbookRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullSpotOrderbookRequest.Merge(m, src) +} +func (m *QueryFullSpotOrderbookRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryFullSpotOrderbookRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullSpotOrderbookRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullSpotOrderbookRequest proto.InternalMessageInfo + +func (m *QueryFullSpotOrderbookRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryFullSpotOrderbookResponse struct { + Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` + Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` +} + +func (m *QueryFullSpotOrderbookResponse) Reset() { *m = QueryFullSpotOrderbookResponse{} } +func (m *QueryFullSpotOrderbookResponse) String() string { return proto.CompactTextString(m) } +func (*QueryFullSpotOrderbookResponse) ProtoMessage() {} +func (*QueryFullSpotOrderbookResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{123} +} +func (m *QueryFullSpotOrderbookResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullSpotOrderbookResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullSpotOrderbookResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullSpotOrderbookResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullSpotOrderbookResponse.Merge(m, src) +} +func (m *QueryFullSpotOrderbookResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryFullSpotOrderbookResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullSpotOrderbookResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullSpotOrderbookResponse proto.InternalMessageInfo + +func (m *QueryFullSpotOrderbookResponse) GetBids() []*TrimmedLimitOrder { + if m != nil { + return m.Bids + } + return nil +} + +func (m *QueryFullSpotOrderbookResponse) GetAsks() []*TrimmedLimitOrder { + if m != nil { + return m.Asks + } + return nil +} + +type QueryFullDerivativeOrderbookRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryFullDerivativeOrderbookRequest) Reset() { *m = QueryFullDerivativeOrderbookRequest{} } +func (m *QueryFullDerivativeOrderbookRequest) String() string { return proto.CompactTextString(m) } +func (*QueryFullDerivativeOrderbookRequest) ProtoMessage() {} +func (*QueryFullDerivativeOrderbookRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{124} +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullDerivativeOrderbookRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullDerivativeOrderbookRequest.Merge(m, src) +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryFullDerivativeOrderbookRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullDerivativeOrderbookRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullDerivativeOrderbookRequest proto.InternalMessageInfo + +func (m *QueryFullDerivativeOrderbookRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryFullDerivativeOrderbookResponse struct { + Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` + Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` +} + +func (m *QueryFullDerivativeOrderbookResponse) Reset() { *m = QueryFullDerivativeOrderbookResponse{} } +func (m *QueryFullDerivativeOrderbookResponse) String() string { return proto.CompactTextString(m) } +func (*QueryFullDerivativeOrderbookResponse) ProtoMessage() {} +func (*QueryFullDerivativeOrderbookResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{125} +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFullDerivativeOrderbookResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFullDerivativeOrderbookResponse.Merge(m, src) +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryFullDerivativeOrderbookResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFullDerivativeOrderbookResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFullDerivativeOrderbookResponse proto.InternalMessageInfo + +func (m *QueryFullDerivativeOrderbookResponse) GetBids() []*TrimmedLimitOrder { + if m != nil { + return m.Bids + } + return nil +} + +func (m *QueryFullDerivativeOrderbookResponse) GetAsks() []*TrimmedLimitOrder { + if m != nil { + return m.Asks + } + return nil +} + +type TrimmedLimitOrder struct { + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + // quantity of the order + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + OrderHash string `protobuf:"bytes,3,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` +} + +func (m *TrimmedLimitOrder) Reset() { *m = TrimmedLimitOrder{} } +func (m *TrimmedLimitOrder) String() string { return proto.CompactTextString(m) } +func (*TrimmedLimitOrder) ProtoMessage() {} +func (*TrimmedLimitOrder) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{126} +} +func (m *TrimmedLimitOrder) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TrimmedLimitOrder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TrimmedLimitOrder.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TrimmedLimitOrder) XXX_Merge(src proto.Message) { + xxx_messageInfo_TrimmedLimitOrder.Merge(m, src) +} +func (m *TrimmedLimitOrder) XXX_Size() int { + return m.Size() +} +func (m *TrimmedLimitOrder) XXX_DiscardUnknown() { + xxx_messageInfo_TrimmedLimitOrder.DiscardUnknown(m) +} + +var xxx_messageInfo_TrimmedLimitOrder proto.InternalMessageInfo + +func (m *TrimmedLimitOrder) GetOrderHash() string { + if m != nil { + return m.OrderHash + } + return "" +} + +func (m *TrimmedLimitOrder) GetSubaccountId() string { + if m != nil { + return m.SubaccountId + } + return "" +} + type QueryMarketAtomicExecutionFeeMultiplierRequest struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` } @@ -6287,7 +6536,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) String() string { } func (*QueryMarketAtomicExecutionFeeMultiplierRequest) ProtoMessage() {} func (*QueryMarketAtomicExecutionFeeMultiplierRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{122} + return fileDescriptor_523db28b8af54781, []int{127} } func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6335,7 +6584,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) String() string { } func (*QueryMarketAtomicExecutionFeeMultiplierResponse) ProtoMessage() {} func (*QueryMarketAtomicExecutionFeeMultiplierResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{123} + return fileDescriptor_523db28b8af54781, []int{128} } func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6372,7 +6621,7 @@ func (m *QueryActiveStakeGrantRequest) Reset() { *m = QueryActiveStakeGr func (m *QueryActiveStakeGrantRequest) String() string { return proto.CompactTextString(m) } func (*QueryActiveStakeGrantRequest) ProtoMessage() {} func (*QueryActiveStakeGrantRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{124} + return fileDescriptor_523db28b8af54781, []int{129} } func (m *QueryActiveStakeGrantRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6417,7 +6666,7 @@ func (m *QueryActiveStakeGrantResponse) Reset() { *m = QueryActiveStakeG func (m *QueryActiveStakeGrantResponse) String() string { return proto.CompactTextString(m) } func (*QueryActiveStakeGrantResponse) ProtoMessage() {} func (*QueryActiveStakeGrantResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{125} + return fileDescriptor_523db28b8af54781, []int{130} } func (m *QueryActiveStakeGrantResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6469,7 +6718,7 @@ func (m *QueryGrantAuthorizationRequest) Reset() { *m = QueryGrantAuthor func (m *QueryGrantAuthorizationRequest) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationRequest) ProtoMessage() {} func (*QueryGrantAuthorizationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{126} + return fileDescriptor_523db28b8af54781, []int{131} } func (m *QueryGrantAuthorizationRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6520,7 +6769,7 @@ func (m *QueryGrantAuthorizationResponse) Reset() { *m = QueryGrantAutho func (m *QueryGrantAuthorizationResponse) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationResponse) ProtoMessage() {} func (*QueryGrantAuthorizationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{127} + return fileDescriptor_523db28b8af54781, []int{132} } func (m *QueryGrantAuthorizationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6557,7 +6806,7 @@ func (m *QueryGrantAuthorizationsRequest) Reset() { *m = QueryGrantAutho func (m *QueryGrantAuthorizationsRequest) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationsRequest) ProtoMessage() {} func (*QueryGrantAuthorizationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{128} + return fileDescriptor_523db28b8af54781, []int{133} } func (m *QueryGrantAuthorizationsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6602,7 +6851,7 @@ func (m *QueryGrantAuthorizationsResponse) Reset() { *m = QueryGrantAuth func (m *QueryGrantAuthorizationsResponse) String() string { return proto.CompactTextString(m) } func (*QueryGrantAuthorizationsResponse) ProtoMessage() {} func (*QueryGrantAuthorizationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_523db28b8af54781, []int{129} + return fileDescriptor_523db28b8af54781, []int{134} } func (m *QueryGrantAuthorizationsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6764,6 +7013,11 @@ func init() { proto.RegisterType((*QueryTraderDerivativeConditionalOrdersRequest)(nil), "injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersRequest") proto.RegisterType((*TrimmedDerivativeConditionalOrder)(nil), "injective.exchange.v1beta1.TrimmedDerivativeConditionalOrder") proto.RegisterType((*QueryTraderDerivativeConditionalOrdersResponse)(nil), "injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersResponse") + proto.RegisterType((*QueryFullSpotOrderbookRequest)(nil), "injective.exchange.v1beta1.QueryFullSpotOrderbookRequest") + proto.RegisterType((*QueryFullSpotOrderbookResponse)(nil), "injective.exchange.v1beta1.QueryFullSpotOrderbookResponse") + proto.RegisterType((*QueryFullDerivativeOrderbookRequest)(nil), "injective.exchange.v1beta1.QueryFullDerivativeOrderbookRequest") + proto.RegisterType((*QueryFullDerivativeOrderbookResponse)(nil), "injective.exchange.v1beta1.QueryFullDerivativeOrderbookResponse") + proto.RegisterType((*TrimmedLimitOrder)(nil), "injective.exchange.v1beta1.TrimmedLimitOrder") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierRequest)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierRequest") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierResponse)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierResponse") proto.RegisterType((*QueryActiveStakeGrantRequest)(nil), "injective.exchange.v1beta1.QueryActiveStakeGrantRequest") @@ -6779,372 +7033,382 @@ func init() { } var fileDescriptor_523db28b8af54781 = []byte{ - // 5833 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5d, 0x7d, 0x8c, 0x1c, 0xc9, - 0x55, 0x77, 0xcf, 0x7e, 0x78, 0xf7, 0xed, 0xa7, 0x6b, 0xd7, 0xeb, 0xf5, 0xdc, 0x9d, 0x3f, 0xda, - 0x71, 0xce, 0xe7, 0x9c, 0x77, 0xed, 0xf5, 0xf7, 0xb7, 0xf7, 0xc3, 0x6b, 0xef, 0xd9, 0x6b, 0x3b, - 0xb3, 0xeb, 0xbb, 0xe4, 0x02, 0x4c, 0x7a, 0x67, 0x6a, 0x67, 0x3b, 0xee, 0x99, 0x1e, 0x4f, 0xf7, - 0xec, 0x79, 0x31, 0x46, 0x40, 0x40, 0x89, 0x40, 0x02, 0xa4, 0x08, 0x10, 0x02, 0x21, 0xe0, 0x4f, - 0xa4, 0x08, 0x89, 0x08, 0x81, 0x12, 0x29, 0x51, 0x08, 0x42, 0x21, 0xe1, 0x23, 0x40, 0x08, 0x28, - 0x82, 0x23, 0xba, 0x0b, 0x44, 0x39, 0x81, 0xc4, 0x5f, 0x48, 0x08, 0x14, 0x50, 0x57, 0xbd, 0xaa, - 0xe9, 0xef, 0xa9, 0x9e, 0xdd, 0xd3, 0x25, 0xf0, 0xd7, 0x4e, 0x57, 0xd7, 0x7b, 0xf5, 0xde, 0xab, - 0x57, 0xaf, 0x5e, 0x7d, 0xfc, 0x7a, 0xe1, 0xfd, 0x66, 0xed, 0x63, 0xb4, 0xe4, 0x9a, 0x9b, 0x74, - 0x9a, 0x3e, 0x29, 0x6d, 0x18, 0xb5, 0x0a, 0x9d, 0xde, 0x3c, 0xb5, 0x46, 0x5d, 0xe3, 0xd4, 0xf4, - 0xe3, 0x26, 0x6d, 0x6c, 0x4d, 0xd5, 0x1b, 0xb6, 0x6b, 0x93, 0xbc, 0xac, 0x37, 0x25, 0xea, 0x4d, - 0x61, 0xbd, 0xfc, 0xf3, 0x15, 0xdb, 0xae, 0x58, 0x74, 0xda, 0xa8, 0x9b, 0xd3, 0x46, 0xad, 0x66, - 0xbb, 0x86, 0x6b, 0xda, 0x35, 0x87, 0x53, 0xe6, 0x5f, 0x4a, 0x69, 0x41, 0xb2, 0xe2, 0x55, 0x8f, - 0xa5, 0x54, 0xad, 0xd0, 0x1a, 0x75, 0x4c, 0xc1, 0xf4, 0x68, 0xab, 0xa6, 0xdd, 0x30, 0x4a, 0x56, - 0xab, 0x1e, 0x7f, 0xc4, 0x6a, 0xe3, 0x15, 0xbb, 0x62, 0xb3, 0x9f, 0xd3, 0xde, 0x2f, 0x5e, 0xaa, - 0xdf, 0x07, 0x58, 0x69, 0xae, 0x19, 0xa5, 0x92, 0xdd, 0xac, 0xb9, 0x64, 0x02, 0x7a, 0xdd, 0x86, - 0x51, 0xa6, 0x8d, 0x49, 0xed, 0x90, 0x76, 0xac, 0xbf, 0x80, 0x4f, 0xe4, 0x25, 0x18, 0x75, 0x64, - 0xad, 0x62, 0xcd, 0xae, 0x95, 0xe8, 0x64, 0xee, 0x90, 0x76, 0x6c, 0xa8, 0x30, 0xd2, 0x2a, 0xbf, - 0xe7, 0x15, 0xeb, 0x1f, 0x85, 0xe7, 0x3f, 0xe8, 0xd9, 0xaa, 0xc5, 0xf5, 0x7e, 0xa3, 0x4c, 0x1b, - 0x4e, 0x81, 0x3e, 0x6e, 0x52, 0xc7, 0x25, 0x47, 0x60, 0xc8, 0xc7, 0xca, 0x2c, 0x63, 0x4b, 0x83, - 0xad, 0xc2, 0xa5, 0x32, 0x79, 0x0e, 0xfa, 0xab, 0x46, 0xe3, 0x11, 0x65, 0x15, 0x72, 0xac, 0x42, - 0x1f, 0x2f, 0x58, 0x2a, 0xeb, 0x5f, 0xd4, 0xe0, 0x85, 0x84, 0x26, 0x9c, 0xba, 0x5d, 0x73, 0x28, - 0xb9, 0x07, 0xb0, 0xd6, 0xdc, 0x2a, 0xda, 0xac, 0x74, 0x52, 0x3b, 0xd4, 0x75, 0x6c, 0x60, 0x66, - 0x7a, 0x2a, 0xb9, 0xd7, 0xa6, 0x42, 0x9c, 0x16, 0x0c, 0xd7, 0x28, 0xf4, 0xaf, 0x35, 0xb7, 0x38, - 0x5f, 0xf2, 0x00, 0x06, 0x1c, 0x6a, 0x59, 0x82, 0x61, 0xae, 0x33, 0x86, 0xe0, 0xf1, 0xe0, 0x1c, - 0xf5, 0xdf, 0xd5, 0xe0, 0x68, 0xa8, 0xce, 0x9a, 0x6d, 0x3f, 0x5a, 0xa6, 0xae, 0x51, 0x36, 0x5c, - 0xe3, 0x35, 0xd3, 0xdd, 0x58, 0x66, 0xfa, 0x92, 0x15, 0xe8, 0xab, 0x62, 0x29, 0x33, 0xd5, 0xc0, - 0xcc, 0xf9, 0x0c, 0x0d, 0xfb, 0x99, 0x16, 0x24, 0xa3, 0x54, 0xfb, 0x92, 0x71, 0xe8, 0x31, 0x9d, - 0xb9, 0xe6, 0xd6, 0x64, 0xd7, 0x21, 0xed, 0x58, 0x5f, 0x81, 0x3f, 0xe8, 0xcf, 0x43, 0x9e, 0x19, - 0xfd, 0x26, 0xb6, 0xf8, 0xc0, 0x68, 0x18, 0x55, 0xd1, 0xab, 0x7a, 0x11, 0x9e, 0x8b, 0x7d, 0x8b, - 0x1d, 0x72, 0x03, 0x7a, 0xeb, 0xac, 0x04, 0x55, 0xd0, 0xd3, 0x54, 0xe0, 0xb4, 0x73, 0xdd, 0x5f, - 0x7e, 0xf3, 0xe0, 0xae, 0x02, 0xd2, 0xe9, 0x9f, 0xd2, 0xe0, 0x40, 0xa8, 0xd3, 0x17, 0x68, 0xdd, - 0x76, 0x4c, 0x37, 0x9b, 0x67, 0xdd, 0x05, 0x68, 0x3d, 0x33, 0xd5, 0x07, 0x66, 0xde, 0xaf, 0x66, - 0x50, 0x26, 0x91, 0x56, 0xf0, 0xd1, 0xeb, 0xef, 0x68, 0x70, 0x30, 0x51, 0x2a, 0xd4, 0x9d, 0x42, - 0x5f, 0x19, 0xcb, 0xd0, 0x15, 0x97, 0xd2, 0xda, 0x6b, 0xc3, 0x6e, 0x4a, 0x14, 0xdc, 0xac, 0xb9, - 0x8d, 0xad, 0x82, 0x64, 0x9d, 0xff, 0x28, 0x0c, 0x05, 0x5e, 0x91, 0x51, 0xe8, 0x7a, 0x44, 0xb7, - 0xd0, 0x08, 0xde, 0x4f, 0x72, 0x11, 0x7a, 0x36, 0x0d, 0xab, 0x49, 0x51, 0xed, 0x23, 0x69, 0x62, - 0x20, 0xaf, 0x02, 0xa7, 0xb8, 0x94, 0xbb, 0xa0, 0xe9, 0x07, 0x70, 0x64, 0x8b, 0x3e, 0x9e, 0x33, - 0x2c, 0xa3, 0x56, 0xa2, 0xd2, 0x07, 0xd6, 0x71, 0x58, 0x46, 0xdf, 0xa3, 0x25, 0x6e, 0x42, 0xdf, - 0x1a, 0x96, 0xa1, 0x25, 0x52, 0x45, 0x40, 0x7a, 0x74, 0x04, 0x49, 0xaa, 0x9f, 0x47, 0x5f, 0x9b, - 0xad, 0x54, 0x1a, 0xb4, 0x62, 0xb8, 0xf4, 0x55, 0xdb, 0x6a, 0x56, 0xa9, 0x70, 0x83, 0x49, 0xd8, - 0x2d, 0xba, 0x97, 0xeb, 0x2e, 0x1e, 0xf5, 0x26, 0x2a, 0x10, 0x21, 0x44, 0xf9, 0x1e, 0xc2, 0x1e, - 0x43, 0xbc, 0x2a, 0x6e, 0xb2, 0x77, 0x42, 0xd0, 0x63, 0x69, 0x82, 0xf2, 0x91, 0x8a, 0xcc, 0x46, - 0x8d, 0x20, 0x77, 0x47, 0xff, 0x70, 0x7c, 0xb3, 0xd2, 0x6f, 0xf3, 0xd0, 0x87, 0x12, 0xf2, 0xd6, - 0xfa, 0x0b, 0xf2, 0x99, 0xbc, 0x00, 0x20, 0x07, 0x2a, 0x0f, 0x3c, 0xfd, 0x85, 0x7e, 0x31, 0x52, - 0x1d, 0xfd, 0x3f, 0x45, 0x28, 0x8c, 0xf2, 0x46, 0x9d, 0x5c, 0xd8, 0xdf, 0xd2, 0x49, 0x8c, 0x8d, - 0xa0, 0x6e, 0x17, 0xd2, 0x74, 0x93, 0x8c, 0x67, 0x39, 0xad, 0x30, 0x59, 0xc9, 0x6e, 0x94, 0x0b, - 0xfb, 0x8c, 0xd8, 0xb7, 0x0e, 0x59, 0x83, 0xc9, 0x56, 0xab, 0xa8, 0x80, 0x68, 0x34, 0x97, 0xd1, - 0xa0, 0x13, 0x92, 0x93, 0xbf, 0xd8, 0xd1, 0x6f, 0xc0, 0xe1, 0xa0, 0xea, 0x01, 0x2a, 0xb4, 0x6d, - 0x20, 0xd0, 0x69, 0xa1, 0x89, 0xc4, 0x02, 0x3d, 0x8d, 0x03, 0x5a, 0x70, 0x11, 0x7a, 0xb9, 0xe8, - 0x18, 0xbb, 0x52, 0x25, 0xf7, 0x9b, 0x47, 0x44, 0x30, 0x4e, 0xad, 0x9f, 0x84, 0x49, 0xd6, 0xda, - 0x02, 0xad, 0xd9, 0xd5, 0x05, 0x5a, 0x32, 0xab, 0x86, 0x25, 0xc4, 0x1c, 0x87, 0x9e, 0xb2, 0x57, - 0x8c, 0x22, 0xf2, 0x07, 0xfd, 0x2c, 0xec, 0x8f, 0xa1, 0x40, 0xb1, 0x26, 0x61, 0x77, 0x99, 0x17, - 0x31, 0xa2, 0xee, 0x82, 0x78, 0xd4, 0x4f, 0xc7, 0x90, 0x49, 0x67, 0x9b, 0x80, 0x5e, 0xc6, 0x5c, - 0xb8, 0x1a, 0x3e, 0xe9, 0x2e, 0x86, 0xf7, 0x10, 0x11, 0x36, 0xf6, 0x2a, 0x0c, 0xb3, 0x7a, 0x45, - 0x6c, 0x43, 0xb8, 0xce, 0x4b, 0xe9, 0x21, 0xc4, 0xc7, 0x0a, 0x8d, 0x31, 0x54, 0xf6, 0x17, 0xea, - 0xf3, 0x69, 0x3d, 0x20, 0x65, 0x0e, 0x0e, 0x02, 0x2d, 0x3c, 0x08, 0x4c, 0x38, 0x92, 0xca, 0x04, - 0x75, 0x98, 0x83, 0xdd, 0x9d, 0x8e, 0x69, 0x41, 0xa8, 0xbf, 0x1e, 0xc9, 0x3c, 0x44, 0x9c, 0xcc, - 0x32, 0x07, 0xc9, 0xde, 0xce, 0xf9, 0x7b, 0xdb, 0x48, 0x9a, 0xe0, 0xa4, 0x06, 0xd7, 0x03, 0x33, - 0x89, 0x72, 0x08, 0x97, 0x44, 0xfa, 0x03, 0xd8, 0xc7, 0x9b, 0xa8, 0xdb, 0x2e, 0x57, 0xd0, 0xef, - 0x17, 0x8e, 0x6b, 0xb8, 0x4d, 0x47, 0x64, 0x7e, 0xfc, 0xa9, 0x5d, 0x00, 0xfa, 0x21, 0x74, 0xea, - 0x00, 0x47, 0x39, 0xe9, 0xef, 0xe6, 0x15, 0x85, 0xc1, 0xd3, 0xe7, 0x59, 0xc9, 0xa1, 0x20, 0xc8, - 0xf4, 0xb3, 0x30, 0x11, 0xe2, 0xae, 0x34, 0xae, 0x3f, 0x1c, 0x51, 0x53, 0xca, 0x74, 0x0d, 0x7a, - 0x79, 0x35, 0x34, 0xa0, 0xaa, 0x48, 0x48, 0xa5, 0x7f, 0x23, 0x87, 0x83, 0xcb, 0x7b, 0x27, 0x33, - 0x2c, 0x15, 0xa9, 0xbc, 0x5e, 0xb7, 0xcc, 0xaa, 0xc9, 0x93, 0x8e, 0xee, 0x02, 0x7f, 0x20, 0x0b, - 0x00, 0x2c, 0xab, 0x2c, 0x3a, 0x66, 0x99, 0xb2, 0x8c, 0x6b, 0x78, 0xe6, 0x68, 0x9a, 0x50, 0xac, - 0xd1, 0x15, 0xb3, 0x4c, 0x0b, 0xfd, 0xb6, 0xf8, 0x49, 0x8a, 0xb0, 0x9f, 0xb1, 0x2b, 0x96, 0x9a, - 0xd5, 0xa6, 0x65, 0x78, 0x94, 0xc5, 0x9a, 0xed, 0xad, 0x3c, 0x0c, 0x6b, 0xb2, 0xdb, 0x13, 0x64, - 0xee, 0x88, 0x97, 0xbc, 0x7c, 0xf3, 0xcd, 0x83, 0xcf, 0x95, 0x6c, 0xa7, 0x6a, 0x3b, 0x4e, 0xf9, - 0xd1, 0x94, 0x69, 0x4f, 0x57, 0x0d, 0x77, 0x63, 0xea, 0x2e, 0xad, 0x18, 0xa5, 0xad, 0x05, 0x5a, - 0x2a, 0xec, 0x63, 0x5c, 0xe6, 0x25, 0x93, 0x7b, 0xc8, 0x23, 0xb6, 0x81, 0xc7, 0x4d, 0xa3, 0xe6, - 0x9a, 0xee, 0xd6, 0x64, 0x4f, 0xe7, 0x0d, 0x7c, 0x10, 0x79, 0xe8, 0x7f, 0xa8, 0x61, 0x00, 0x0a, - 0x19, 0x16, 0xfb, 0xed, 0x0e, 0x8c, 0xae, 0x35, 0xb7, 0x9c, 0x62, 0xbd, 0x61, 0x96, 0x68, 0xd1, - 0xa2, 0x9b, 0xd4, 0x42, 0xa7, 0x3a, 0x9c, 0x66, 0xac, 0xbb, 0x5e, 0xc5, 0xc2, 0xb0, 0x47, 0xfa, - 0xc0, 0xa3, 0x64, 0xcf, 0x64, 0x19, 0xf6, 0x78, 0xa9, 0x78, 0x90, 0x5b, 0x4e, 0x95, 0xdb, 0x08, - 0xa3, 0x6d, 0xb1, 0xd3, 0x3f, 0xad, 0xc1, 0xf0, 0x62, 0xd3, 0xb2, 0x5a, 0xee, 0xb2, 0x5d, 0x37, - 0x23, 0x1f, 0x81, 0x3d, 0x55, 0xb3, 0x8c, 0xf2, 0x19, 0xb5, 0x72, 0xd1, 0xb5, 0xd7, 0x30, 0x6b, - 0x3b, 0x9e, 0x1a, 0xb5, 0xcc, 0x32, 0x13, 0x6c, 0xb6, 0x56, 0x5e, 0xbd, 0x3f, 0x87, 0x09, 0xeb, - 0x70, 0xd5, 0x57, 0x6a, 0xaf, 0xe9, 0x9f, 0xd4, 0x30, 0x81, 0x0a, 0x0a, 0xbd, 0xcd, 0x50, 0x40, - 0x66, 0x60, 0xe2, 0x0d, 0xd3, 0xdd, 0x28, 0x46, 0x05, 0xe7, 0xeb, 0x08, 0xe2, 0xbd, 0x5d, 0x0e, - 0x8a, 0x52, 0xc6, 0xd4, 0x28, 0x22, 0x09, 0x76, 0xfb, 0x42, 0x38, 0x84, 0xa4, 0x6a, 0x1f, 0xe4, - 0xd2, 0x0a, 0x23, 0x55, 0x74, 0xad, 0xd0, 0x7b, 0x95, 0x41, 0x9b, 0xac, 0x54, 0x2e, 0x51, 0x29, - 0x23, 0xd6, 0xbc, 0xbe, 0x79, 0x28, 0xe8, 0x1b, 0x59, 0x54, 0x12, 0x61, 0xe8, 0x67, 0xe4, 0x6a, - 0x48, 0x8c, 0x16, 0x67, 0x6e, 0xeb, 0xb6, 0xe1, 0x6c, 0xb4, 0x26, 0xcd, 0x54, 0xb5, 0x22, 0xd3, - 0x54, 0x2e, 0x66, 0x9a, 0x3a, 0x0c, 0x83, 0x3c, 0x34, 0x6d, 0x30, 0xc6, 0x93, 0x5d, 0xac, 0xc7, - 0x07, 0x58, 0x19, 0x6f, 0x4b, 0xb7, 0xc4, 0xf2, 0x27, 0x46, 0x0c, 0x54, 0x77, 0x09, 0x7a, 0x03, - 0xeb, 0xf0, 0x53, 0x69, 0xea, 0xae, 0x36, 0xcc, 0x6a, 0x95, 0x96, 0x3d, 0x76, 0x77, 0xbd, 0x40, - 0xc1, 0x78, 0x16, 0x90, 0x81, 0xdc, 0x5a, 0x58, 0x65, 0x9b, 0x12, 0xad, 0x36, 0x77, 0x4c, 0x65, - 0xdd, 0x82, 0xf7, 0xf1, 0x54, 0x82, 0x97, 0xcc, 0x96, 0xcb, 0x0d, 0xea, 0x38, 0x19, 0x5b, 0x7a, - 0x11, 0x46, 0x44, 0x33, 0x06, 0x67, 0x80, 0x6d, 0x0d, 0x1b, 0x01, 0xb6, 0xfa, 0xaf, 0xe5, 0x60, - 0x6f, 0xac, 0xc6, 0xde, 0x4a, 0x8d, 0x79, 0x1b, 0xe7, 0xcd, 0x42, 0xeb, 0xae, 0x76, 0xa1, 0x95, - 0x53, 0x78, 0x49, 0x82, 0x0c, 0xcc, 0x39, 0x75, 0x6a, 0x49, 0xe4, 0x31, 0x58, 0x37, 0x2d, 0xcb, - 0x58, 0xb3, 0xf8, 0x7c, 0xa4, 0xca, 0x40, 0x10, 0xb5, 0xf6, 0x0f, 0xba, 0x7d, 0xfb, 0x07, 0x5e, - 0xf4, 0x68, 0x79, 0x13, 0x9f, 0x32, 0x70, 0x06, 0xf3, 0x1c, 0xc6, 0x5b, 0xad, 0x96, 0xcc, 0xf2, - 0x64, 0x2f, 0x5f, 0xad, 0x96, 0xcc, 0xb2, 0xfe, 0x31, 0xcc, 0xb5, 0xa2, 0xbd, 0xbd, 0xf3, 0x9e, - 0xd5, 0x80, 0xa3, 0x6d, 0xfa, 0x7d, 0xe7, 0xdb, 0xbc, 0xea, 0x1b, 0xc2, 0xc1, 0xb8, 0xad, 0x94, - 0xe4, 0xfc, 0x97, 0xe6, 0x1b, 0x7b, 0x61, 0x7a, 0x99, 0x81, 0xf5, 0xcb, 0xc0, 0xe5, 0x73, 0xa5, - 0xb6, 0xb3, 0x74, 0x9f, 0x98, 0x31, 0xc8, 0x12, 0x0c, 0xaf, 0x51, 0xc7, 0x2d, 0xae, 0x35, 0xb7, - 0x90, 0x4d, 0x4e, 0x9d, 0xcd, 0xa0, 0x47, 0x3a, 0xd7, 0xdc, 0xe2, 0xac, 0xee, 0xc0, 0x08, 0x63, - 0xc5, 0x76, 0xd2, 0x38, 0xaf, 0x2e, 0x75, 0x5e, 0x43, 0x1e, 0xed, 0x0a, 0xb5, 0x2c, 0xc6, 0x4c, - 0x9f, 0xc7, 0x81, 0xba, 0x40, 0x1b, 0xe6, 0x26, 0xcb, 0x24, 0x3a, 0x30, 0xe1, 0x4f, 0xe6, 0xb0, - 0xdb, 0x93, 0xb9, 0xfc, 0x9f, 0x37, 0xe4, 0xef, 0x0b, 0x37, 0x6a, 0xd9, 0x60, 0x27, 0xd2, 0xda, - 0xd4, 0x84, 0xb4, 0x6b, 0xfb, 0x09, 0xa9, 0xfe, 0x79, 0x0d, 0x0e, 0x25, 0xcb, 0xfd, 0x03, 0x90, - 0x35, 0xfe, 0x7a, 0x17, 0x4c, 0xc5, 0xc6, 0xb7, 0x55, 0x7b, 0xde, 0xa8, 0x95, 0xa8, 0xf5, 0xb0, - 0xbe, 0x6a, 0xcf, 0x56, 0xbd, 0x70, 0xb4, 0x73, 0x53, 0xfa, 0x02, 0x0c, 0xac, 0x19, 0x0e, 0x2d, - 0x1a, 0x8c, 0x6f, 0x96, 0xf0, 0x0e, 0x1e, 0x1d, 0x17, 0x87, 0x2c, 0xc2, 0xe0, 0xe3, 0xa6, 0xed, - 0x4a, 0x36, 0xdd, 0xea, 0x6c, 0x06, 0x18, 0x21, 0xf2, 0xb9, 0x0b, 0x7d, 0x8e, 0xdb, 0x30, 0x5c, - 0x5a, 0xe1, 0x6b, 0x88, 0xe1, 0x99, 0x93, 0x69, 0x86, 0xe4, 0x66, 0xb1, 0xd8, 0x81, 0xca, 0x0a, - 0xd2, 0x15, 0x24, 0x07, 0x72, 0x17, 0x46, 0x1a, 0x74, 0x9d, 0x36, 0x68, 0xad, 0x44, 0x71, 0x58, - 0xf4, 0xaa, 0x3b, 0xda, 0xb0, 0xa4, 0xe5, 0xe3, 0xe2, 0x1f, 0x72, 0x70, 0xc6, 0xd7, 0x3d, 0x21, - 0x2f, 0x7b, 0x57, 0x3b, 0x29, 0x6c, 0xde, 0xae, 0x1d, 0x30, 0x6f, 0xf7, 0xbb, 0x61, 0xde, 0x9e, - 0xce, 0xcd, 0xbb, 0x8e, 0x1b, 0x3f, 0xf1, 0xd6, 0xdd, 0xb9, 0x84, 0xae, 0x01, 0xc7, 0x63, 0x26, - 0xf6, 0x8e, 0xda, 0x53, 0x4e, 0xeb, 0xbe, 0x9b, 0x83, 0xe7, 0x70, 0xea, 0x6f, 0x35, 0xf4, 0x7d, - 0x92, 0xdc, 0x5d, 0x66, 0x8b, 0x8f, 0x8a, 0x59, 0xcb, 0xe2, 0x55, 0x48, 0x12, 0xc8, 0x0c, 0xbb, - 0x3b, 0xc9, 0x0c, 0x0f, 0x8a, 0xcc, 0xd0, 0xf3, 0x9c, 0xbe, 0xb9, 0xfe, 0x77, 0xde, 0x3c, 0xc8, - 0x0b, 0xe2, 0x93, 0xc4, 0xde, 0x84, 0x24, 0x71, 0x77, 0x2b, 0x49, 0xdc, 0xc4, 0xbd, 0xbf, 0x24, - 0x3f, 0xc2, 0x89, 0xe0, 0x7e, 0x28, 0x6d, 0x3b, 0xaf, 0x90, 0xb6, 0xc5, 0xf5, 0x9d, 0x4c, 0xde, - 0x7e, 0x1c, 0x3e, 0xa0, 0xe4, 0x57, 0xef, 0x56, 0xfb, 0x3f, 0xa7, 0x45, 0x12, 0xa0, 0xf7, 0x70, - 0x19, 0xf8, 0x24, 0x92, 0x47, 0x25, 0x2c, 0x06, 0x77, 0xdc, 0x0e, 0x3f, 0x2b, 0x0e, 0x40, 0x7c, - 0x29, 0xdc, 0x7b, 0xb6, 0x9b, 0xf1, 0x49, 0x0d, 0xc0, 0x97, 0x30, 0xbc, 0x87, 0xe3, 0x5c, 0xff, - 0x82, 0x06, 0xe3, 0x0f, 0x68, 0xa3, 0x4e, 0xdd, 0xa6, 0x61, 0x71, 0x8b, 0xac, 0xb8, 0x86, 0x4b, - 0xc9, 0x03, 0x18, 0x10, 0x6a, 0xd7, 0xd6, 0x6d, 0xdc, 0x82, 0x48, 0x3d, 0xca, 0x0e, 0xb1, 0x59, - 0xaa, 0xad, 0xdb, 0x05, 0x34, 0x9d, 0xf7, 0x9b, 0x3c, 0x84, 0xc1, 0xf5, 0x66, 0xad, 0x6c, 0xd6, - 0x2a, 0x9c, 0x25, 0xdf, 0xa6, 0x9a, 0xc9, 0xc0, 0x72, 0x91, 0x93, 0x17, 0x06, 0x90, 0x8f, 0xc7, - 0x56, 0xff, 0x6c, 0x17, 0x8c, 0x2f, 0x36, 0x2d, 0x2b, 0xdc, 0xb1, 0x64, 0x21, 0xb4, 0x7f, 0xf2, - 0x72, 0xfa, 0x1e, 0x78, 0x90, 0x5a, 0xee, 0xb0, 0x7d, 0x18, 0x86, 0xeb, 0x42, 0x0a, 0xbf, 0xdc, - 0x27, 0x33, 0xc8, 0xcd, 0x2c, 0x7a, 0x7b, 0x57, 0x61, 0x48, 0x72, 0x62, 0x06, 0xf9, 0x90, 0x67, - 0x10, 0xb7, 0xd9, 0xa0, 0x0e, 0x67, 0xdc, 0xc5, 0x18, 0x9f, 0x4e, 0x63, 0x7c, 0xf3, 0x49, 0xdd, - 0x6c, 0x6c, 0x2d, 0x72, 0xaa, 0x96, 0x9d, 0x6f, 0xef, 0xf2, 0x6c, 0xc2, 0x0a, 0x19, 0xe7, 0x39, - 0xee, 0xb3, 0x38, 0xfd, 0x66, 0x08, 0xc1, 0xcc, 0xb1, 0xf9, 0xea, 0x21, 0x76, 0x6b, 0xb1, 0x67, - 0x67, 0xb6, 0x16, 0xe7, 0x7a, 0xa1, 0xdb, 0x53, 0x59, 0xb7, 0x70, 0x6d, 0x1b, 0x33, 0x2a, 0x31, - 0x12, 0xbc, 0x12, 0xde, 0xd9, 0x3b, 0xd9, 0x6e, 0x1b, 0x2c, 0xd2, 0x95, 0x72, 0x7f, 0xef, 0x32, - 0xee, 0x0b, 0x45, 0x6a, 0xa8, 0x2c, 0x02, 0xcd, 0x84, 0x00, 0x22, 0x25, 0xbd, 0x1d, 0xf2, 0xb7, - 0xec, 0x82, 0x8a, 0x5d, 0xbb, 0x39, 0x9c, 0xac, 0xc2, 0x15, 0x70, 0xf6, 0x50, 0x12, 0x97, 0x46, - 0x17, 0xbe, 0x41, 0x1e, 0xad, 0xe3, 0x41, 0x91, 0xa5, 0x88, 0x53, 0x70, 0xfe, 0xa8, 0x96, 0x37, - 0xdd, 0xc2, 0xd5, 0x55, 0xeb, 0x30, 0x8a, 0xcd, 0xb0, 0xec, 0x8a, 0x4f, 0x96, 0xb3, 0x2e, 0x7d, - 0x31, 0x72, 0x41, 0xe2, 0x81, 0xed, 0x98, 0xec, 0x4e, 0x54, 0x26, 0x3e, 0x1f, 0x83, 0xf7, 0x27, - 0xf0, 0x59, 0xaa, 0x05, 0x7b, 0x7b, 0xfb, 0x17, 0x8c, 0x1c, 0x98, 0x0e, 0xb5, 0x75, 0x73, 0x7d, - 0x9d, 0xf7, 0xf8, 0xbb, 0xd7, 0xe8, 0x2b, 0xe8, 0x1c, 0xa1, 0x0b, 0x3c, 0xf2, 0xf2, 0x4e, 0x16, - 0x63, 0xd5, 0x22, 0xbd, 0xe7, 0x33, 0xba, 0x1c, 0x80, 0x3d, 0xde, 0x4c, 0x48, 0x71, 0xf8, 0x4d, - 0xa9, 0x45, 0x51, 0xc1, 0x07, 0x8f, 0x73, 0x39, 0x0b, 0xfd, 0x11, 0xbc, 0xd8, 0xb6, 0x73, 0xe4, - 0x4e, 0x8a, 0x6c, 0xd6, 0x1b, 0x4c, 0xef, 0x4b, 0x0d, 0xb7, 0xfe, 0xc6, 0x34, 0xd1, 0xd8, 0xc7, - 0x73, 0xb0, 0x27, 0xd2, 0x1f, 0x64, 0x1f, 0xec, 0x36, 0x9d, 0xa2, 0x65, 0xd7, 0x2a, 0x8c, 0x73, - 0x5f, 0xa1, 0xd7, 0x74, 0xee, 0xda, 0xb5, 0xca, 0xf6, 0x53, 0xe6, 0x05, 0x18, 0xa0, 0x35, 0xb7, - 0xb1, 0x15, 0xd9, 0x6a, 0x69, 0xbf, 0x66, 0x66, 0x74, 0x3c, 0xec, 0xde, 0x83, 0x51, 0x2a, 0x84, - 0x2e, 0x62, 0x0a, 0x9e, 0x21, 0x80, 0x8f, 0x48, 0xe2, 0x65, 0x46, 0xab, 0x3f, 0x83, 0x93, 0xea, - 0x3e, 0x2a, 0x37, 0x2f, 0x03, 0xb6, 0x3f, 0x91, 0x3a, 0x23, 0x85, 0xb9, 0x05, 0x3b, 0xe1, 0x1a, - 0x0e, 0xeb, 0xb8, 0xe4, 0x40, 0x25, 0x8c, 0x55, 0xd1, 0x43, 0x63, 0xe9, 0xa5, 0xb8, 0xdd, 0xdb, - 0xc8, 0x51, 0xd0, 0x43, 0xf9, 0x7c, 0x24, 0x22, 0x6f, 0xc2, 0x3c, 0xab, 0x24, 0x72, 0x13, 0x23, - 0x6f, 0x22, 0x0f, 0x14, 0x7b, 0x39, 0x20, 0x76, 0x27, 0xd3, 0x7e, 0x40, 0xf4, 0x59, 0x5c, 0x29, - 0x27, 0xe4, 0x4c, 0x6a, 0x92, 0x1f, 0x49, 0x65, 0x21, 0x6f, 0x4d, 0x06, 0xdc, 0xa3, 0x83, 0x0c, - 0x2e, 0x18, 0x15, 0xe4, 0x1a, 0x25, 0x31, 0xa4, 0x61, 0xc3, 0xa5, 0xc0, 0x15, 0x47, 0x2f, 0x1a, - 0xcd, 0x76, 0x78, 0xc5, 0xb1, 0x75, 0x6f, 0x52, 0xdc, 0x1a, 0x13, 0x8c, 0xf5, 0x8b, 0x78, 0x5d, - 0x28, 0x7e, 0x46, 0x43, 0x49, 0xc6, 0xa1, 0x87, 0x5f, 0x6e, 0xd5, 0xd8, 0xe5, 0x56, 0xfe, 0xa0, - 0xef, 0xc7, 0xfb, 0x04, 0xcb, 0x76, 0xb9, 0x69, 0x51, 0x96, 0xf5, 0x89, 0x3b, 0x6f, 0xaf, 0xe3, - 0xfd, 0x87, 0xc0, 0x2b, 0x79, 0xd7, 0x20, 0x60, 0xcf, 0xd4, 0xeb, 0x26, 0xb7, 0xf8, 0x8d, 0x5e, - 0xce, 0x00, 0xed, 0xb7, 0x0f, 0xf6, 0xf2, 0x6e, 0x0b, 0x4d, 0x98, 0x7a, 0x19, 0xaf, 0x45, 0xbc, - 0xbb, 0x41, 0xfd, 0xb1, 0xff, 0xfc, 0xa5, 0x40, 0xdf, 0x30, 0x1a, 0xe5, 0x07, 0xb6, 0x59, 0x73, - 0x95, 0xee, 0xad, 0x9d, 0x81, 0x89, 0x3a, 0xe5, 0x8b, 0x82, 0xba, 0x6d, 0x5b, 0x45, 0xd7, 0xac, - 0x52, 0xc7, 0x35, 0xaa, 0x75, 0x16, 0x83, 0xbb, 0x0a, 0xe3, 0xf8, 0xf6, 0x81, 0x6d, 0x5b, 0xab, - 0xe2, 0x9d, 0xfe, 0xd3, 0xe2, 0x58, 0x33, 0xa6, 0x4d, 0xd4, 0x70, 0x0d, 0x9e, 0x13, 0x93, 0x1f, - 0xbb, 0x9b, 0x5c, 0x6c, 0xb0, 0x5a, 0xc5, 0x3a, 0xab, 0xc6, 0xe5, 0x50, 0x0b, 0xa9, 0x93, 0x7e, - 0x37, 0xf0, 0xb7, 0xa5, 0x1f, 0xc6, 0xe0, 0xe6, 0x7b, 0x33, 0x6f, 0x54, 0xeb, 0x86, 0x59, 0xa9, - 0x89, 0x2e, 0xf8, 0x5e, 0x37, 0x06, 0xb0, 0xd8, 0x3a, 0x28, 0xeb, 0x26, 0x3c, 0xef, 0xc9, 0xe8, - 0x19, 0x01, 0xa5, 0x2c, 0x61, 0x15, 0xff, 0xe2, 0xeb, 0x6c, 0xfa, 0x1a, 0xd8, 0xe0, 0x63, 0xd4, - 0xdf, 0x00, 0x0b, 0x37, 0xfb, 0xdd, 0xa4, 0x57, 0xe4, 0x27, 0x34, 0x38, 0x1a, 0x6a, 0x98, 0x75, - 0x82, 0x6c, 0xdd, 0x29, 0x6d, 0x50, 0xcf, 0x5f, 0x71, 0xfb, 0x7a, 0x2a, 0x7d, 0x5b, 0x50, 0x68, - 0xc5, 0x2d, 0x64, 0x5b, 0x85, 0xc3, 0x81, 0xa6, 0xbd, 0x22, 0x51, 0x69, 0x05, 0x19, 0x93, 0x1f, - 0x81, 0xfd, 0xae, 0xed, 0x1a, 0x56, 0x6c, 0x27, 0x65, 0x98, 0x42, 0x27, 0x18, 0x97, 0x48, 0x17, - 0x91, 0x5f, 0xd0, 0xe0, 0x84, 0x70, 0x30, 0x35, 0x55, 0xbb, 0x3b, 0x52, 0xf5, 0x18, 0x36, 0xb2, - 0xda, 0x56, 0xe3, 0x2a, 0x1c, 0x96, 0x02, 0x25, 0x6a, 0xde, 0xa3, 0xee, 0x9e, 0x2f, 0x88, 0x96, - 0x63, 0x0d, 0xa0, 0x5f, 0x46, 0x1f, 0x5d, 0x72, 0xee, 0xd7, 0x5d, 0x5a, 0xbe, 0xdf, 0x74, 0xef, - 0xaf, 0xf3, 0x0a, 0x4e, 0xfb, 0x8b, 0xb0, 0x0b, 0xe8, 0xbc, 0xb1, 0xc4, 0xe8, 0xbc, 0x87, 0x60, - 0xd0, 0x74, 0x8a, 0xb6, 0xf7, 0xbe, 0x68, 0x37, 0x5d, 0xcc, 0xaa, 0xc0, 0x94, 0x24, 0xfa, 0x8b, - 0xb8, 0xeb, 0x13, 0xe1, 0x81, 0x9b, 0x62, 0x32, 0x5e, 0x2d, 0x60, 0xee, 0x9e, 0x52, 0x11, 0x1b, - 0x4d, 0x09, 0x29, 0xfa, 0x35, 0x9c, 0x08, 0x17, 0x29, 0x5d, 0x30, 0x1d, 0xbe, 0xed, 0x86, 0x19, - 0xaf, 0x6f, 0x0a, 0x4f, 0x56, 0xfa, 0xbb, 0x1a, 0x4e, 0x83, 0x49, 0x0c, 0x50, 0x86, 0x17, 0x00, - 0x5c, 0x93, 0x36, 0xe4, 0x71, 0x91, 0x76, 0xac, 0xbb, 0xd0, 0xef, 0x95, 0xf0, 0x5d, 0x9d, 0x02, - 0x0c, 0xca, 0xec, 0xbb, 0xb5, 0x6d, 0x90, 0x9a, 0x9d, 0xf8, 0x1a, 0x5c, 0x35, 0x69, 0x83, 0xb5, - 0x36, 0x60, 0xb4, 0x9a, 0x26, 0xf7, 0x61, 0x40, 0x06, 0x35, 0xd7, 0xc2, 0x0d, 0x83, 0xa9, 0x0c, - 0x2c, 0x57, 0x57, 0xef, 0x16, 0x40, 0xc4, 0x33, 0xd7, 0x92, 0x11, 0xcc, 0x57, 0x4d, 0x38, 0xaa, - 0xe8, 0x94, 0x4f, 0x88, 0x03, 0xb4, 0xd8, 0x3a, 0x72, 0x66, 0xde, 0xbb, 0x4e, 0x69, 0xb1, 0x8c, - 0xef, 0x5b, 0xa3, 0x49, 0xcb, 0xa4, 0xb5, 0xe4, 0x3b, 0xb6, 0x1e, 0x2d, 0xd4, 0x6f, 0xe0, 0x44, - 0x83, 0xf7, 0xbd, 0x97, 0x4d, 0xa7, 0x6a, 0xb8, 0x25, 0xdf, 0x1e, 0xe6, 0x41, 0x18, 0x28, 0x37, - 0x1d, 0xb7, 0xb8, 0x6e, 0x94, 0x5c, 0x9b, 0x43, 0x53, 0xba, 0x0a, 0xe0, 0x15, 0x2d, 0xb2, 0x12, - 0xfd, 0xb7, 0xbb, 0x60, 0x24, 0x44, 0x4d, 0x74, 0x08, 0xac, 0x89, 0xd4, 0x2f, 0x62, 0x92, 0x59, - 0xe8, 0x37, 0x36, 0x0d, 0x33, 0xf3, 0x0d, 0x88, 0x16, 0x15, 0xb9, 0x08, 0x3d, 0x2c, 0x08, 0x64, - 0x49, 0xf1, 0x39, 0x05, 0x59, 0x84, 0x41, 0xbc, 0xe9, 0x5e, 0xdc, 0xb0, 0xad, 0xb2, 0xef, 0x90, - 0xa5, 0xfd, 0xe9, 0x0f, 0x12, 0xde, 0xb6, 0xad, 0x32, 0x79, 0x05, 0x86, 0xe9, 0x93, 0x3a, 0x2d, - 0x79, 0xe3, 0x97, 0xcb, 0xd2, 0xab, 0xce, 0x69, 0x48, 0x90, 0xb2, 0xe8, 0x43, 0xe6, 0x01, 0xca, - 0xe6, 0x3a, 0x1e, 0xe0, 0xf0, 0xed, 0x77, 0xc5, 0x15, 0x50, 0x8b, 0x4c, 0xff, 0x31, 0x9c, 0xdb, - 0x63, 0xba, 0x19, 0xbd, 0xed, 0x75, 0x20, 0x42, 0xf5, 0xaa, 0x7c, 0x8b, 0xa9, 0xcc, 0x07, 0x14, - 0x90, 0x02, 0x82, 0x65, 0x61, 0xcf, 0x5a, 0xb8, 0x0d, 0xfd, 0x28, 0x0e, 0x7e, 0xac, 0xea, 0x25, - 0x8a, 0x73, 0x2d, 0x6b, 0xc9, 0x50, 0xf5, 0x2b, 0x39, 0xd8, 0xeb, 0xab, 0xc2, 0x17, 0x5b, 0xcc, - 0x9e, 0xff, 0xcf, 0xfd, 0x49, 0xff, 0x65, 0x91, 0xcd, 0x27, 0x5a, 0x10, 0x7b, 0xb1, 0x06, 0x79, - 0xd1, 0x20, 0xdb, 0x41, 0xf7, 0xb7, 0xae, 0x74, 0x6d, 0x26, 0xd6, 0xfe, 0x85, 0x7d, 0x6b, 0xf1, - 0xed, 0xca, 0x69, 0x28, 0x14, 0x12, 0xbd, 0x54, 0xda, 0x74, 0x5c, 0xb3, 0x24, 0xfb, 0xf6, 0x22, - 0x0c, 0x05, 0x5e, 0x10, 0x02, 0xdd, 0x5e, 0x5c, 0xc7, 0x18, 0xcf, 0x7e, 0x7b, 0x5d, 0xd8, 0x82, - 0x06, 0x75, 0x17, 0xf8, 0x83, 0xee, 0xe0, 0x0c, 0x96, 0xd2, 0x86, 0x5c, 0xb4, 0x82, 0x23, 0x4b, - 0x55, 0x6e, 0xc9, 0x07, 0xf8, 0x14, 0x7c, 0xc4, 0x5e, 0xfe, 0xbf, 0x6c, 0xba, 0xf6, 0xab, 0x46, - 0xd3, 0x62, 0xd3, 0x84, 0x54, 0xe4, 0x8f, 0x35, 0x98, 0x08, 0xbf, 0xc1, 0xe6, 0x5f, 0x82, 0xd1, - 0xaa, 0xe1, 0xb8, 0xb4, 0x21, 0xce, 0x28, 0xa9, 0x98, 0x48, 0x47, 0x78, 0xf9, 0xac, 0x28, 0x26, - 0xa7, 0x60, 0xbc, 0x2c, 0x97, 0x00, 0xbe, 0xea, 0xfc, 0x28, 0x64, 0xac, 0xf5, 0xae, 0x45, 0x72, - 0x14, 0x86, 0x9d, 0xba, 0xed, 0xfa, 0x2a, 0xf3, 0xc3, 0xa0, 0x21, 0xaf, 0x34, 0x50, 0xad, 0xf4, - 0xc6, 0xcc, 0x49, 0x5f, 0xb5, 0x6e, 0x5e, 0xcd, 0x2b, 0x95, 0xd5, 0xf4, 0x05, 0x8c, 0xfb, 0xb8, - 0xf0, 0x5d, 0x58, 0x6c, 0xd8, 0x55, 0xa6, 0x92, 0x6f, 0xaf, 0x6b, 0xd3, 0x7b, 0x2e, 0x06, 0x77, - 0x32, 0x07, 0x59, 0xa1, 0x38, 0x6d, 0x15, 0xd7, 0xa8, 0x62, 0xb8, 0xa0, 0x4d, 0x52, 0xd7, 0xc6, - 0x62, 0x79, 0x7d, 0xdb, 0x74, 0x5c, 0xbb, 0x61, 0x96, 0x64, 0xae, 0x55, 0xb2, 0x7d, 0xa9, 0x54, - 0x2a, 0x0b, 0x17, 0x43, 0x4b, 0x12, 0x0b, 0xb9, 0x2f, 0x30, 0x24, 0x52, 0x42, 0xf6, 0x42, 0x05, - 0x85, 0x10, 0x60, 0x34, 0xe8, 0xfa, 0x9e, 0xf4, 0x3f, 0xd0, 0x60, 0x8c, 0xbd, 0xe6, 0xcd, 0x7a, - 0xc9, 0x95, 0xb7, 0x14, 0x24, 0x2f, 0x03, 0xe1, 0xcd, 0x54, 0x1a, 0x76, 0xb3, 0xee, 0xa5, 0xa3, - 0x0e, 0x2d, 0xa1, 0x8b, 0x8f, 0xb2, 0x37, 0xb7, 0xf0, 0xc5, 0x0a, 0x2d, 0x91, 0x7d, 0xb0, 0xbb, - 0x6a, 0x3c, 0x29, 0x1a, 0x15, 0x8a, 0x0e, 0xdf, 0x5b, 0x35, 0x9e, 0xcc, 0x56, 0x28, 0x99, 0x82, - 0x31, 0xb3, 0x56, 0xb2, 0x9a, 0x9e, 0xbc, 0xc6, 0x1b, 0xc5, 0x0d, 0xde, 0x08, 0x5e, 0xe9, 0xdb, - 0x83, 0xaf, 0x0a, 0xc6, 0x1b, 0xd8, 0xba, 0xe7, 0x78, 0xa2, 0xbe, 0x5c, 0xcb, 0xb3, 0x53, 0xde, - 0xc2, 0x08, 0x96, 0x8b, 0x35, 0xba, 0xfe, 0x9b, 0x1a, 0xee, 0xd7, 0x4b, 0x8c, 0x85, 0xe1, 0x9a, - 0x96, 0xe9, 0x6e, 0x29, 0x9d, 0x59, 0x96, 0x60, 0x2f, 0xd7, 0x0f, 0x45, 0xf2, 0x52, 0x54, 0x4f, - 0x71, 0x95, 0x44, 0x2c, 0xc6, 0x5e, 0x85, 0x31, 0x37, 0x5a, 0xa8, 0x7f, 0x3c, 0x17, 0xf0, 0x4d, - 0xbf, 0x88, 0x12, 0x8b, 0x01, 0x9b, 0xb2, 0x14, 0x4f, 0xf8, 0x0e, 0xb6, 0x9d, 0x0e, 0x5b, 0x24, - 0xe4, 0x35, 0x18, 0x15, 0x1a, 0x48, 0x83, 0xe5, 0x22, 0x07, 0x5a, 0x88, 0xe0, 0x95, 0x87, 0x30, - 0x58, 0xd3, 0x17, 0x78, 0x46, 0x90, 0x8b, 0x78, 0x45, 0x6e, 0xc3, 0x80, 0xbf, 0xc7, 0xba, 0x98, - 0x97, 0xbd, 0xa8, 0xe8, 0x65, 0x05, 0x68, 0xc8, 0x3e, 0x95, 0x40, 0xa2, 0x39, 0xb3, 0x66, 0x08, - 0x53, 0xb4, 0x3b, 0x57, 0xd5, 0x2b, 0x78, 0xd9, 0x3a, 0x44, 0x24, 0xc3, 0x63, 0xe8, 0xd8, 0x27, - 0xb5, 0xbf, 0x38, 0x0f, 0xec, 0x94, 0xf0, 0xa9, 0xcf, 0x63, 0x38, 0x11, 0x7b, 0xf4, 0x3f, 0x6f, - 0xd7, 0xca, 0x26, 0xbf, 0x25, 0xb6, 0xd3, 0xc8, 0xe3, 0xdf, 0xe8, 0x82, 0xc3, 0x91, 0x53, 0xe9, - 0x70, 0x7b, 0x3f, 0xb8, 0xf7, 0x3b, 0x6e, 0xc1, 0xa0, 0xdb, 0x30, 0x2b, 0x15, 0xda, 0x78, 0x90, - 0xf5, 0x80, 0x31, 0x40, 0xd8, 0xfe, 0x9e, 0xc7, 0x51, 0xd8, 0x6d, 0x3a, 0xec, 0x38, 0x9f, 0x65, - 0xa5, 0x7d, 0x73, 0x03, 0xef, 0xbc, 0x79, 0x50, 0x14, 0x15, 0xc4, 0x8f, 0xd0, 0x75, 0x90, 0xdd, - 0x09, 0xd7, 0x41, 0xfa, 0x5a, 0xd7, 0x41, 0x3e, 0xa1, 0x05, 0x2e, 0xd5, 0xa5, 0x3a, 0x85, 0x04, - 0x7d, 0x06, 0xaf, 0x24, 0x5c, 0xcd, 0x74, 0x25, 0x21, 0xcc, 0x57, 0x5e, 0x4c, 0x58, 0x46, 0x41, - 0xf0, 0x74, 0xce, 0xb5, 0xab, 0x66, 0xe9, 0xe6, 0x13, 0x5a, 0x6a, 0x7a, 0x95, 0x17, 0x29, 0x5d, - 0x6e, 0x5a, 0xae, 0x59, 0xb7, 0x4c, 0xda, 0x50, 0x9a, 0x63, 0x36, 0xf1, 0x48, 0x4a, 0x85, 0x1d, - 0x2a, 0x36, 0x0f, 0x50, 0x95, 0xa5, 0x59, 0x7c, 0xd1, 0x47, 0xa6, 0x5f, 0x10, 0xd8, 0x55, 0x66, - 0x90, 0x15, 0xd7, 0x78, 0x44, 0x6f, 0x35, 0x8c, 0xd6, 0x6d, 0xb7, 0x49, 0xd8, 0x5d, 0xf1, 0x9e, - 0x29, 0x15, 0xcb, 0x6d, 0x7c, 0xd4, 0x3f, 0x23, 0xa1, 0xa9, 0x11, 0x52, 0x14, 0xf0, 0x2a, 0xf4, - 0xb0, 0xca, 0xb8, 0x98, 0x4c, 0x0d, 0x51, 0x9c, 0x09, 0xa7, 0xe7, 0x54, 0x64, 0x05, 0x5a, 0x87, - 0x22, 0x45, 0xce, 0x48, 0x01, 0x21, 0x23, 0xcf, 0x35, 0x38, 0xaf, 0x61, 0x1a, 0x78, 0xd6, 0x57, - 0x31, 0x9b, 0x60, 0x4f, 0xb3, 0x4d, 0x77, 0xc3, 0x6e, 0x98, 0x3f, 0xca, 0xae, 0xc4, 0x45, 0x34, - 0x6e, 0x04, 0x35, 0x6e, 0xf8, 0x6d, 0x91, 0x0b, 0xda, 0xe2, 0x43, 0xb8, 0x1c, 0x8f, 0xe3, 0x8a, - 0xc6, 0x38, 0x0b, 0xbd, 0x78, 0xdd, 0x8f, 0xf7, 0xd4, 0x0b, 0xd8, 0x53, 0x7b, 0xa3, 0x3d, 0xb5, - 0x54, 0x73, 0x0b, 0x58, 0x59, 0x6e, 0x03, 0x45, 0x39, 0x3b, 0x6d, 0x05, 0xf6, 0x52, 0x88, 0x43, - 0xc9, 0xd4, 0xf2, 0x0e, 0x2d, 0xe1, 0xfb, 0x59, 0x8c, 0xaa, 0x98, 0x45, 0xc8, 0x51, 0x46, 0xc8, - 0x99, 0x8b, 0x9b, 0xa3, 0xbd, 0x8c, 0x8d, 0xa3, 0xb2, 0xf3, 0x18, 0x63, 0x2d, 0xa4, 0x3e, 0x7e, - 0x06, 0xfa, 0x25, 0x0e, 0x8e, 0x8c, 0xc3, 0xa8, 0xf7, 0xb7, 0xf8, 0xb0, 0xe6, 0xd4, 0x69, 0xc9, - 0x5c, 0x37, 0x69, 0x79, 0x74, 0x17, 0xd9, 0x0d, 0x5d, 0x73, 0xcd, 0xad, 0x51, 0x8d, 0xf4, 0x41, - 0xf7, 0x0a, 0xb5, 0xac, 0xd1, 0xdc, 0xf1, 0x57, 0x61, 0x3c, 0xee, 0x92, 0xa3, 0xc7, 0xc0, 0x47, - 0xcb, 0x18, 0x8f, 0xee, 0x22, 0x63, 0x30, 0xe2, 0xe5, 0x92, 0xaf, 0xd9, 0x0d, 0xc7, 0x5d, 0xb5, - 0xe7, 0xa8, 0xe3, 0x8e, 0x6a, 0xa2, 0xd0, 0x7b, 0x5a, 0xb5, 0xd9, 0xab, 0xd1, 0xdc, 0xcc, 0x9f, - 0x53, 0xe8, 0x61, 0x76, 0x24, 0x9f, 0xd5, 0x60, 0x2c, 0xe6, 0x3b, 0x08, 0xe4, 0x5c, 0x5b, 0xc4, - 0x7f, 0xec, 0x67, 0x15, 0xf2, 0xe7, 0x33, 0xd3, 0xf1, 0x5e, 0xd3, 0x67, 0x7e, 0xea, 0x6f, 0xbe, - 0xfd, 0xa9, 0xdc, 0xcb, 0xe4, 0xf8, 0xb4, 0xc2, 0x17, 0x47, 0x50, 0xc8, 0xbf, 0xd0, 0x80, 0x44, - 0x3f, 0x3c, 0x40, 0x2e, 0x75, 0xf4, 0xb5, 0x02, 0x2e, 0xff, 0xe5, 0x6d, 0x7c, 0xe9, 0x40, 0xbf, - 0xce, 0x74, 0xb8, 0x48, 0xce, 0xab, 0xe8, 0x30, 0xed, 0x44, 0x25, 0xff, 0x8a, 0x06, 0x7b, 0x22, - 0xfc, 0xc9, 0xc5, 0xec, 0x32, 0x09, 0x75, 0x2e, 0x75, 0x42, 0x8a, 0xda, 0x5c, 0x63, 0xda, 0x5c, - 0x20, 0xe7, 0x3a, 0xd3, 0x86, 0xfc, 0x89, 0x06, 0xa3, 0xe1, 0x2f, 0x2b, 0x90, 0x0b, 0xca, 0xfe, - 0x11, 0xfa, 0x58, 0x43, 0xfe, 0x62, 0x07, 0x94, 0xa8, 0xc9, 0x55, 0xa6, 0xc9, 0x79, 0x72, 0x56, - 0x49, 0x13, 0x1a, 0x96, 0xf9, 0xcf, 0x34, 0x18, 0x09, 0x7d, 0xae, 0x80, 0xb4, 0xf7, 0xf3, 0xf8, - 0x8f, 0x3d, 0xe4, 0x2f, 0x64, 0x27, 0x44, 0x2d, 0x16, 0x99, 0x16, 0x37, 0xc8, 0x35, 0x25, 0x2d, - 0x42, 0x1f, 0x75, 0x98, 0x7e, 0x8a, 0xbd, 0xf3, 0x8c, 0xf5, 0x4b, 0xf8, 0xeb, 0x0b, 0x24, 0xb3, - 0x58, 0x19, 0xfa, 0x25, 0xe9, 0x53, 0x0f, 0x19, 0xfb, 0x25, 0xfc, 0x99, 0x0a, 0xf2, 0x2f, 0x1a, - 0xec, 0x8d, 0x85, 0xd0, 0x93, 0xab, 0xea, 0x32, 0xc5, 0x7c, 0x83, 0x21, 0x7f, 0xad, 0x53, 0x72, - 0xd4, 0xeb, 0x1e, 0xd3, 0xeb, 0x36, 0x59, 0xcc, 0xa6, 0x97, 0x9f, 0xd7, 0xf4, 0x53, 0x99, 0x5a, - 0x3d, 0x23, 0x6f, 0x6a, 0x30, 0x11, 0xff, 0xad, 0x00, 0xd2, 0xa1, 0xa8, 0xb2, 0xf7, 0xae, 0x77, - 0x4c, 0x8f, 0xba, 0xce, 0x33, 0x5d, 0xaf, 0x92, 0xcb, 0x9d, 0xeb, 0xea, 0x90, 0x2f, 0x68, 0x30, - 0xe8, 0xff, 0xf8, 0x02, 0x39, 0xd3, 0x56, 0xac, 0x98, 0x8f, 0x52, 0xe4, 0xcf, 0x66, 0xa4, 0x42, - 0x15, 0xe6, 0x98, 0x0a, 0x57, 0xc8, 0x25, 0x25, 0x15, 0x02, 0x9f, 0x95, 0x98, 0x7e, 0xca, 0x1e, - 0x9f, 0x91, 0xcf, 0x69, 0x30, 0x14, 0xf8, 0x7c, 0x04, 0xc9, 0x26, 0x8c, 0xec, 0x90, 0x73, 0x59, - 0xc9, 0x50, 0x89, 0xcb, 0x4c, 0x89, 0xb3, 0xe4, 0x74, 0x76, 0x25, 0x1c, 0xf2, 0x3b, 0x1a, 0x0c, - 0xf8, 0xd0, 0xcc, 0xe4, 0x74, 0xfb, 0x69, 0x23, 0x82, 0xc2, 0xce, 0x9f, 0xc9, 0x46, 0x84, 0x72, - 0x9f, 0x64, 0x72, 0x1f, 0x27, 0xc7, 0xd2, 0xe4, 0x76, 0xea, 0xb6, 0x3b, 0x8d, 0xcb, 0x68, 0xf2, - 0x19, 0x0d, 0xc0, 0x87, 0x5c, 0x9f, 0xc9, 0xd0, 0xac, 0x10, 0xf5, 0x74, 0x26, 0x1a, 0x94, 0xf4, - 0x0a, 0x93, 0xf4, 0x1c, 0x39, 0xa3, 0x2a, 0x69, 0x60, 0x0c, 0x7f, 0x4e, 0x83, 0x91, 0x10, 0x68, - 0x5c, 0x61, 0x12, 0x89, 0x07, 0xbc, 0x2b, 0x4c, 0x22, 0x09, 0xf8, 0x74, 0xfd, 0x2c, 0x53, 0x62, - 0x9a, 0x9c, 0x68, 0xab, 0xc4, 0x7a, 0xd3, 0xb2, 0x8a, 0xc2, 0xe6, 0x5f, 0x8a, 0x7e, 0x31, 0xe0, - 0x5c, 0x46, 0x19, 0xd4, 0x33, 0xc4, 0x78, 0x18, 0xba, 0x7e, 0x83, 0x89, 0x7e, 0x89, 0x5c, 0xc8, - 0x22, 0x7a, 0xa0, 0x0f, 0x3e, 0xaf, 0xc1, 0x50, 0xe0, 0x6b, 0x0d, 0x0a, 0x83, 0x34, 0xee, 0xb3, - 0x19, 0x0a, 0x83, 0x34, 0xf6, 0xa3, 0x10, 0x6a, 0x29, 0x15, 0x53, 0xc1, 0x16, 0xb4, 0x01, 0x05, - 0xbe, 0xae, 0xc1, 0x68, 0x18, 0x7d, 0xa7, 0x30, 0x75, 0x27, 0xc0, 0xcf, 0x15, 0xa6, 0xee, 0x24, - 0x28, 0xb3, 0x7e, 0x87, 0x69, 0x72, 0x93, 0xcc, 0xab, 0x69, 0x12, 0x18, 0x0b, 0xd3, 0x4f, 0x03, - 0xbb, 0x5a, 0xcf, 0xc8, 0x7f, 0x68, 0x30, 0x99, 0x04, 0x64, 0x26, 0x37, 0xda, 0xcf, 0x50, 0xe9, - 0xd8, 0xf7, 0xfc, 0xec, 0x36, 0x38, 0xa0, 0xba, 0x0f, 0x99, 0xba, 0xf7, 0xc9, 0x72, 0x27, 0xea, - 0xa2, 0xaa, 0x32, 0x05, 0x13, 0xa7, 0x03, 0xcf, 0xc8, 0xb7, 0xbd, 0x05, 0x4c, 0xe4, 0x4b, 0x04, - 0x2a, 0x0b, 0x98, 0xa4, 0xaf, 0x28, 0xa8, 0x2c, 0x60, 0x12, 0x3f, 0x7d, 0x90, 0x59, 0xcd, 0xe2, - 0xda, 0x16, 0x82, 0x6c, 0x52, 0xfb, 0xf7, 0x4b, 0x1a, 0x8c, 0x86, 0x3f, 0x7d, 0xa8, 0xe0, 0xb6, - 0x09, 0x1f, 0x64, 0xcc, 0x5f, 0xec, 0x80, 0x12, 0x15, 0xbc, 0xc4, 0x14, 0x3c, 0x43, 0x66, 0xd2, - 0x14, 0x14, 0x5d, 0x18, 0xd2, 0xe2, 0x3b, 0x1a, 0xec, 0x6f, 0x8d, 0x87, 0xd5, 0x86, 0x51, 0x73, - 0x4c, 0x5a, 0x7b, 0x4f, 0x47, 0xa1, 0x7a, 0x7f, 0xb9, 0x42, 0xdc, 0xa2, 0xc2, 0x78, 0xfc, 0x5b, - 0x74, 0xcb, 0x20, 0x82, 0x42, 0xd1, 0x2d, 0x63, 0x61, 0xed, 0x8a, 0x6e, 0x19, 0x0f, 0x66, 0x57, - 0x5b, 0xf9, 0xf0, 0x99, 0x37, 0x0c, 0x14, 0x09, 0x84, 0xcf, 0x7f, 0xd3, 0x60, 0x32, 0x09, 0x39, - 0xaf, 0x10, 0x67, 0xda, 0x40, 0xf7, 0x15, 0xe2, 0x4c, 0x3b, 0xd8, 0xbe, 0x7e, 0x97, 0x69, 0xba, - 0x48, 0x16, 0xd2, 0x34, 0x6d, 0x1d, 0x74, 0xb6, 0xd1, 0xf7, 0x1b, 0x1a, 0x8c, 0xc5, 0xa0, 0xcd, - 0xc9, 0xe5, 0x0c, 0x82, 0x46, 0xe6, 0xbe, 0x2b, 0x9d, 0x11, 0xa3, 0x82, 0x0b, 0x4c, 0xc1, 0x6b, - 0xe4, 0x8a, 0xa2, 0x82, 0xf1, 0xf3, 0xe0, 0xbf, 0x6a, 0x30, 0x11, 0x0f, 0xa0, 0x54, 0x58, 0x10, - 0xa5, 0x22, 0x78, 0x15, 0x16, 0x44, 0xe9, 0xc8, 0x4d, 0xfd, 0x83, 0x4c, 0xc3, 0x3b, 0x64, 0x29, - 0x8b, 0x86, 0xe9, 0xe3, 0xf1, 0xe7, 0x73, 0x70, 0x20, 0x1d, 0xb7, 0x49, 0x16, 0x33, 0xce, 0x71, - 0x49, 0xea, 0xdf, 0xda, 0x36, 0x1f, 0x34, 0xc3, 0x47, 0x98, 0x19, 0x1e, 0x92, 0x95, 0xce, 0xcd, - 0x90, 0x3c, 0x6f, 0xfe, 0x77, 0x60, 0x20, 0x87, 0x66, 0xcf, 0x1b, 0x59, 0x1d, 0x34, 0x32, 0x87, - 0xce, 0x6e, 0x83, 0xc3, 0xb6, 0xd4, 0x57, 0x9c, 0x4f, 0xff, 0x47, 0x83, 0x83, 0x61, 0x2f, 0x0c, - 0xcf, 0x47, 0xef, 0xf9, 0x38, 0xc8, 0x6a, 0x81, 0x4c, 0x33, 0xd4, 0x1f, 0x69, 0xb0, 0x27, 0x02, - 0xd5, 0x53, 0xd8, 0x28, 0x4d, 0x02, 0xdd, 0x2a, 0x6c, 0x94, 0x26, 0x22, 0x03, 0xf5, 0x73, 0x4c, - 0xd3, 0x93, 0x64, 0x4a, 0x35, 0x68, 0xa3, 0xb8, 0x5f, 0xd5, 0x60, 0x34, 0x02, 0x16, 0xbd, 0x90, - 0x59, 0x10, 0xf5, 0x3c, 0x22, 0x09, 0x31, 0xa8, 0xb6, 0x03, 0x12, 0xd5, 0x20, 0x10, 0x93, 0xbf, - 0xa3, 0xc1, 0xbe, 0x04, 0x8c, 0x1f, 0xb9, 0x9e, 0x59, 0xb4, 0x20, 0xc2, 0x30, 0x7f, 0xa3, 0x73, - 0x06, 0xa8, 0xe2, 0x12, 0x53, 0x71, 0x9e, 0xcc, 0x66, 0x52, 0x51, 0x84, 0x9c, 0x80, 0xa6, 0x7f, - 0xa5, 0xc1, 0x78, 0x1c, 0x28, 0x83, 0x5c, 0xc9, 0x90, 0x98, 0x46, 0xd0, 0x89, 0xf9, 0xab, 0x1d, - 0x52, 0x67, 0xd9, 0x9e, 0x90, 0x05, 0xe1, 0x01, 0xf5, 0x7b, 0x1a, 0x8c, 0x89, 0xfd, 0x73, 0x1f, - 0x34, 0x44, 0x61, 0x27, 0x28, 0x8a, 0x31, 0x51, 0xd8, 0x09, 0x8a, 0x41, 0x9f, 0xa8, 0xed, 0x04, - 0x55, 0x19, 0x61, 0x91, 0x01, 0x3e, 0xc8, 0x6f, 0x69, 0xd0, 0x2f, 0x21, 0x25, 0xe4, 0x54, 0xdb, - 0x56, 0xc3, 0xb8, 0x94, 0xfc, 0x4c, 0x16, 0x12, 0x14, 0xf3, 0x04, 0x13, 0xf3, 0x45, 0x72, 0x34, - 0x4d, 0xcc, 0xba, 0x94, 0xea, 0x2f, 0x35, 0x18, 0x8b, 0x41, 0x35, 0x92, 0x2c, 0x07, 0x4d, 0x11, - 0xb9, 0xaf, 0x74, 0x46, 0x9c, 0x65, 0xdb, 0x5d, 0x6a, 0x10, 0x71, 0x95, 0x7f, 0xd7, 0x20, 0x9f, - 0x8c, 0x9b, 0x24, 0x73, 0x1d, 0xc8, 0x16, 0x02, 0xa7, 0xe6, 0xe7, 0xb7, 0xc5, 0x23, 0xcb, 0x88, - 0x4f, 0x54, 0x33, 0x30, 0xe2, 0x7f, 0x29, 0x07, 0x47, 0x14, 0x70, 0x8b, 0xe4, 0x4e, 0x06, 0xb9, - 0xdb, 0x21, 0x74, 0xf3, 0x77, 0x77, 0x86, 0x19, 0x5a, 0x63, 0x85, 0x59, 0x63, 0x99, 0xdc, 0x49, - 0x0d, 0x0f, 0xf2, 0x7a, 0x82, 0x9a, 0x5d, 0xfe, 0x4e, 0x83, 0xb1, 0x18, 0x24, 0xa3, 0x82, 0x73, - 0x27, 0xc3, 0x30, 0x15, 0x9c, 0x3b, 0x05, 0x83, 0xa9, 0xdf, 0x64, 0x7a, 0x5e, 0x27, 0x57, 0x53, - 0x7b, 0x5d, 0x7e, 0x48, 0xc1, 0xf7, 0x69, 0x89, 0x80, 0x66, 0xdf, 0xd2, 0x60, 0x5f, 0x02, 0xd8, - 0x51, 0x61, 0x36, 0x4b, 0x47, 0x6d, 0x2a, 0xcc, 0x66, 0x6d, 0x20, 0x9b, 0xaa, 0x47, 0x16, 0x1e, - 0x93, 0x44, 0x15, 0xdf, 0xd6, 0x60, 0x22, 0x1e, 0x15, 0xa9, 0x90, 0x3c, 0xa6, 0x82, 0x3b, 0x15, - 0x92, 0xc7, 0x74, 0x64, 0xa7, 0x7e, 0x9b, 0xe9, 0x37, 0x47, 0x6e, 0x64, 0xea, 0x45, 0xfc, 0x1a, - 0x47, 0xa4, 0x23, 0x13, 0xe0, 0x9c, 0x0a, 0x1d, 0x99, 0x8e, 0x6d, 0x57, 0xe8, 0xc8, 0x36, 0x48, - 0x52, 0xb5, 0x8e, 0xe4, 0x57, 0xca, 0xc4, 0xa5, 0xcb, 0xb8, 0xed, 0xb5, 0x3d, 0x51, 0xc0, 0x99, - 0xe2, 0xb6, 0x52, 0x0c, 0x4e, 0x52, 0x21, 0x19, 0x4e, 0x84, 0x3b, 0xea, 0xe7, 0x99, 0x42, 0xa7, - 0xc8, 0x74, 0x9a, 0x42, 0x31, 0x48, 0x33, 0xf2, 0xd7, 0x1a, 0x4c, 0x3e, 0x68, 0x61, 0xd7, 0xbe, - 0x2f, 0x94, 0x51, 0xba, 0xd0, 0xe1, 0x47, 0xf5, 0x85, 0x95, 0xfa, 0xaa, 0xb8, 0xf3, 0x1c, 0x04, - 0x3d, 0x2a, 0x04, 0xc8, 0x64, 0x28, 0xa7, 0x42, 0x80, 0x4c, 0xc1, 0x78, 0xea, 0x17, 0x99, 0x4e, - 0xa7, 0xc9, 0x29, 0xe5, 0x0e, 0x12, 0xd0, 0x44, 0xf2, 0x96, 0x06, 0x13, 0xf1, 0x58, 0x34, 0x85, - 0x88, 0x91, 0x8a, 0x82, 0x53, 0x88, 0x18, 0xe9, 0x20, 0x38, 0xfd, 0x16, 0x53, 0x6b, 0x96, 0x5c, - 0x4f, 0x53, 0x2b, 0x00, 0x0d, 0xf3, 0x83, 0xe2, 0x7c, 0xd7, 0x23, 0xbc, 0x2e, 0x8b, 0x41, 0x82, - 0x29, 0x74, 0x59, 0x32, 0x76, 0x4d, 0xa1, 0xcb, 0x52, 0x40, 0x6d, 0x6a, 0x5d, 0x16, 0x0b, 0x7b, - 0x23, 0x5f, 0xd3, 0x60, 0x4f, 0x04, 0xbf, 0xa4, 0x30, 0x9c, 0x92, 0xa0, 0x6d, 0x0a, 0xc3, 0x29, - 0x11, 0x2e, 0xa5, 0xb6, 0xf9, 0x17, 0x05, 0x54, 0x4d, 0x3f, 0xf5, 0x81, 0xe9, 0x9e, 0x91, 0x7f, - 0xd4, 0x60, 0x5f, 0x02, 0xa4, 0x47, 0x21, 0xa2, 0xa7, 0xc3, 0xa9, 0x14, 0x22, 0x7a, 0x1b, 0x34, - 0x91, 0x5a, 0xcc, 0x10, 0xff, 0x1a, 0x26, 0x06, 0x70, 0x44, 0xfe, 0x49, 0x83, 0xfd, 0x89, 0xb0, - 0x1d, 0x32, 0x9b, 0xc5, 0x93, 0x62, 0x61, 0x45, 0xf9, 0xb9, 0xed, 0xb0, 0xc8, 0x72, 0xdd, 0x20, - 0xe0, 0x92, 0x0c, 0xa2, 0xea, 0xad, 0xdb, 0x1c, 0xf2, 0x69, 0x0d, 0x86, 0x83, 0x70, 0xa0, 0xf4, - 0xc5, 0x5b, 0x2c, 0xa8, 0x28, 0x7d, 0xf1, 0x16, 0x8f, 0x36, 0xd2, 0xcf, 0x30, 0xb1, 0xa7, 0xc8, - 0xcb, 0xa9, 0x6b, 0x4c, 0xd3, 0xb5, 0x8b, 0x1c, 0xc7, 0x63, 0x32, 0xe1, 0xbe, 0xae, 0xe1, 0xf7, - 0x0b, 0x22, 0x90, 0x1d, 0x85, 0x91, 0x94, 0x04, 0x16, 0x52, 0x18, 0x49, 0x89, 0x08, 0x21, 0xb5, - 0x5b, 0x37, 0x5c, 0x05, 0x99, 0x0b, 0x4d, 0x3f, 0x0d, 0x60, 0x93, 0x58, 0xf6, 0x3e, 0x11, 0x0f, - 0x01, 0x52, 0x08, 0xe7, 0xa9, 0xf0, 0x23, 0x85, 0x70, 0x9e, 0x8e, 0x3d, 0x52, 0xdb, 0xcd, 0xd8, - 0x90, 0x3c, 0x8a, 0x01, 0xa0, 0x12, 0x5b, 0x97, 0xc4, 0x40, 0xc5, 0x15, 0x62, 0x78, 0x32, 0x3a, - 0x5d, 0x21, 0x86, 0xa7, 0xa0, 0xd3, 0xd5, 0xd6, 0x25, 0x7e, 0xfc, 0x7a, 0xd1, 0x5e, 0xc7, 0x09, - 0xd8, 0xf1, 0xcd, 0x4e, 0xff, 0xac, 0xc1, 0xfe, 0x44, 0x54, 0xba, 0x42, 0x70, 0x68, 0x07, 0x7d, - 0x57, 0x08, 0x0e, 0x6d, 0x41, 0xf1, 0xfa, 0x2c, 0xd3, 0xf5, 0x32, 0xb9, 0x98, 0x9a, 0xd4, 0xc6, - 0x28, 0x5a, 0x94, 0x9f, 0xe3, 0xf8, 0x8a, 0x06, 0xa3, 0x61, 0x28, 0x93, 0xc2, 0xde, 0x68, 0x02, - 0x40, 0x2b, 0x7f, 0xb1, 0x03, 0xca, 0x2c, 0xca, 0xb4, 0xfe, 0x63, 0x14, 0x92, 0x07, 0xd6, 0x20, - 0x5f, 0xd4, 0x60, 0x3c, 0x06, 0x19, 0xa4, 0x72, 0x47, 0x2c, 0x0e, 0xc9, 0xa4, 0x70, 0xfd, 0x24, - 0x16, 0xcb, 0xa4, 0x76, 0xfa, 0xbd, 0xc6, 0x48, 0x05, 0x48, 0x4d, 0x6e, 0x56, 0xff, 0x6a, 0x0e, - 0x0e, 0xb7, 0xc5, 0xa8, 0x90, 0xa5, 0xcc, 0xa7, 0x06, 0x49, 0xe0, 0xa7, 0xfc, 0x2b, 0x3b, 0xc1, - 0x0a, 0x15, 0xff, 0x61, 0xa6, 0xf8, 0x6b, 0xe4, 0x61, 0xb6, 0xc3, 0xa8, 0x52, 0x8b, 0x61, 0xea, - 0x69, 0xc4, 0xf7, 0x34, 0xd0, 0xdb, 0xe3, 0x5c, 0xc8, 0x2b, 0x8a, 0x4e, 0xa8, 0x80, 0xbd, 0xc9, - 0xdf, 0xd9, 0x11, 0x5e, 0x59, 0x52, 0x16, 0x83, 0x71, 0xe2, 0x87, 0x33, 0x45, 0x6f, 0x66, 0x6f, - 0x81, 0x6e, 0xc8, 0x9f, 0x6a, 0x30, 0x1a, 0x46, 0xcd, 0xa8, 0x5c, 0x29, 0x8e, 0xc7, 0xe8, 0xa8, - 0x5c, 0x29, 0x4e, 0x80, 0xe8, 0xa8, 0x5d, 0x12, 0x33, 0xf8, 0x1e, 0x97, 0xe3, 0x91, 0x73, 0x94, - 0xc8, 0xf4, 0x53, 0x44, 0xbe, 0x3c, 0x23, 0xdf, 0xd4, 0x80, 0x44, 0x81, 0x1c, 0x0a, 0x97, 0x1f, - 0x12, 0x11, 0x38, 0x0a, 0x97, 0x1f, 0x92, 0x71, 0x36, 0x6a, 0x37, 0xad, 0x10, 0xea, 0xe2, 0x67, - 0x20, 0x54, 0x6a, 0x3c, 0xf3, 0x29, 0xf7, 0x75, 0x0d, 0xc6, 0x62, 0xb0, 0x33, 0xa4, 0x13, 0x09, - 0x33, 0x4c, 0x8c, 0x29, 0x70, 0x1d, 0xb5, 0x1d, 0x90, 0x18, 0xfd, 0x9c, 0x96, 0x82, 0x73, 0x1b, - 0x5f, 0x7e, 0xeb, 0x80, 0xf6, 0xb5, 0xb7, 0x0e, 0x68, 0xdf, 0x7a, 0xeb, 0x80, 0xf6, 0x8b, 0x6f, - 0x1f, 0xd8, 0xf5, 0xb5, 0xb7, 0x0f, 0xec, 0xfa, 0xfb, 0xb7, 0x0f, 0xec, 0x7a, 0xfd, 0x5e, 0xc5, - 0x74, 0x37, 0x9a, 0x6b, 0x53, 0x25, 0xbb, 0x3a, 0xbd, 0x24, 0xf8, 0xdf, 0x35, 0xd6, 0x9c, 0x56, - 0x6b, 0x27, 0x4a, 0x76, 0x83, 0xfa, 0x1f, 0x37, 0x0c, 0xb3, 0x86, 0x07, 0x0d, 0x4e, 0x4b, 0x14, - 0x77, 0xab, 0x4e, 0x9d, 0xb5, 0x5e, 0xf6, 0x4f, 0x68, 0x4f, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x1e, 0xed, 0xe6, 0xe6, 0x7a, 0x77, 0x00, 0x00, + // 5988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x6d, 0x8c, 0x1c, 0xc9, + 0x55, 0xee, 0xd9, 0x0f, 0xef, 0xbe, 0xfd, 0x74, 0xed, 0x7a, 0xbd, 0x9e, 0xbb, 0xf3, 0x47, 0x3b, + 0xbe, 0xf3, 0x39, 0xe7, 0x1d, 0x7b, 0xfd, 0xfd, 0xed, 0x9d, 0x5d, 0xaf, 0xbd, 0xe7, 0x5d, 0xdb, + 0x37, 0xbb, 0xbe, 0xcb, 0x5d, 0x80, 0x49, 0xef, 0x4c, 0xef, 0x6c, 0x9f, 0x7b, 0xa6, 0xc7, 0xd3, + 0x3d, 0x7b, 0x5e, 0x8c, 0x11, 0x10, 0x50, 0x22, 0x90, 0x00, 0x29, 0x02, 0x84, 0x40, 0x08, 0xf8, + 0xc1, 0x0f, 0x44, 0x84, 0x44, 0x84, 0x40, 0x89, 0x94, 0x28, 0x04, 0xa1, 0x70, 0x41, 0x70, 0x90, + 0x23, 0xa0, 0x08, 0x8e, 0xe8, 0x2e, 0x10, 0xe5, 0x04, 0x12, 0xbf, 0x90, 0x10, 0x28, 0x41, 0x5d, + 0xf5, 0xaa, 0xa6, 0xbf, 0xa7, 0x7a, 0x76, 0x4f, 0xbe, 0x90, 0x5f, 0xde, 0xa9, 0xae, 0xf7, 0xea, + 0xbd, 0x7a, 0xaf, 0xde, 0x7b, 0x55, 0xf5, 0x5e, 0x19, 0x9e, 0x35, 0x6a, 0xaf, 0xeb, 0x25, 0xc7, + 0xd8, 0xd0, 0x73, 0xfa, 0xc3, 0xd2, 0xba, 0x56, 0xab, 0xe8, 0xb9, 0x8d, 0x13, 0xab, 0xba, 0xa3, + 0x9d, 0xc8, 0x3d, 0x68, 0xea, 0x8d, 0xcd, 0xa9, 0x7a, 0xc3, 0x72, 0x2c, 0x92, 0x15, 0xfd, 0xa6, + 0x78, 0xbf, 0x29, 0xec, 0x97, 0x7d, 0xba, 0x62, 0x59, 0x15, 0x53, 0xcf, 0x69, 0x75, 0x23, 0xa7, + 0xd5, 0x6a, 0x96, 0xa3, 0x39, 0x86, 0x55, 0xb3, 0x19, 0x64, 0xf6, 0xf9, 0x84, 0x11, 0x04, 0x2a, + 0xd6, 0xf5, 0x48, 0x42, 0xd7, 0x8a, 0x5e, 0xd3, 0x6d, 0x83, 0x23, 0x3d, 0xdc, 0xea, 0x69, 0x35, + 0xb4, 0x92, 0xd9, 0xea, 0xc7, 0x7e, 0x62, 0xb7, 0xf1, 0x8a, 0x55, 0xb1, 0xe8, 0x9f, 0x39, 0xf7, + 0x2f, 0xd6, 0xaa, 0xde, 0x01, 0x58, 0x6e, 0xae, 0x6a, 0xa5, 0x92, 0xd5, 0xac, 0x39, 0x64, 0x02, + 0x7a, 0x9d, 0x86, 0x56, 0xd6, 0x1b, 0x93, 0xca, 0x01, 0xe5, 0x48, 0x7f, 0x01, 0x7f, 0x91, 0xe7, + 0x61, 0xd4, 0x16, 0xbd, 0x8a, 0x35, 0xab, 0x56, 0xd2, 0x27, 0x33, 0x07, 0x94, 0x23, 0x43, 0x85, + 0x91, 0x56, 0xfb, 0x6d, 0xb7, 0x59, 0xfd, 0x04, 0x3c, 0xfd, 0x92, 0x3b, 0x57, 0x2d, 0xac, 0x77, + 0x1a, 0x65, 0xbd, 0x61, 0x17, 0xf4, 0x07, 0x4d, 0xdd, 0x76, 0xc8, 0x21, 0x18, 0xf2, 0xa0, 0x32, + 0xca, 0x38, 0xd2, 0x60, 0xab, 0x71, 0xa1, 0x4c, 0x9e, 0x82, 0xfe, 0xaa, 0xd6, 0xb8, 0xaf, 0xd3, + 0x0e, 0x19, 0xda, 0xa1, 0x8f, 0x35, 0x2c, 0x94, 0xd5, 0x2f, 0x2b, 0xf0, 0x4c, 0xcc, 0x10, 0x76, + 0xdd, 0xaa, 0xd9, 0x3a, 0xb9, 0x0d, 0xb0, 0xda, 0xdc, 0x2c, 0x5a, 0xb4, 0x75, 0x52, 0x39, 0xd0, + 0x75, 0x64, 0x60, 0x3a, 0x37, 0x15, 0x2f, 0xb5, 0xa9, 0x00, 0xa6, 0x39, 0xcd, 0xd1, 0x0a, 0xfd, + 0xab, 0xcd, 0x4d, 0x86, 0x97, 0xdc, 0x85, 0x01, 0x5b, 0x37, 0x4d, 0x8e, 0x30, 0xd3, 0x19, 0x42, + 0x70, 0x71, 0x30, 0x8c, 0xea, 0x1f, 0x2a, 0x70, 0x38, 0xd0, 0x67, 0xd5, 0xb2, 0xee, 0x2f, 0xe9, + 0x8e, 0x56, 0xd6, 0x1c, 0xed, 0x15, 0xc3, 0x59, 0x5f, 0xa2, 0xfc, 0x92, 0x65, 0xe8, 0xab, 0x62, + 0x2b, 0x9d, 0xaa, 0x81, 0xe9, 0xb3, 0x29, 0x06, 0xf6, 0x22, 0x2d, 0x08, 0x44, 0x89, 0xf3, 0x4b, + 0xc6, 0xa1, 0xc7, 0xb0, 0xf3, 0xcd, 0xcd, 0xc9, 0xae, 0x03, 0xca, 0x91, 0xbe, 0x02, 0xfb, 0xa1, + 0x3e, 0x0d, 0x59, 0x3a, 0xe9, 0xd7, 0x71, 0xc4, 0xbb, 0x5a, 0x43, 0xab, 0x72, 0xa9, 0xaa, 0x45, + 0x78, 0x2a, 0xf2, 0x2b, 0x0a, 0xe4, 0x1a, 0xf4, 0xd6, 0x69, 0x0b, 0xb2, 0xa0, 0x26, 0xb1, 0xc0, + 0x60, 0xf3, 0xdd, 0x5f, 0x7d, 0x67, 0xff, 0x8e, 0x02, 0xc2, 0xa9, 0x9f, 0x51, 0x60, 0x5f, 0x40, + 0xe8, 0x73, 0x7a, 0xdd, 0xb2, 0x0d, 0x27, 0x9d, 0x66, 0x2d, 0x02, 0xb4, 0x7e, 0x53, 0xd6, 0x07, + 0xa6, 0x9f, 0x95, 0x9b, 0x50, 0x4a, 0x91, 0x52, 0xf0, 0xc0, 0xab, 0xef, 0x2b, 0xb0, 0x3f, 0x96, + 0x2a, 0xe4, 0x5d, 0x87, 0xbe, 0x32, 0xb6, 0xa1, 0x2a, 0x2e, 0x24, 0x8d, 0xd7, 0x06, 0xdd, 0x14, + 0x6f, 0xb8, 0x5e, 0x73, 0x1a, 0x9b, 0x05, 0x81, 0x3a, 0xfb, 0x09, 0x18, 0xf2, 0x7d, 0x22, 0xa3, + 0xd0, 0x75, 0x5f, 0xdf, 0xc4, 0x49, 0x70, 0xff, 0x24, 0xe7, 0xa1, 0x67, 0x43, 0x33, 0x9b, 0x3a, + 0xb2, 0x7d, 0x28, 0x89, 0x0c, 0xc4, 0x55, 0x60, 0x10, 0x17, 0x32, 0xe7, 0x14, 0x75, 0x1f, 0xae, + 0x6c, 0x2e, 0xe3, 0xbc, 0x66, 0x6a, 0xb5, 0x92, 0x2e, 0x74, 0x60, 0x0d, 0x97, 0x65, 0xf8, 0x3b, + 0xce, 0xc4, 0x75, 0xe8, 0x5b, 0xc5, 0x36, 0x9c, 0x89, 0x44, 0x12, 0x10, 0x1e, 0x15, 0x41, 0x80, + 0xaa, 0x67, 0x51, 0xd7, 0x66, 0x2a, 0x95, 0x86, 0x5e, 0xd1, 0x1c, 0xfd, 0x65, 0xcb, 0x6c, 0x56, + 0x75, 0xae, 0x06, 0x93, 0xb0, 0x93, 0x8b, 0x97, 0xf1, 0xce, 0x7f, 0xaa, 0x4d, 0x64, 0x20, 0x04, + 0x88, 0xf4, 0xdd, 0x83, 0x5d, 0x1a, 0xff, 0x54, 0xdc, 0xa0, 0xdf, 0x38, 0xa1, 0x47, 0x92, 0x08, + 0x65, 0x2b, 0x15, 0x91, 0x8d, 0x6a, 0x7e, 0xec, 0xb6, 0xfa, 0x6a, 0xf4, 0xb0, 0x42, 0x6f, 0xb3, + 0xd0, 0x87, 0x14, 0xb2, 0xd1, 0xfa, 0x0b, 0xe2, 0x37, 0x79, 0x06, 0x40, 0x2c, 0x54, 0x66, 0x78, + 0xfa, 0x0b, 0xfd, 0x7c, 0xa5, 0xda, 0xea, 0x7f, 0x73, 0x53, 0x18, 0xc6, 0x8d, 0x3c, 0x39, 0xb0, + 0xb7, 0xc5, 0x13, 0x5f, 0x1b, 0x7e, 0xde, 0xce, 0x25, 0xf1, 0x26, 0x10, 0xcf, 0x30, 0x58, 0x3e, + 0x65, 0x25, 0xab, 0x51, 0x2e, 0xec, 0xd1, 0x22, 0xbf, 0xda, 0x64, 0x15, 0x26, 0x5b, 0xa3, 0x22, + 0x03, 0x7c, 0xd0, 0x4c, 0xca, 0x09, 0x9d, 0x10, 0x98, 0xbc, 0xcd, 0xb6, 0x7a, 0x0d, 0x0e, 0xfa, + 0x59, 0xf7, 0x41, 0xe1, 0xdc, 0xfa, 0x0c, 0x9d, 0x12, 0x70, 0x24, 0x26, 0xa8, 0x49, 0x18, 0x70, + 0x06, 0xe7, 0xa1, 0x97, 0x91, 0x8e, 0xb6, 0x2b, 0x91, 0x72, 0xef, 0xf4, 0x70, 0x0b, 0xc6, 0xa0, + 0xd5, 0xe3, 0x30, 0x49, 0x47, 0x9b, 0xd3, 0x6b, 0x56, 0x75, 0x4e, 0x2f, 0x19, 0x55, 0xcd, 0xe4, + 0x64, 0x8e, 0x43, 0x4f, 0xd9, 0x6d, 0x46, 0x12, 0xd9, 0x0f, 0xf5, 0x34, 0xec, 0x8d, 0x80, 0x40, + 0xb2, 0x26, 0x61, 0x67, 0x99, 0x35, 0x51, 0xa0, 0xee, 0x02, 0xff, 0xa9, 0x9e, 0x8c, 0x00, 0x13, + 0xca, 0x36, 0x01, 0xbd, 0x14, 0x39, 0x57, 0x35, 0xfc, 0xa5, 0x3a, 0x68, 0xde, 0x03, 0x40, 0x38, + 0xd8, 0xcb, 0x30, 0x4c, 0xfb, 0x15, 0x71, 0x0c, 0xae, 0x3a, 0xcf, 0x27, 0x9b, 0x10, 0x0f, 0x2a, + 0x9c, 0x8c, 0xa1, 0xb2, 0xb7, 0x51, 0x9d, 0x4d, 0x92, 0x80, 0xa0, 0xd9, 0xbf, 0x08, 0x94, 0xe0, + 0x22, 0x30, 0xe0, 0x50, 0x22, 0x12, 0xe4, 0x21, 0x0f, 0x3b, 0x3b, 0x5d, 0xd3, 0x1c, 0x50, 0x7d, + 0x2d, 0x14, 0x79, 0x70, 0x3b, 0x99, 0xc6, 0x07, 0x09, 0x69, 0x67, 0xbc, 0xd2, 0xd6, 0xe2, 0x1c, + 0x9c, 0xe0, 0xe0, 0xaa, 0xcf, 0x93, 0x48, 0x9b, 0x70, 0x01, 0xa4, 0xde, 0x85, 0x3d, 0x6c, 0x88, + 0xba, 0xe5, 0x30, 0x06, 0xbd, 0x7a, 0x61, 0x3b, 0x9a, 0xd3, 0xb4, 0x79, 0xe4, 0xc7, 0x7e, 0xb5, + 0x33, 0x40, 0x3f, 0x82, 0x4a, 0xed, 0xc3, 0x28, 0x9c, 0xfe, 0x4e, 0xd6, 0x91, 0x4f, 0x78, 0xb2, + 0x9f, 0x15, 0x18, 0x0a, 0x1c, 0x4c, 0x3d, 0x0d, 0x13, 0x01, 0xec, 0x52, 0xeb, 0xfa, 0xd5, 0x10, + 0x9b, 0x82, 0xa6, 0x2b, 0xd0, 0xcb, 0xba, 0xe1, 0x04, 0xca, 0x92, 0x84, 0x50, 0xea, 0x37, 0x32, + 0xb8, 0xb8, 0xdc, 0x6f, 0x22, 0xc2, 0x92, 0xa1, 0xca, 0x95, 0xba, 0x69, 0x54, 0x0d, 0x16, 0x74, + 0x74, 0x17, 0xd8, 0x0f, 0x32, 0x07, 0x40, 0xa3, 0xca, 0xa2, 0x6d, 0x94, 0x75, 0x1a, 0x71, 0x0d, + 0x4f, 0x1f, 0x4e, 0x22, 0x8a, 0x0e, 0xba, 0x6c, 0x94, 0xf5, 0x42, 0xbf, 0xc5, 0xff, 0x24, 0x45, + 0xd8, 0x4b, 0xd1, 0x15, 0x4b, 0xcd, 0x6a, 0xd3, 0xd4, 0x5c, 0xc8, 0x62, 0xcd, 0x72, 0x77, 0x1e, + 0x9a, 0x39, 0xd9, 0xed, 0x12, 0x92, 0x3f, 0xe4, 0x06, 0x2f, 0xdf, 0x7c, 0x67, 0xff, 0x53, 0x25, + 0xcb, 0xae, 0x5a, 0xb6, 0x5d, 0xbe, 0x3f, 0x65, 0x58, 0xb9, 0xaa, 0xe6, 0xac, 0x4f, 0x2d, 0xea, + 0x15, 0xad, 0xb4, 0x39, 0xa7, 0x97, 0x0a, 0x7b, 0x28, 0x96, 0x59, 0x81, 0xe4, 0x36, 0xe2, 0x88, + 0x1c, 0xe0, 0x41, 0x53, 0xab, 0x39, 0x86, 0xb3, 0x39, 0xd9, 0xd3, 0xf9, 0x00, 0x2f, 0x21, 0x0e, + 0xf5, 0x4f, 0x15, 0x34, 0x40, 0x81, 0x89, 0x45, 0xb9, 0xdd, 0x82, 0xd1, 0xd5, 0xe6, 0xa6, 0x5d, + 0xac, 0x37, 0x8c, 0x92, 0x5e, 0x34, 0xf5, 0x0d, 0xdd, 0x44, 0xa5, 0x3a, 0x98, 0x34, 0x59, 0x8b, + 0x6e, 0xc7, 0xc2, 0xb0, 0x0b, 0x7a, 0xd7, 0x85, 0xa4, 0xbf, 0xc9, 0x12, 0xec, 0x72, 0x43, 0x71, + 0x3f, 0xb6, 0x8c, 0x2c, 0xb6, 0x11, 0x0a, 0xdb, 0x42, 0xa7, 0x7e, 0x56, 0x81, 0xe1, 0xf9, 0xa6, + 0x69, 0xb6, 0xd4, 0x65, 0xab, 0x6a, 0x46, 0x3e, 0x0e, 0xbb, 0xaa, 0x46, 0x19, 0xe9, 0xd3, 0x6a, + 0xe5, 0xa2, 0x63, 0xad, 0x62, 0xd4, 0x76, 0x34, 0xd1, 0x6a, 0x19, 0x65, 0x4a, 0xd8, 0x4c, 0xad, + 0xbc, 0x72, 0x27, 0x8f, 0x01, 0xeb, 0x70, 0xd5, 0xd3, 0x6a, 0xad, 0xaa, 0x9f, 0x56, 0x30, 0x80, + 0xf2, 0x13, 0xbd, 0x45, 0x53, 0x40, 0xa6, 0x61, 0xe2, 0x0d, 0xc3, 0x59, 0x2f, 0x86, 0x09, 0x67, + 0xfb, 0x08, 0xe2, 0x7e, 0x5d, 0xf2, 0x93, 0x52, 0xc6, 0xd0, 0x28, 0x44, 0x09, 0x8a, 0x7d, 0x2e, + 0x68, 0x42, 0x12, 0xb9, 0xf7, 0x63, 0x69, 0x99, 0x91, 0x2a, 0xaa, 0x56, 0xe0, 0xbb, 0xcc, 0xa2, + 0x8d, 0x67, 0x2a, 0x13, 0xcb, 0x94, 0x16, 0x39, 0xbd, 0x1e, 0x3f, 0xe4, 0xd7, 0x8d, 0x34, 0x2c, + 0x71, 0x33, 0xf4, 0x73, 0x62, 0x37, 0xc4, 0x57, 0x8b, 0x9d, 0xdf, 0xbc, 0xa9, 0xd9, 0xeb, 0x2d, + 0xa7, 0x99, 0xc8, 0x56, 0xc8, 0x4d, 0x65, 0x22, 0xdc, 0xd4, 0x41, 0x18, 0x64, 0xa6, 0x69, 0x9d, + 0x22, 0x9e, 0xec, 0xa2, 0x12, 0x1f, 0xa0, 0x6d, 0x6c, 0x2c, 0xd5, 0xe4, 0xdb, 0x9f, 0x08, 0x32, + 0x90, 0xdd, 0x05, 0xe8, 0xf5, 0xed, 0xc3, 0x4f, 0x24, 0xb1, 0xbb, 0xd2, 0x30, 0xaa, 0x55, 0xbd, + 0xec, 0xa2, 0x5b, 0x74, 0x0d, 0x05, 0xc5, 0x59, 0x40, 0x04, 0xe2, 0x68, 0x61, 0x85, 0x1e, 0x4a, + 0xb4, 0xc6, 0xdc, 0x36, 0x96, 0x55, 0x13, 0x3e, 0xc2, 0x42, 0x09, 0xd6, 0x32, 0x53, 0x2e, 0x37, + 0x74, 0xdb, 0x4e, 0x39, 0xd2, 0x73, 0x30, 0xc2, 0x87, 0xd1, 0x18, 0x02, 0x1c, 0x6b, 0x58, 0xf3, + 0xa1, 0x55, 0x7f, 0x23, 0x03, 0xbb, 0x23, 0x39, 0x76, 0x77, 0x6a, 0x54, 0xdb, 0x18, 0x6e, 0x6a, + 0x5a, 0x77, 0xb4, 0x33, 0xad, 0x0c, 0xc2, 0x0d, 0x12, 0x84, 0x61, 0xce, 0xc8, 0x43, 0x0b, 0x20, + 0x17, 0xc1, 0x9a, 0x61, 0x9a, 0xda, 0xaa, 0xc9, 0xfc, 0x91, 0x2c, 0x02, 0x0e, 0xd4, 0x3a, 0x3f, + 0xe8, 0xf6, 0x9c, 0x1f, 0xb8, 0xd6, 0xa3, 0xa5, 0x4d, 0xcc, 0x65, 0xa0, 0x07, 0x73, 0x15, 0xc6, + 0xdd, 0xad, 0x96, 0x8c, 0xf2, 0x64, 0x2f, 0xdb, 0xad, 0x96, 0x8c, 0xb2, 0xfa, 0x3a, 0xc6, 0x5a, + 0x61, 0x69, 0x6f, 0xbf, 0x66, 0x35, 0xe0, 0x70, 0x1b, 0xb9, 0x6f, 0xff, 0x98, 0x97, 0x3d, 0x4b, + 0xd8, 0x6f, 0xb7, 0xa5, 0x82, 0x9c, 0xff, 0x51, 0x3c, 0x6b, 0x2f, 0x08, 0x2f, 0x22, 0xb0, 0x7e, + 0x61, 0xb8, 0x3c, 0xaa, 0xd4, 0xd6, 0x4b, 0xf7, 0x71, 0x8f, 0x41, 0x16, 0x60, 0x78, 0x55, 0xb7, + 0x9d, 0xe2, 0x6a, 0x73, 0x13, 0xd1, 0x64, 0xe4, 0xd1, 0x0c, 0xba, 0xa0, 0xf9, 0xe6, 0x26, 0x43, + 0x75, 0x0b, 0x46, 0x28, 0x2a, 0x7a, 0x92, 0xc6, 0x70, 0x75, 0xc9, 0xe3, 0x1a, 0x72, 0x61, 0x97, + 0x75, 0xd3, 0xa4, 0xc8, 0xd4, 0x59, 0x5c, 0xa8, 0x73, 0x7a, 0xc3, 0xd8, 0xa0, 0x91, 0x44, 0x07, + 0x53, 0xf8, 0xd3, 0x19, 0x14, 0x7b, 0x3c, 0x96, 0xff, 0xf7, 0x13, 0xf9, 0xc7, 0x5c, 0x8d, 0x5a, + 0x73, 0xb0, 0x1d, 0x61, 0x6d, 0x62, 0x40, 0xda, 0xb5, 0xf5, 0x80, 0x54, 0xfd, 0xa2, 0x02, 0x07, + 0xe2, 0xe9, 0xfe, 0x01, 0x88, 0x1a, 0x7f, 0xb3, 0x0b, 0xa6, 0x22, 0xed, 0xdb, 0x8a, 0x35, 0xab, + 0xd5, 0x4a, 0xba, 0x79, 0xaf, 0xbe, 0x62, 0xcd, 0x54, 0x5d, 0x73, 0xb4, 0x7d, 0x2e, 0x7d, 0x0e, + 0x06, 0x56, 0x35, 0x5b, 0x2f, 0x6a, 0x14, 0x6f, 0x1a, 0xf3, 0x0e, 0x2e, 0x1c, 0x23, 0x87, 0xcc, + 0xc3, 0xe0, 0x83, 0xa6, 0xe5, 0x08, 0x34, 0xdd, 0xf2, 0x68, 0x06, 0x28, 0x20, 0xe2, 0x59, 0x84, + 0x3e, 0xdb, 0x69, 0x68, 0x8e, 0x5e, 0x61, 0x7b, 0x88, 0xe1, 0xe9, 0xe3, 0x49, 0x13, 0xc9, 0xa6, + 0xc5, 0xa4, 0x17, 0x2a, 0xcb, 0x08, 0x57, 0x10, 0x18, 0xc8, 0x22, 0x8c, 0x34, 0xf4, 0x35, 0xbd, + 0xa1, 0xd7, 0x4a, 0x3a, 0x2e, 0x8b, 0x5e, 0x79, 0x45, 0x1b, 0x16, 0xb0, 0x6c, 0x5d, 0xfc, 0x53, + 0x06, 0x4e, 0x79, 0xc4, 0x13, 0xd0, 0xb2, 0x0f, 0x54, 0x48, 0xc1, 0xe9, 0xed, 0xda, 0x86, 0xe9, + 0xed, 0xfe, 0x20, 0xa6, 0xb7, 0xa7, 0xf3, 0xe9, 0x5d, 0xc3, 0x83, 0x9f, 0xe8, 0xd9, 0xdd, 0xbe, + 0x80, 0xae, 0x01, 0x47, 0x23, 0x1c, 0x7b, 0x47, 0xe3, 0x49, 0x87, 0x75, 0xdf, 0xcd, 0xc0, 0x53, + 0xe8, 0xfa, 0x5b, 0x03, 0x7d, 0x48, 0x82, 0xbb, 0x8b, 0x74, 0xf3, 0x51, 0x31, 0x6a, 0x69, 0xb4, + 0x0a, 0x41, 0x7c, 0x91, 0x61, 0x77, 0x27, 0x91, 0xe1, 0x7e, 0x1e, 0x19, 0xba, 0x9a, 0xd3, 0x97, + 0xef, 0x7f, 0xff, 0x9d, 0xfd, 0xac, 0x21, 0x3a, 0x48, 0xec, 0x8d, 0x09, 0x12, 0x77, 0xb6, 0x82, + 0xc4, 0x0d, 0x3c, 0xfb, 0x8b, 0xd3, 0x23, 0x74, 0x04, 0x77, 0x02, 0x61, 0xdb, 0x59, 0x89, 0xb0, + 0x2d, 0x4a, 0x76, 0x22, 0x78, 0xfb, 0x49, 0xf8, 0xa8, 0x94, 0x5e, 0x7d, 0x50, 0xe3, 0xff, 0x82, + 0x12, 0x0a, 0x80, 0x9e, 0xe0, 0x36, 0xf0, 0x61, 0x28, 0x8e, 0x8a, 0xd9, 0x0c, 0x6e, 0xfb, 0x3c, + 0xfc, 0x3c, 0xbf, 0x00, 0xf1, 0x84, 0x70, 0x4f, 0xec, 0x34, 0xe3, 0xd3, 0x0a, 0x80, 0x27, 0x60, + 0x78, 0x82, 0xeb, 0x5c, 0xfd, 0x92, 0x02, 0xe3, 0x77, 0xf5, 0x46, 0x5d, 0x77, 0x9a, 0x9a, 0xc9, + 0x66, 0x64, 0xd9, 0xd1, 0x1c, 0x9d, 0xdc, 0x85, 0x01, 0xce, 0x76, 0x6d, 0xcd, 0xc2, 0x23, 0x88, + 0xc4, 0xab, 0xec, 0x00, 0x9a, 0x85, 0xda, 0x9a, 0x55, 0xc0, 0xa9, 0x73, 0xff, 0x26, 0xf7, 0x60, + 0x70, 0xad, 0x59, 0x2b, 0x1b, 0xb5, 0x0a, 0x43, 0xc9, 0x8e, 0xa9, 0xa6, 0x53, 0xa0, 0x9c, 0x67, + 0xe0, 0x85, 0x01, 0xc4, 0xe3, 0xa2, 0x55, 0x3f, 0xdf, 0x05, 0xe3, 0xf3, 0x4d, 0xd3, 0x0c, 0x0a, + 0x96, 0xcc, 0x05, 0xce, 0x4f, 0x5e, 0x48, 0x3e, 0x03, 0xf7, 0x43, 0x8b, 0x13, 0xb6, 0x57, 0x61, + 0xb8, 0xce, 0xa9, 0xf0, 0xd2, 0x7d, 0x3c, 0x05, 0xdd, 0x74, 0x46, 0x6f, 0xee, 0x28, 0x0c, 0x09, + 0x4c, 0x74, 0x42, 0x3e, 0xe6, 0x4e, 0x88, 0xd3, 0x6c, 0xe8, 0x36, 0x43, 0xdc, 0x45, 0x11, 0x9f, + 0x4c, 0x42, 0x7c, 0xfd, 0x61, 0xdd, 0x68, 0x6c, 0xce, 0x33, 0xa8, 0xd6, 0x3c, 0xdf, 0xdc, 0xe1, + 0xce, 0x09, 0x6d, 0xa4, 0x98, 0xf3, 0x4c, 0x67, 0xd1, 0xfd, 0xa6, 0x30, 0xc1, 0x54, 0xb1, 0xd9, + 0xee, 0x21, 0xf2, 0x68, 0xb1, 0x67, 0x7b, 0x8e, 0x16, 0xf3, 0xbd, 0xd0, 0xed, 0xb2, 0xac, 0x9a, + 0xb8, 0xb7, 0x8d, 0x58, 0x95, 0x68, 0x09, 0x5e, 0x0c, 0x9e, 0xec, 0x1d, 0x6f, 0x77, 0x0c, 0x16, + 0x12, 0xa5, 0x38, 0xdf, 0xbb, 0x88, 0xe7, 0x42, 0xa1, 0x1e, 0x32, 0x9b, 0x40, 0x23, 0xc6, 0x80, + 0x08, 0x4a, 0x6f, 0x06, 0xf4, 0x2d, 0x3d, 0xa1, 0xfc, 0xd4, 0x2e, 0x8f, 0xce, 0x2a, 0xd8, 0x01, + 0xbd, 0x87, 0x14, 0xb9, 0x7a, 0x78, 0xe3, 0xeb, 0xc7, 0xd1, 0xba, 0x1e, 0xe4, 0x51, 0x0a, 0xbf, + 0x05, 0x67, 0x3f, 0xe5, 0xe2, 0xa6, 0x1b, 0xb8, 0xbb, 0x6a, 0x5d, 0x46, 0x51, 0x0f, 0x4b, 0x53, + 0x7c, 0xd2, 0xdc, 0x75, 0xa9, 0xf3, 0xa1, 0x04, 0x89, 0xbb, 0x96, 0x6d, 0xd0, 0x9c, 0xa8, 0x54, + 0x78, 0x5e, 0x87, 0x67, 0x63, 0xf0, 0x2c, 0xd4, 0xfc, 0xd2, 0xde, 0x7a, 0x82, 0x91, 0x0d, 0xb9, + 0xc0, 0x58, 0xd7, 0xd7, 0xd6, 0x98, 0xc4, 0x3f, 0xb8, 0x41, 0x5f, 0x44, 0xe5, 0x08, 0x24, 0xf0, + 0x88, 0xe4, 0x9d, 0x34, 0x93, 0x55, 0x0b, 0x49, 0xcf, 0x33, 0xe9, 0x62, 0x01, 0xf6, 0xb8, 0x9e, + 0x50, 0xc7, 0xe5, 0x37, 0x25, 0x67, 0x45, 0x39, 0x1e, 0xbc, 0xce, 0x65, 0x28, 0xd4, 0xfb, 0xf0, + 0x5c, 0x5b, 0xe1, 0x88, 0x93, 0x14, 0x31, 0xac, 0xbb, 0x98, 0x3e, 0x92, 0x68, 0x6e, 0xbd, 0x83, + 0x29, 0x7c, 0xb0, 0x4f, 0x66, 0x60, 0x57, 0x48, 0x1e, 0x64, 0x0f, 0xec, 0x34, 0xec, 0xa2, 0x69, + 0xd5, 0x2a, 0x14, 0x73, 0x5f, 0xa1, 0xd7, 0xb0, 0x17, 0xad, 0x5a, 0x65, 0xeb, 0x21, 0xf3, 0x1c, + 0x0c, 0xe8, 0x35, 0xa7, 0xb1, 0x19, 0x3a, 0x6a, 0x69, 0xbf, 0x67, 0xa6, 0x70, 0xcc, 0xec, 0xde, + 0x86, 0x51, 0x9d, 0x13, 0x5d, 0xc4, 0x10, 0x3c, 0x85, 0x01, 0x1f, 0x11, 0xc0, 0x4b, 0x14, 0x56, + 0x7d, 0x0c, 0xc7, 0xe5, 0x75, 0x54, 0x1c, 0x5e, 0xfa, 0xe6, 0xfe, 0x58, 0xa2, 0x47, 0x0a, 0x62, + 0xf3, 0x0b, 0xe1, 0x0a, 0x2e, 0xeb, 0xa8, 0xe0, 0x40, 0xc6, 0x8c, 0x55, 0x51, 0x43, 0x23, 0xe1, + 0x05, 0xb9, 0xdd, 0x5b, 0x88, 0x51, 0x50, 0x43, 0x99, 0x3f, 0xe2, 0x96, 0x37, 0xc6, 0xcf, 0x4a, + 0x91, 0xdc, 0x44, 0xcb, 0x1b, 0x8b, 0x03, 0xc9, 0x5e, 0xf2, 0x91, 0xdd, 0x89, 0xdb, 0xf7, 0x91, + 0x3e, 0x83, 0x3b, 0xe5, 0x98, 0x98, 0x49, 0x8e, 0xf2, 0x43, 0x89, 0x28, 0x44, 0xd6, 0xa4, 0x4f, + 0x3d, 0x3a, 0x88, 0xe0, 0xfc, 0x56, 0x41, 0xec, 0x51, 0x62, 0x4d, 0x1a, 0x0e, 0x5c, 0xf2, 0xa5, + 0x38, 0xba, 0xd6, 0x68, 0xa6, 0xc3, 0x14, 0xc7, 0x56, 0xde, 0x24, 0xcf, 0x1a, 0xe3, 0x88, 0xd5, + 0xf3, 0x98, 0x2e, 0x14, 0xed, 0xd1, 0x90, 0x92, 0x71, 0xe8, 0x61, 0xc9, 0xad, 0x0a, 0x4d, 0x6e, + 0x65, 0x3f, 0xd4, 0xbd, 0x98, 0x4f, 0xb0, 0x64, 0x95, 0x9b, 0xa6, 0x4e, 0xa3, 0x3e, 0x9e, 0xf3, + 0xf6, 0x1a, 0xe6, 0x3f, 0xf8, 0x3e, 0x89, 0x5c, 0x03, 0xdf, 0x7c, 0x26, 0xa6, 0x9b, 0xdc, 0x60, + 0x19, 0xbd, 0x0c, 0x01, 0xce, 0xdf, 0x1e, 0xd8, 0xcd, 0xc4, 0x16, 0x70, 0x98, 0x6a, 0x19, 0xd3, + 0x22, 0x3e, 0x58, 0xa3, 0xfe, 0xc0, 0x7b, 0xff, 0x52, 0xd0, 0xdf, 0xd0, 0x1a, 0xe5, 0xbb, 0x96, + 0x51, 0x73, 0xa4, 0xf2, 0xd6, 0x4e, 0xc1, 0x44, 0x5d, 0x67, 0x9b, 0x82, 0xba, 0x65, 0x99, 0x45, + 0xc7, 0xa8, 0xea, 0xb6, 0xa3, 0x55, 0xeb, 0xd4, 0x06, 0x77, 0x15, 0xc6, 0xf1, 0xeb, 0x5d, 0xcb, + 0x32, 0x57, 0xf8, 0x37, 0xf5, 0x67, 0xf9, 0xb5, 0x66, 0xc4, 0x98, 0xc8, 0xe1, 0x2a, 0x3c, 0xc5, + 0x9d, 0x1f, 0xcd, 0x4d, 0x2e, 0x36, 0x68, 0xaf, 0x62, 0x9d, 0x76, 0x63, 0x74, 0xc8, 0x99, 0xd4, + 0x49, 0xaf, 0x1a, 0x78, 0xc7, 0x52, 0x0f, 0xa2, 0x71, 0xf3, 0x7c, 0x99, 0xd5, 0xaa, 0x75, 0xcd, + 0xa8, 0xd4, 0xb8, 0x08, 0xbe, 0xd7, 0x8d, 0x06, 0x2c, 0xb2, 0x0f, 0xd2, 0xba, 0x01, 0x4f, 0xbb, + 0x34, 0xba, 0x93, 0x80, 0x54, 0x96, 0xb0, 0x8b, 0x77, 0xf3, 0x75, 0x3a, 0x79, 0x0f, 0xac, 0xb1, + 0x35, 0xea, 0x1d, 0x80, 0x9a, 0x9b, 0xbd, 0x4e, 0xdc, 0x27, 0xf2, 0x53, 0x0a, 0x1c, 0x0e, 0x0c, + 0x4c, 0x85, 0x20, 0x46, 0xb7, 0x4b, 0xeb, 0xba, 0xab, 0xaf, 0x78, 0x7c, 0x3d, 0x95, 0x7c, 0x2c, + 0xc8, 0xb9, 0x62, 0x33, 0x64, 0x99, 0x85, 0x83, 0xbe, 0xa1, 0xdd, 0x26, 0xde, 0x69, 0x19, 0x11, + 0x93, 0x1f, 0x83, 0xbd, 0x8e, 0xe5, 0x68, 0x66, 0xa4, 0x90, 0x52, 0xb8, 0xd0, 0x09, 0x8a, 0x25, + 0x24, 0x22, 0xf2, 0x4b, 0x0a, 0x1c, 0xe3, 0x0a, 0x26, 0xc7, 0x6a, 0x77, 0x47, 0xac, 0x1e, 0xc1, + 0x41, 0x56, 0xda, 0x72, 0x5c, 0x85, 0x83, 0x82, 0xa0, 0x58, 0xce, 0x7b, 0xe4, 0xd5, 0xf3, 0x19, + 0x3e, 0x72, 0xe4, 0x04, 0xa8, 0x17, 0x51, 0x47, 0x17, 0xec, 0x3b, 0x75, 0x47, 0x2f, 0xdf, 0x69, + 0x3a, 0x77, 0xd6, 0x58, 0x07, 0xbb, 0x7d, 0x22, 0xec, 0x1c, 0x2a, 0x6f, 0x24, 0x30, 0x2a, 0xef, + 0x01, 0x18, 0x34, 0xec, 0xa2, 0xe5, 0x7e, 0x2f, 0x5a, 0x4d, 0x07, 0xa3, 0x2a, 0x30, 0x04, 0x88, + 0xfa, 0x1c, 0x9e, 0xfa, 0x84, 0x70, 0xe0, 0xa1, 0x98, 0xb0, 0x57, 0x73, 0x18, 0xbb, 0x27, 0x74, + 0xc4, 0x41, 0x13, 0x4c, 0x8a, 0x7a, 0x05, 0x1d, 0xe1, 0xbc, 0xae, 0xcf, 0x19, 0x36, 0x3b, 0x76, + 0xc3, 0x88, 0xd7, 0xe3, 0xc2, 0xe3, 0x99, 0xfe, 0xae, 0x82, 0x6e, 0x30, 0x0e, 0x01, 0xd2, 0xf0, + 0x0c, 0x80, 0x63, 0xe8, 0x0d, 0x71, 0x5d, 0xa4, 0x1c, 0xe9, 0x2e, 0xf4, 0xbb, 0x2d, 0xec, 0x54, + 0xa7, 0x00, 0x83, 0x22, 0xfa, 0x6e, 0x1d, 0x1b, 0x24, 0x46, 0x27, 0x9e, 0x01, 0x57, 0x0c, 0xbd, + 0x41, 0x47, 0x1b, 0xd0, 0x5a, 0x43, 0x93, 0x3b, 0x30, 0x20, 0x8c, 0x9a, 0x63, 0xe2, 0x81, 0xc1, + 0x54, 0x0a, 0x94, 0x2b, 0x2b, 0x8b, 0x05, 0xe0, 0xf6, 0xcc, 0x31, 0x85, 0x05, 0xf3, 0x74, 0xe3, + 0x8a, 0xca, 0x85, 0xf2, 0x29, 0x7e, 0x81, 0x16, 0xd9, 0x47, 0x78, 0xe6, 0xdd, 0x6b, 0xba, 0x5e, + 0x2c, 0xe3, 0xf7, 0xd6, 0x6a, 0x52, 0x52, 0x71, 0x2d, 0xf0, 0x8e, 0xad, 0x85, 0x1b, 0xd5, 0x6b, + 0xe8, 0x68, 0x30, 0xdf, 0x7b, 0xc9, 0xb0, 0xab, 0x9a, 0x53, 0xf2, 0x9c, 0x61, 0xee, 0x87, 0x81, + 0x72, 0xd3, 0x76, 0x8a, 0x6b, 0x5a, 0xc9, 0xb1, 0x58, 0x69, 0x4a, 0x57, 0x01, 0xdc, 0xa6, 0x79, + 0xda, 0xa2, 0xfe, 0x6e, 0x17, 0x8c, 0x04, 0xa0, 0x89, 0x0a, 0xbe, 0x3d, 0x91, 0x7c, 0x22, 0x26, + 0x99, 0x81, 0x7e, 0x6d, 0x43, 0x33, 0x52, 0x67, 0x40, 0xb4, 0xa0, 0xc8, 0x79, 0xe8, 0xa1, 0x46, + 0x20, 0x4d, 0x88, 0xcf, 0x20, 0xc8, 0x3c, 0x0c, 0x62, 0xa6, 0x7b, 0x71, 0xdd, 0x32, 0xcb, 0x9e, + 0x4b, 0x96, 0xf6, 0xb7, 0x3f, 0x08, 0x78, 0xd3, 0x32, 0xcb, 0xe4, 0x45, 0x18, 0xd6, 0x1f, 0xd6, + 0xf5, 0x92, 0xbb, 0x7e, 0x19, 0x2d, 0xbd, 0xf2, 0x98, 0x86, 0x38, 0x28, 0xb5, 0x3e, 0x64, 0x16, + 0xa0, 0x6c, 0xac, 0xe1, 0x05, 0x0e, 0x3b, 0x7e, 0x97, 0xdc, 0x01, 0xb5, 0xc0, 0xd4, 0x9f, 0x40, + 0xdf, 0x1e, 0x21, 0x66, 0xd4, 0xb6, 0xd7, 0x80, 0x70, 0xd6, 0xab, 0xe2, 0x2b, 0x86, 0x32, 0x1f, + 0x95, 0xa8, 0x14, 0xe0, 0x28, 0x0b, 0xbb, 0x56, 0x83, 0x63, 0xa8, 0x87, 0x71, 0xf1, 0x63, 0x57, + 0x37, 0x50, 0xcc, 0xb7, 0x66, 0x4b, 0x98, 0xaa, 0x5f, 0xcb, 0xc0, 0x6e, 0x4f, 0x17, 0xb6, 0xd9, + 0xa2, 0xf3, 0xf9, 0x43, 0xae, 0x4f, 0xea, 0xaf, 0xf2, 0x68, 0x3e, 0x76, 0x06, 0x51, 0x8a, 0x35, + 0xc8, 0xf2, 0x01, 0xe9, 0x09, 0xba, 0x77, 0x74, 0xa9, 0xb4, 0x99, 0xc8, 0xf9, 0x2f, 0xec, 0x59, + 0x8d, 0x1e, 0x57, 0xb8, 0xa1, 0x80, 0x49, 0x74, 0x43, 0x69, 0xc3, 0x76, 0x8c, 0x92, 0x90, 0xed, + 0x79, 0x18, 0xf2, 0x7d, 0x20, 0x04, 0xba, 0x5d, 0xbb, 0x8e, 0x36, 0x9e, 0xfe, 0xed, 0x8a, 0xb0, + 0x55, 0x1a, 0xd4, 0x5d, 0x60, 0x3f, 0x54, 0x1b, 0x3d, 0x58, 0xc2, 0x18, 0x62, 0xd3, 0x0a, 0xb6, + 0x68, 0x95, 0xc9, 0x92, 0xf7, 0xe1, 0x29, 0x78, 0x80, 0xdd, 0xf8, 0x7f, 0xc9, 0x70, 0xac, 0x97, + 0xb5, 0xa6, 0x49, 0xdd, 0x84, 0x60, 0xe4, 0xcf, 0x15, 0x98, 0x08, 0x7e, 0xc1, 0xe1, 0x9f, 0x87, + 0xd1, 0xaa, 0x66, 0x3b, 0x7a, 0x83, 0xdf, 0x51, 0xea, 0xdc, 0x91, 0x8e, 0xb0, 0xf6, 0x19, 0xde, + 0x4c, 0x4e, 0xc0, 0x78, 0x59, 0x6c, 0x01, 0x3c, 0xdd, 0xd9, 0x55, 0xc8, 0x58, 0xeb, 0x5b, 0x0b, + 0xe4, 0x30, 0x0c, 0xdb, 0x75, 0xcb, 0xf1, 0x74, 0x66, 0x97, 0x41, 0x43, 0x6e, 0xab, 0xaf, 0x5b, + 0xe9, 0x8d, 0xe9, 0xe3, 0x9e, 0x6e, 0xdd, 0xac, 0x9b, 0xdb, 0x2a, 0xba, 0xa9, 0x73, 0x68, 0xf7, + 0x71, 0xe3, 0x3b, 0x37, 0xdf, 0xb0, 0xaa, 0x94, 0x25, 0xcf, 0x59, 0xd7, 0x86, 0xfb, 0xbb, 0xe8, + 0x3f, 0xc9, 0x1c, 0xa4, 0x8d, 0xfc, 0xb6, 0x95, 0xa7, 0x51, 0x45, 0x60, 0xc1, 0x39, 0x49, 0xdc, + 0x1b, 0xf3, 0xed, 0xf5, 0x4d, 0xc3, 0x76, 0xac, 0x86, 0x51, 0x12, 0xb1, 0x56, 0xc9, 0xf2, 0x84, + 0x52, 0x89, 0x28, 0x1c, 0x34, 0x2d, 0x71, 0x28, 0xc4, 0xb9, 0xc0, 0x10, 0x0f, 0x09, 0xe9, 0x07, + 0x99, 0x2a, 0x04, 0x1f, 0xa2, 0x41, 0xc7, 0xf3, 0x4b, 0xfd, 0x13, 0x05, 0xc6, 0xe8, 0x67, 0x36, + 0xac, 0x1b, 0x5c, 0xb9, 0x5b, 0x41, 0xf2, 0x02, 0x10, 0x36, 0x4c, 0xa5, 0x61, 0x35, 0xeb, 0x6e, + 0x38, 0x6a, 0xeb, 0x25, 0x54, 0xf1, 0x51, 0xfa, 0xe5, 0x06, 0x7e, 0x58, 0xd6, 0x4b, 0x64, 0x0f, + 0xec, 0xac, 0x6a, 0x0f, 0x8b, 0x5a, 0x45, 0x47, 0x85, 0xef, 0xad, 0x6a, 0x0f, 0x67, 0x2a, 0x3a, + 0x99, 0x82, 0x31, 0xa3, 0x56, 0x32, 0x9b, 0x2e, 0xbd, 0xda, 0x1b, 0xc5, 0x75, 0x36, 0x08, 0xa6, + 0xf4, 0xed, 0xc2, 0x4f, 0x05, 0xed, 0x0d, 0x1c, 0xdd, 0x55, 0x3c, 0xde, 0x5f, 0xec, 0xe5, 0xe9, + 0x2d, 0x6f, 0x61, 0x04, 0xdb, 0xf9, 0x1e, 0x5d, 0xfd, 0x6d, 0x05, 0xcf, 0xeb, 0x45, 0x8d, 0x85, + 0xe6, 0x18, 0xa6, 0xe1, 0x6c, 0x4a, 0xdd, 0x59, 0x96, 0x60, 0x37, 0xe3, 0x0f, 0x49, 0x72, 0x43, + 0x54, 0x97, 0x71, 0x99, 0x40, 0x2c, 0x62, 0xbe, 0x0a, 0x63, 0x4e, 0xb8, 0x51, 0xfd, 0x64, 0xc6, + 0xa7, 0x9b, 0x5e, 0x12, 0x45, 0x2d, 0x06, 0x6c, 0x88, 0x56, 0xbc, 0xe1, 0xdb, 0xdf, 0xd6, 0x1d, + 0xb6, 0x40, 0xc8, 0x2b, 0x30, 0xca, 0x39, 0x10, 0x13, 0x96, 0x09, 0x5d, 0x68, 0x61, 0x05, 0xaf, + 0xb8, 0x84, 0xc1, 0x9e, 0x1e, 0xc3, 0x33, 0x82, 0x58, 0xf8, 0x27, 0x72, 0x13, 0x06, 0xbc, 0x12, + 0xeb, 0xa2, 0x5a, 0xf6, 0x9c, 0xa4, 0x96, 0x15, 0xa0, 0x21, 0x64, 0x2a, 0x0a, 0x89, 0xf2, 0x46, + 0x4d, 0xe3, 0x53, 0xd1, 0xee, 0x5e, 0x55, 0xad, 0x60, 0xb2, 0x75, 0x00, 0x48, 0x98, 0xc7, 0xc0, + 0xb5, 0x4f, 0xa2, 0xbc, 0x18, 0x0e, 0x14, 0x4a, 0xf0, 0xd6, 0xe7, 0x01, 0x1c, 0x8b, 0xbc, 0xfa, + 0x9f, 0xb5, 0x6a, 0x65, 0x83, 0x65, 0x89, 0x6d, 0x77, 0xe5, 0xf1, 0x6f, 0x75, 0xc1, 0xc1, 0xd0, + 0xad, 0x74, 0x70, 0xbc, 0x1f, 0xdc, 0xfc, 0x8e, 0x1b, 0x30, 0xe8, 0x34, 0x8c, 0x4a, 0x45, 0x6f, + 0xdc, 0x4d, 0x7b, 0xc1, 0xe8, 0x03, 0x6c, 0x9f, 0xe7, 0x71, 0x18, 0x76, 0x1a, 0x36, 0xbd, 0xce, + 0xa7, 0x51, 0x69, 0x5f, 0x7e, 0xe0, 0xfd, 0x77, 0xf6, 0xf3, 0xa6, 0x02, 0xff, 0x23, 0x90, 0x0e, + 0xb2, 0x33, 0x26, 0x1d, 0xa4, 0xaf, 0x95, 0x0e, 0xf2, 0x29, 0xc5, 0x97, 0x54, 0x97, 0xa8, 0x14, + 0xa2, 0xe8, 0xd3, 0x9f, 0x92, 0x70, 0x39, 0x55, 0x4a, 0x42, 0x10, 0xaf, 0x48, 0x4c, 0xb8, 0x84, + 0x06, 0x84, 0x27, 0xf0, 0xa7, 0x4a, 0xaa, 0x54, 0x7f, 0x8f, 0x1f, 0x84, 0x45, 0x80, 0x23, 0xdd, + 0x33, 0xd0, 0x9d, 0x37, 0x84, 0x17, 0x39, 0x26, 0x41, 0xb5, 0x27, 0x7d, 0x82, 0x82, 0xba, 0x28, + 0x66, 0xec, 0xfb, 0xbc, 0x22, 0x33, 0x2d, 0x0a, 0x17, 0x54, 0x1c, 0xac, 0xfb, 0xef, 0x3d, 0xd3, + 0x31, 0xfb, 0x07, 0x3c, 0xb2, 0x8c, 0x45, 0xf2, 0xa1, 0x62, 0xf9, 0xeb, 0x0a, 0xec, 0x0a, 0x7d, + 0x7b, 0xa2, 0x8b, 0xde, 0xbf, 0x4c, 0xba, 0x82, 0xcb, 0x24, 0x64, 0xf7, 0xba, 0x23, 0xae, 0x0c, + 0x97, 0x70, 0xe1, 0xe0, 0x6d, 0xb2, 0x63, 0x55, 0x8d, 0xd2, 0xf5, 0x87, 0x7a, 0xa9, 0xe9, 0x2a, + 0xf7, 0xbc, 0xae, 0x2f, 0x35, 0x4d, 0xc7, 0xa8, 0x9b, 0x86, 0xde, 0x90, 0x92, 0xe9, 0x06, 0x5e, + 0xa1, 0xca, 0xa0, 0x43, 0xe9, 0xce, 0x02, 0x54, 0x45, 0x6b, 0x9a, 0x69, 0xf4, 0x80, 0xa9, 0xe7, + 0x78, 0xad, 0x35, 0x15, 0xea, 0xb2, 0xa3, 0xdd, 0xd7, 0x6f, 0x34, 0xb4, 0x56, 0x76, 0xe6, 0x24, + 0xec, 0xac, 0xb8, 0xbf, 0x75, 0x9d, 0x1f, 0x0f, 0xe1, 0x4f, 0xf5, 0x73, 0xa2, 0x94, 0x3a, 0x04, + 0x8a, 0x04, 0x5e, 0x86, 0x1e, 0xda, 0x19, 0x0f, 0x3f, 0x12, 0x5d, 0x2a, 0x43, 0xc2, 0xe0, 0x19, + 0x14, 0x59, 0x86, 0xd6, 0x25, 0x5e, 0x91, 0x21, 0x92, 0xa8, 0xe8, 0x12, 0xf7, 0x70, 0x0c, 0xd7, + 0xb0, 0xee, 0xfb, 0xad, 0xae, 0xa0, 0x9d, 0xa0, 0xbf, 0x66, 0x9a, 0xce, 0xba, 0xd5, 0x30, 0x7e, + 0x9c, 0xa6, 0x70, 0x86, 0x38, 0x6e, 0xf8, 0x39, 0x6e, 0x78, 0xe7, 0x22, 0xe3, 0x9f, 0x8b, 0x8f, + 0xe1, 0xf1, 0x51, 0x14, 0x56, 0x9c, 0x8c, 0xd3, 0xd0, 0x8b, 0xe9, 0xa9, 0x4c, 0x52, 0xcf, 0xa0, + 0xa4, 0x76, 0x87, 0x25, 0xb5, 0x50, 0x73, 0x0a, 0xd8, 0x59, 0x1c, 0x5b, 0x86, 0x31, 0xdb, 0x6d, + 0x09, 0x76, 0x43, 0xde, 0x03, 0xf1, 0xd0, 0x22, 0xe7, 0x9b, 0xb0, 0xf3, 0x57, 0x0a, 0x55, 0x4c, + 0x43, 0xe4, 0x28, 0x05, 0x64, 0xc8, 0x79, 0xa6, 0x73, 0x2f, 0x45, 0x63, 0xcb, 0x9c, 0x94, 0x47, + 0xcc, 0x16, 0x42, 0x1f, 0x3d, 0x05, 0xfd, 0xa2, 0x6e, 0x93, 0x8c, 0xc3, 0xa8, 0xfb, 0x6f, 0xf1, + 0x5e, 0xcd, 0xae, 0xeb, 0x25, 0x63, 0xcd, 0xd0, 0xcb, 0xa3, 0x3b, 0xc8, 0x4e, 0xe8, 0xca, 0x37, + 0x37, 0x47, 0x15, 0xd2, 0x07, 0xdd, 0xcb, 0xba, 0x69, 0x8e, 0x66, 0x8e, 0xbe, 0x0c, 0xe3, 0x51, + 0x49, 0xb9, 0x2e, 0x02, 0x0f, 0x2c, 0x45, 0x3c, 0xba, 0x83, 0x8c, 0xc1, 0x88, 0xbb, 0xf7, 0x79, + 0xc5, 0x6a, 0xd8, 0xce, 0x8a, 0x95, 0xd7, 0x6d, 0x67, 0x54, 0xe1, 0x8d, 0xee, 0xaf, 0x15, 0x8b, + 0x7e, 0x1a, 0xcd, 0x4c, 0x7f, 0x7f, 0x1d, 0x7a, 0xe8, 0x3c, 0x92, 0x77, 0x15, 0xd8, 0xbd, 0x78, + 0x32, 0x60, 0x73, 0xf3, 0x96, 0x75, 0x9f, 0x5c, 0x6d, 0xfb, 0x46, 0x45, 0xb2, 0xc9, 0xcf, 0x5e, + 0xeb, 0x1c, 0x01, 0x93, 0xa4, 0x3a, 0xff, 0x33, 0x5f, 0xff, 0xf6, 0x67, 0x32, 0xd7, 0xc8, 0x95, + 0x5c, 0xc2, 0x53, 0x38, 0xad, 0x6d, 0x6a, 0x6e, 0xf1, 0xa4, 0x20, 0x3f, 0xf7, 0x48, 0x98, 0xa6, + 0xc7, 0xe4, 0x4d, 0x05, 0x46, 0x16, 0x4f, 0x0a, 0x2f, 0x4a, 0xd9, 0x3b, 0x2f, 0x45, 0x5d, 0x94, + 0xe3, 0xce, 0x5e, 0xe8, 0x04, 0x14, 0x59, 0xba, 0x46, 0x59, 0xba, 0x40, 0xce, 0x25, 0xb1, 0xe4, + 0x6e, 0xa6, 0x63, 0x99, 0xf9, 0xbc, 0x02, 0x63, 0x11, 0x2f, 0xad, 0x90, 0x33, 0x6d, 0xa9, 0x8a, + 0x7c, 0xb8, 0x25, 0x7b, 0x36, 0x35, 0x1c, 0xb2, 0x32, 0x4d, 0x59, 0x79, 0x81, 0x1c, 0xcd, 0x49, + 0xbc, 0x69, 0x84, 0x44, 0xfe, 0xb5, 0x02, 0x24, 0xfc, 0xb4, 0x09, 0xb9, 0xd0, 0xd1, 0x7b, 0x28, + 0x8c, 0xfe, 0x8b, 0x5b, 0x78, 0x4b, 0x45, 0xbd, 0x4a, 0x79, 0x38, 0x4f, 0xce, 0xca, 0xf0, 0x90, + 0xb3, 0xc3, 0x94, 0xbf, 0xa9, 0xc0, 0xae, 0x10, 0x7e, 0x09, 0xe5, 0x8a, 0x7b, 0x3f, 0x20, 0x7b, + 0xa1, 0x13, 0x50, 0xe4, 0xe6, 0x0a, 0xe5, 0xe6, 0x1c, 0x39, 0xd3, 0x19, 0x37, 0xe4, 0x2f, 0x14, + 0x18, 0x0d, 0xbe, 0xdd, 0x42, 0xce, 0x49, 0xeb, 0x47, 0xe0, 0x39, 0x98, 0xec, 0xf9, 0x0e, 0x20, + 0x91, 0x93, 0xcb, 0x94, 0x93, 0xb3, 0xe4, 0xb4, 0x14, 0x27, 0x7a, 0x90, 0xe6, 0xbf, 0x52, 0x60, + 0x24, 0xf0, 0x20, 0x0a, 0x69, 0xaf, 0xe7, 0xd1, 0xcf, 0xc9, 0x64, 0xcf, 0xa5, 0x07, 0x4c, 0x63, + 0xbf, 0x44, 0x43, 0xe0, 0xd9, 0x98, 0xdc, 0x23, 0x94, 0xce, 0x63, 0x2a, 0x97, 0xe0, 0xfb, 0x2e, + 0x24, 0x35, 0x59, 0x29, 0xe4, 0x12, 0xf7, 0x98, 0x4c, 0x4a, 0xb9, 0x04, 0x1f, 0xc2, 0x21, 0xff, + 0xa6, 0xc0, 0xee, 0xc8, 0x47, 0x3a, 0xc8, 0x65, 0x79, 0x9a, 0x22, 0x5e, 0x79, 0xc9, 0x5e, 0xe9, + 0x14, 0x1c, 0xf9, 0xba, 0x4d, 0xf9, 0xba, 0x49, 0xe6, 0xd3, 0xf1, 0xe5, 0xc5, 0xe5, 0x33, 0xd2, + 0xef, 0x28, 0x30, 0x11, 0xfd, 0x1a, 0x09, 0xe9, 0x90, 0x54, 0x21, 0xbd, 0xab, 0x1d, 0xc3, 0x23, + 0xaf, 0xb3, 0x94, 0xd7, 0xcb, 0xe4, 0x62, 0xe7, 0xbc, 0xda, 0xe4, 0x4b, 0x0a, 0x0c, 0x7a, 0x9f, + 0x77, 0x21, 0xa7, 0xda, 0x92, 0x15, 0xf1, 0xec, 0x4d, 0xf6, 0x74, 0x4a, 0x28, 0x64, 0x21, 0x4f, + 0x59, 0xb8, 0x44, 0x2e, 0x48, 0xb1, 0xe0, 0x7b, 0xb8, 0x26, 0xf7, 0x88, 0xfe, 0x7c, 0x4c, 0xbe, + 0xa0, 0xc0, 0x90, 0xef, 0x81, 0x1a, 0x92, 0x8e, 0x18, 0x21, 0x90, 0x33, 0x69, 0xc1, 0x90, 0x89, + 0x8b, 0x94, 0x89, 0xd3, 0xe4, 0x64, 0x7a, 0x26, 0x6c, 0xf2, 0xfb, 0x0a, 0x0c, 0x78, 0xde, 0x4b, + 0x20, 0x27, 0xdb, 0xbb, 0x8d, 0xd0, 0x3b, 0x0f, 0xd9, 0x53, 0xe9, 0x80, 0x90, 0xee, 0xe3, 0x94, + 0xee, 0xa3, 0xe4, 0x48, 0xdb, 0x10, 0x06, 0x0f, 0xea, 0xc8, 0xe7, 0x14, 0x00, 0xcf, 0xdb, 0x18, + 0xd3, 0x29, 0x86, 0xe5, 0xa4, 0x9e, 0x4c, 0x05, 0x83, 0x94, 0x5e, 0xa2, 0x94, 0x9e, 0x21, 0xa7, + 0x64, 0x29, 0xf5, 0xad, 0xe1, 0x2f, 0x28, 0x30, 0x12, 0x78, 0x96, 0x42, 0xc2, 0x89, 0x44, 0x3f, + 0xa9, 0x21, 0xe1, 0x44, 0x62, 0x5e, 0xc0, 0x50, 0x4f, 0x53, 0x26, 0x72, 0xe4, 0x58, 0x5b, 0x26, + 0xd6, 0x9a, 0xa6, 0x59, 0xe4, 0x73, 0xfe, 0x95, 0xf0, 0x9b, 0x24, 0x67, 0x52, 0xd2, 0x20, 0x1f, + 0x21, 0x46, 0x3f, 0x74, 0x91, 0x22, 0xd8, 0xf5, 0x90, 0xee, 0x93, 0xc1, 0x17, 0x15, 0x18, 0xf2, + 0x05, 0xd2, 0x12, 0x8b, 0x34, 0x32, 0x66, 0x3f, 0x93, 0x16, 0x2c, 0x4d, 0x48, 0x45, 0x59, 0xb0, + 0x38, 0xac, 0x8f, 0x81, 0xb7, 0x15, 0x18, 0x0d, 0xd6, 0xf7, 0x4a, 0xb8, 0xee, 0x98, 0x07, 0x2e, + 0x24, 0x5c, 0x77, 0xdc, 0x63, 0x09, 0xea, 0x2d, 0xca, 0xc9, 0x75, 0x32, 0x2b, 0xc7, 0x89, 0x6f, + 0x2d, 0xe4, 0x1e, 0xf9, 0xce, 0x8f, 0x1e, 0x93, 0xff, 0x52, 0x60, 0x32, 0xee, 0xa9, 0x04, 0xd2, + 0x7e, 0xe3, 0xd7, 0xe6, 0x75, 0x8d, 0xec, 0xcc, 0x16, 0x30, 0x20, 0xbb, 0xf7, 0x28, 0xbb, 0x77, + 0xc8, 0x52, 0x27, 0xec, 0x22, 0xab, 0x22, 0x04, 0xe3, 0xf7, 0x8f, 0x8f, 0xc9, 0xb7, 0xdd, 0x0d, + 0x4c, 0xe8, 0xad, 0x13, 0x99, 0x0d, 0x4c, 0xdc, 0x3b, 0x2d, 0x32, 0x1b, 0x98, 0xd8, 0xc7, 0x55, + 0x52, 0xb3, 0x59, 0x5c, 0xdd, 0xc4, 0x32, 0xbe, 0x44, 0xf9, 0x7e, 0x45, 0x81, 0xd1, 0xe0, 0xe3, + 0xaa, 0x12, 0x6a, 0x1b, 0xf3, 0xe4, 0x6b, 0xf6, 0x7c, 0x07, 0x90, 0xc8, 0xe0, 0x05, 0xca, 0xe0, + 0x29, 0x32, 0x9d, 0xc4, 0x20, 0x17, 0x61, 0x80, 0x8b, 0xef, 0x28, 0xb0, 0xb7, 0xb5, 0x1e, 0x56, + 0x1a, 0x5a, 0xcd, 0x36, 0xf4, 0xda, 0x13, 0x5d, 0x85, 0xf2, 0xf2, 0x72, 0x38, 0xb9, 0x45, 0x89, + 0xf5, 0xf8, 0xf7, 0xa8, 0x96, 0xfe, 0x1a, 0x2d, 0x49, 0xb5, 0x8c, 0x7c, 0x38, 0x43, 0x52, 0x2d, + 0xa3, 0x9f, 0xcb, 0x90, 0xdb, 0xf9, 0x30, 0xcf, 0x1b, 0x2c, 0x45, 0xf3, 0x99, 0xcf, 0xff, 0x50, + 0x60, 0x32, 0xee, 0x6d, 0x0e, 0x09, 0x3b, 0xd3, 0xe6, 0x71, 0x10, 0x09, 0x3b, 0xd3, 0xee, 0x61, + 0x10, 0x75, 0x91, 0x72, 0x3a, 0x4f, 0xe6, 0x24, 0xcf, 0xa8, 0x92, 0xf9, 0xfd, 0x86, 0x02, 0x63, + 0x11, 0x27, 0x62, 0xe4, 0x62, 0x0a, 0x42, 0x43, 0xbe, 0xef, 0x52, 0x67, 0xc0, 0xc8, 0xe0, 0x1c, + 0x65, 0xf0, 0x0a, 0xb9, 0x24, 0xc9, 0x60, 0xb4, 0x1f, 0xfc, 0x77, 0x05, 0x26, 0xa2, 0x4b, 0xb4, + 0x25, 0x36, 0x44, 0x89, 0x6f, 0x04, 0x48, 0x6c, 0x88, 0x92, 0x6b, 0xc3, 0xd5, 0x97, 0x28, 0x87, + 0xb7, 0xc8, 0x42, 0x1a, 0x0e, 0x93, 0xd7, 0xe3, 0x2f, 0x66, 0x60, 0x5f, 0x72, 0x65, 0x38, 0x99, + 0x4f, 0xe9, 0xe3, 0xe2, 0xd8, 0xbf, 0xb1, 0x65, 0x3c, 0x38, 0x0d, 0x1f, 0xa7, 0xd3, 0x70, 0x8f, + 0x2c, 0x77, 0x3e, 0x0d, 0xf1, 0x7e, 0xf3, 0x7f, 0x7d, 0x0b, 0x39, 0xe0, 0x3d, 0xaf, 0xa5, 0x55, + 0xd0, 0x90, 0x0f, 0x9d, 0xd9, 0x02, 0x86, 0x2d, 0xb1, 0x2f, 0xe9, 0x4f, 0xbf, 0xaf, 0xc0, 0xfe, + 0xa0, 0x16, 0x06, 0xfd, 0xd1, 0x13, 0x5f, 0x07, 0x69, 0x67, 0x20, 0x95, 0x87, 0xfa, 0x33, 0x05, + 0x76, 0x85, 0x8a, 0x81, 0x25, 0x0e, 0x4a, 0xe3, 0xca, 0xfa, 0x25, 0x0e, 0x4a, 0x63, 0x6b, 0x8f, + 0xd5, 0x33, 0x94, 0xd3, 0xe3, 0x64, 0x4a, 0xd6, 0x68, 0x23, 0xb9, 0x5f, 0x53, 0x60, 0x34, 0x54, + 0x8e, 0x7e, 0x2e, 0x35, 0x21, 0xf2, 0x71, 0x44, 0x5c, 0x4d, 0xb2, 0xdc, 0x09, 0x48, 0x98, 0x03, + 0x9f, 0x4d, 0xfe, 0x8e, 0x02, 0x7b, 0x62, 0xaa, 0x88, 0x25, 0x6e, 0x7f, 0x92, 0x6b, 0x98, 0xb3, + 0xd7, 0x3a, 0x47, 0x80, 0x2c, 0x2e, 0x50, 0x16, 0x67, 0xc9, 0x4c, 0x2a, 0x16, 0xb9, 0xc9, 0xf1, + 0x71, 0xfa, 0xb7, 0x0a, 0x8c, 0x47, 0x95, 0x7d, 0x91, 0x4b, 0x29, 0x02, 0xd3, 0x50, 0xfd, 0x73, + 0xf6, 0x72, 0x87, 0xd0, 0x69, 0x8e, 0x27, 0x44, 0x43, 0x70, 0x41, 0xfd, 0x91, 0x02, 0x63, 0xfc, + 0xfc, 0xdc, 0x53, 0x7c, 0x26, 0x71, 0x12, 0x14, 0xae, 0x62, 0x93, 0x38, 0x09, 0x8a, 0xa8, 0x6f, + 0x93, 0x3b, 0x09, 0xaa, 0x52, 0xc0, 0x22, 0x2d, 0x29, 0x23, 0xbf, 0xa3, 0x40, 0xbf, 0x28, 0x5a, + 0x23, 0x27, 0xda, 0x8e, 0x1a, 0xac, 0x7c, 0xcb, 0x4e, 0xa7, 0x01, 0x41, 0x32, 0x8f, 0x51, 0x32, + 0x9f, 0x23, 0x87, 0x93, 0xc8, 0xac, 0x0b, 0xaa, 0xfe, 0x46, 0x81, 0xb1, 0x88, 0xba, 0x69, 0x92, + 0xe6, 0xa2, 0x29, 0x44, 0xf7, 0xa5, 0xce, 0x80, 0xd3, 0x1c, 0xbb, 0x0b, 0x0e, 0x42, 0xaa, 0xf2, + 0x9f, 0x0a, 0x64, 0xe3, 0x2b, 0xb3, 0x49, 0xbe, 0x03, 0xda, 0x02, 0xe5, 0xef, 0xd9, 0xd9, 0x2d, + 0xe1, 0x48, 0xb3, 0xe2, 0x63, 0xd9, 0xf4, 0xad, 0xf8, 0x5f, 0xc9, 0xc0, 0x21, 0x89, 0xca, 0x68, + 0x72, 0x2b, 0x05, 0xdd, 0xed, 0xde, 0x00, 0xc8, 0x2e, 0x6e, 0x0f, 0x32, 0x9c, 0x8d, 0x65, 0x3a, + 0x1b, 0x4b, 0xe4, 0x56, 0xa2, 0x79, 0x10, 0x09, 0x25, 0x72, 0xf3, 0xf2, 0x0f, 0x0a, 0x8c, 0x45, + 0xd4, 0x4a, 0x4b, 0x28, 0x77, 0x7c, 0xa1, 0xb7, 0x84, 0x72, 0x27, 0x54, 0x79, 0xab, 0xd7, 0x29, + 0x9f, 0x57, 0xc9, 0xe5, 0x44, 0xa9, 0x8b, 0xa7, 0x5a, 0x3c, 0x8f, 0xd7, 0xf8, 0x38, 0xfb, 0x96, + 0x02, 0x7b, 0x62, 0xca, 0xa9, 0x25, 0xbc, 0x59, 0x72, 0x5d, 0xb8, 0x84, 0x37, 0x6b, 0x53, 0x14, + 0x2e, 0x7b, 0x65, 0xe1, 0x22, 0x89, 0x65, 0xf1, 0x3d, 0x05, 0x26, 0xa2, 0xeb, 0xae, 0x25, 0x82, + 0xc7, 0xc4, 0xf2, 0x71, 0x89, 0xe0, 0x31, 0xb9, 0x76, 0x5c, 0xbd, 0x49, 0xf9, 0xcb, 0x93, 0x6b, + 0xa9, 0xa4, 0x88, 0xef, 0xfd, 0x84, 0x04, 0x19, 0x53, 0x30, 0x2e, 0x21, 0xc8, 0xe4, 0xd7, 0x33, + 0x24, 0x04, 0xd9, 0xa6, 0x56, 0x5d, 0x4e, 0x90, 0x2c, 0x1b, 0x8f, 0xa7, 0x75, 0x47, 0x1d, 0xaf, + 0xed, 0x0a, 0x97, 0xb4, 0x4a, 0x1e, 0x2b, 0x45, 0x54, 0x62, 0x4b, 0x04, 0xc3, 0xb1, 0x05, 0xd5, + 0xea, 0x59, 0xca, 0xd0, 0x09, 0x92, 0x4b, 0x62, 0x28, 0xa2, 0x96, 0x95, 0xfc, 0x9d, 0x02, 0x93, + 0x77, 0x5b, 0xd5, 0xb1, 0x1f, 0x0a, 0x66, 0xa4, 0x12, 0x3a, 0xbc, 0x75, 0xc3, 0x41, 0xa6, 0xbe, + 0xc6, 0xab, 0x2a, 0xfc, 0x65, 0xd5, 0x12, 0x06, 0x32, 0xbe, 0x58, 0x5c, 0xc2, 0x40, 0x26, 0x54, + 0x91, 0xab, 0xe7, 0x29, 0x4f, 0x27, 0xc9, 0x09, 0x69, 0x01, 0xf1, 0xe2, 0x67, 0xf2, 0xae, 0x02, + 0x13, 0xd1, 0xd5, 0xae, 0x12, 0x16, 0x23, 0xb1, 0xce, 0x56, 0xc2, 0x62, 0x24, 0x97, 0xd9, 0xaa, + 0x37, 0x28, 0x5b, 0x33, 0xe4, 0x6a, 0x12, 0x5b, 0xbe, 0xe2, 0x53, 0x6f, 0xd9, 0xad, 0x27, 0x3d, + 0xc2, 0x15, 0x59, 0x44, 0xad, 0xa9, 0x84, 0xc8, 0xe2, 0xab, 0x63, 0x25, 0x44, 0x96, 0x50, 0x36, + 0x2b, 0x27, 0xb2, 0xc8, 0xc2, 0x5a, 0xf2, 0x96, 0x02, 0xbb, 0x42, 0x15, 0x92, 0x12, 0xcb, 0x29, + 0xae, 0x78, 0x56, 0x62, 0x39, 0xc5, 0x16, 0x64, 0xca, 0x1d, 0xfe, 0x85, 0x4b, 0x36, 0x73, 0x8f, + 0x3c, 0xe5, 0xba, 0x8f, 0xc9, 0x3f, 0x2b, 0xb0, 0x27, 0xa6, 0x68, 0x50, 0xc2, 0xa2, 0x27, 0x17, + 0x6c, 0x4a, 0x58, 0xf4, 0x36, 0xf5, 0x8a, 0x72, 0x36, 0x83, 0xff, 0xe7, 0x53, 0x11, 0x25, 0x8d, + 0xe4, 0x5f, 0x14, 0xd8, 0x1b, 0x5b, 0x18, 0x48, 0x66, 0xd2, 0x68, 0x52, 0x64, 0xe1, 0x62, 0x36, + 0xbf, 0x15, 0x14, 0x69, 0xd2, 0x0d, 0x7c, 0x2a, 0x49, 0x8b, 0xe0, 0xdd, 0x7d, 0x9b, 0x4d, 0x3e, + 0xab, 0xc0, 0xb0, 0xbf, 0xe0, 0x30, 0x79, 0xf3, 0x16, 0x59, 0xb6, 0x98, 0xbc, 0x79, 0x8b, 0xae, + 0x67, 0x54, 0x4f, 0x51, 0xb2, 0xa7, 0xc8, 0x0b, 0x89, 0x7b, 0x4c, 0xc3, 0xb1, 0x8a, 0xac, 0x52, + 0xd0, 0xa0, 0xc4, 0xbd, 0xad, 0xe0, 0x0b, 0x29, 0xa1, 0xa2, 0x40, 0x89, 0x95, 0x14, 0x57, 0x8e, + 0x28, 0xb1, 0x92, 0x62, 0x6b, 0x10, 0xe5, 0xb2, 0x6e, 0x18, 0x0b, 0x22, 0x16, 0xca, 0x3d, 0xf2, + 0x55, 0x3f, 0xd2, 0xe8, 0x7d, 0x22, 0xba, 0xc8, 0x50, 0xc2, 0x9c, 0x27, 0x16, 0x38, 0x4a, 0x98, + 0xf3, 0xe4, 0xea, 0x46, 0xb9, 0xd3, 0x8c, 0x75, 0x81, 0xa3, 0xe8, 0x2b, 0x85, 0xa4, 0xfb, 0x92, + 0x88, 0xc7, 0x28, 0x24, 0x6c, 0x78, 0xfc, 0xfb, 0x17, 0x12, 0x36, 0x3c, 0xe1, 0xfd, 0x0b, 0xb9, + 0x7d, 0x89, 0xf7, 0x85, 0x8c, 0xa2, 0xb5, 0x86, 0x0e, 0xd8, 0xf6, 0x78, 0xa7, 0x7f, 0x55, 0x60, + 0x6f, 0xec, 0xbb, 0x17, 0x12, 0xc6, 0xa1, 0xdd, 0xe3, 0x1a, 0x12, 0xc6, 0xa1, 0xed, 0xb3, 0x1b, + 0xea, 0x0c, 0xe5, 0xf5, 0x22, 0x39, 0x9f, 0x18, 0xd4, 0x46, 0x30, 0x5a, 0x14, 0x0f, 0xfe, 0xbc, + 0xa9, 0xc0, 0x68, 0xb0, 0x58, 0x52, 0xe2, 0x6c, 0x34, 0xa6, 0x04, 0x34, 0x7b, 0xbe, 0x03, 0xc8, + 0x34, 0xcc, 0xb4, 0xfe, 0x4f, 0x3a, 0x04, 0xf7, 0xed, 0x41, 0xbe, 0xac, 0xc0, 0x78, 0x44, 0xed, + 0xa1, 0x4c, 0x8e, 0x58, 0x54, 0xad, 0xa4, 0x44, 0xfa, 0x49, 0x64, 0xb5, 0xa4, 0xdc, 0xed, 0xf7, + 0x2a, 0x05, 0xe5, 0x65, 0xb0, 0xe2, 0xb0, 0xfa, 0xd7, 0x33, 0x70, 0xb0, 0x6d, 0x15, 0x1c, 0x59, + 0x48, 0x7d, 0x6b, 0x10, 0x57, 0x5e, 0x99, 0x7d, 0x71, 0x3b, 0x50, 0x21, 0xe3, 0x3f, 0x4a, 0x19, + 0x7f, 0x85, 0xdc, 0x4b, 0x77, 0x19, 0x55, 0x6a, 0x21, 0x4c, 0xbc, 0x8d, 0xf8, 0x9e, 0x02, 0x6a, + 0xfb, 0xca, 0x24, 0xf2, 0xa2, 0xa4, 0x12, 0x4a, 0x54, 0x4b, 0x65, 0x6f, 0x6d, 0x0b, 0xae, 0x34, + 0x21, 0x8b, 0x46, 0x31, 0xb1, 0xcb, 0x99, 0xa2, 0xeb, 0xd9, 0x5b, 0x65, 0x52, 0xe4, 0x2f, 0x15, + 0x18, 0x0d, 0xd6, 0x39, 0xc9, 0xa4, 0x14, 0x47, 0x57, 0x55, 0xc9, 0xa4, 0x14, 0xc7, 0x14, 0x55, + 0xc9, 0x25, 0x89, 0x69, 0xec, 0x8c, 0xcb, 0x76, 0xc1, 0x59, 0x5d, 0x4f, 0xee, 0x11, 0xd6, 0x2a, + 0x3d, 0x26, 0xdf, 0x54, 0x80, 0x84, 0x4b, 0x6f, 0x24, 0x92, 0x1f, 0x62, 0x6b, 0xa6, 0x24, 0x92, + 0x1f, 0xe2, 0x2b, 0xa3, 0xe4, 0x32, 0xad, 0xb0, 0x38, 0xc9, 0x8b, 0x80, 0xb3, 0xd4, 0x78, 0xec, + 0x61, 0xee, 0x6d, 0x05, 0xc6, 0x22, 0xaa, 0x9d, 0x48, 0x27, 0x14, 0xa6, 0x70, 0x8c, 0x09, 0x05, + 0x56, 0x72, 0x27, 0x20, 0x11, 0xfc, 0xd9, 0x2d, 0x06, 0xf3, 0xeb, 0x5f, 0x7d, 0x77, 0x9f, 0xf2, + 0xd6, 0xbb, 0xfb, 0x94, 0x6f, 0xbd, 0xbb, 0x4f, 0xf9, 0xe5, 0xf7, 0xf6, 0xed, 0x78, 0xeb, 0xbd, + 0x7d, 0x3b, 0xfe, 0xf1, 0xbd, 0x7d, 0x3b, 0x5e, 0xbb, 0x5d, 0x31, 0x9c, 0xf5, 0xe6, 0xea, 0x54, + 0xc9, 0xaa, 0xe6, 0x16, 0x38, 0xfe, 0x45, 0x6d, 0xd5, 0x6e, 0x8d, 0x76, 0xac, 0x64, 0x35, 0x74, + 0xef, 0xcf, 0x75, 0xcd, 0xa8, 0xe1, 0x45, 0x83, 0xdd, 0x22, 0xc5, 0xd9, 0xac, 0xeb, 0xf6, 0x6a, + 0x2f, 0xfd, 0x6f, 0xae, 0x4f, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0xe4, 0x86, 0x01, + 0xdc, 0x7b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7159,6 +7423,8 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { + L3DerivativeOrderBook(ctx context.Context, in *QueryFullDerivativeOrderbookRequest, opts ...grpc.CallOption) (*QueryFullDerivativeOrderbookResponse, error) + L3SpotOrderBook(ctx context.Context, in *QueryFullSpotOrderbookRequest, opts ...grpc.CallOption) (*QueryFullSpotOrderbookResponse, error) // Retrieves exchange params QueryExchangeParams(ctx context.Context, in *QueryExchangeParamsRequest, opts ...grpc.CallOption) (*QueryExchangeParamsResponse, error) // Retrieves a Subaccount's Deposits @@ -7293,6 +7559,24 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } +func (c *queryClient) L3DerivativeOrderBook(ctx context.Context, in *QueryFullDerivativeOrderbookRequest, opts ...grpc.CallOption) (*QueryFullDerivativeOrderbookResponse, error) { + out := new(QueryFullDerivativeOrderbookResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/L3DerivativeOrderBook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) L3SpotOrderBook(ctx context.Context, in *QueryFullSpotOrderbookRequest, opts ...grpc.CallOption) (*QueryFullSpotOrderbookResponse, error) { + out := new(QueryFullSpotOrderbookResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/L3SpotOrderBook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) QueryExchangeParams(ctx context.Context, in *QueryExchangeParamsRequest, opts ...grpc.CallOption) (*QueryExchangeParamsResponse, error) { out := new(QueryExchangeParamsResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/QueryExchangeParams", in, out, opts...) @@ -7835,6 +8119,8 @@ func (c *queryClient) GrantAuthorizations(ctx context.Context, in *QueryGrantAut // QueryServer is the server API for Query service. type QueryServer interface { + L3DerivativeOrderBook(context.Context, *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) + L3SpotOrderBook(context.Context, *QueryFullSpotOrderbookRequest) (*QueryFullSpotOrderbookResponse, error) // Retrieves exchange params QueryExchangeParams(context.Context, *QueryExchangeParamsRequest) (*QueryExchangeParamsResponse, error) // Retrieves a Subaccount's Deposits @@ -7965,6 +8251,12 @@ type QueryServer interface { type UnimplementedQueryServer struct { } +func (*UnimplementedQueryServer) L3DerivativeOrderBook(ctx context.Context, req *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method L3DerivativeOrderBook not implemented") +} +func (*UnimplementedQueryServer) L3SpotOrderBook(ctx context.Context, req *QueryFullSpotOrderbookRequest) (*QueryFullSpotOrderbookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method L3SpotOrderBook not implemented") +} func (*UnimplementedQueryServer) QueryExchangeParams(ctx context.Context, req *QueryExchangeParamsRequest) (*QueryExchangeParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method QueryExchangeParams not implemented") } @@ -8150,6 +8442,42 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } +func _Query_L3DerivativeOrderBook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFullDerivativeOrderbookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).L3DerivativeOrderBook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/L3DerivativeOrderBook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).L3DerivativeOrderBook(ctx, req.(*QueryFullDerivativeOrderbookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_L3SpotOrderBook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFullSpotOrderbookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).L3SpotOrderBook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/L3SpotOrderBook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).L3SpotOrderBook(ctx, req.(*QueryFullSpotOrderbookRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_QueryExchangeParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryExchangeParamsRequest) if err := dec(in); err != nil { @@ -9234,6 +9562,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.exchange.v1beta1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "L3DerivativeOrderBook", + Handler: _Query_L3DerivativeOrderBook_Handler, + }, + { + MethodName: "L3SpotOrderBook", + Handler: _Query_L3SpotOrderBook_Handler, + }, { MethodName: "QueryExchangeParams", Handler: _Query_QueryExchangeParams_Handler, @@ -14394,7 +14730,7 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryFullSpotOrderbookRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14404,12 +14740,12 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, return dAtA[:n], nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14424,7 +14760,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryFullSpotOrderbookResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14434,30 +14770,48 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte return dAtA[:n], nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullSpotOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - { - size := m.Multiplier.Size() - i -= size - if _, err := m.Multiplier.MarshalTo(dAtA[i:]); err != nil { - return 0, err + if len(m.Asks) > 0 { + for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Asks[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Bids) > 0 { + for iNdEx := len(m.Bids) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Bids[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa } - i = encodeVarintQuery(dAtA, i, uint64(size)) } - i-- - dAtA[i] = 0xa return len(dAtA) - i, nil } -func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryFullDerivativeOrderbookRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14467,22 +14821,223 @@ func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryActiveStakeGrantRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryFullDerivativeOrderbookRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryActiveStakeGrantRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryFullDerivativeOrderbookRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Grantee) > 0 { - i -= len(m.Grantee) - copy(dAtA[i:], m.Grantee) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) - i-- - dAtA[i] = 0xa + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryFullDerivativeOrderbookResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryFullDerivativeOrderbookResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryFullDerivativeOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Asks) > 0 { + for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Asks[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Bids) > 0 { + for iNdEx := len(m.Bids) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Bids[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *TrimmedLimitOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TrimmedLimitOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TrimmedLimitOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.SubaccountId) > 0 { + i -= len(m.SubaccountId) + copy(dAtA[i:], m.SubaccountId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.SubaccountId))) + i-- + dAtA[i] = 0x22 + } + if len(m.OrderHash) > 0 { + i -= len(m.OrderHash) + copy(dAtA[i:], m.OrderHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.OrderHash))) + i-- + dAtA[i] = 0x1a + } + { + size := m.Quantity.Size() + i -= size + if _, err := m.Quantity.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.Price.Size() + i -= size + if _, err := m.Price.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Multiplier.Size() + i -= size + if _, err := m.Multiplier.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActiveStakeGrantRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActiveStakeGrantRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -16683,7 +17238,7 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Size() (n int) { return n } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { +func (m *QueryFullSpotOrderbookRequest) Size() (n int) { if m == nil { return 0 } @@ -16696,95 +17251,184 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { return n } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Size() (n int) { +func (m *QueryFullSpotOrderbookResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.Multiplier.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Bids) > 0 { + for _, e := range m.Bids { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if len(m.Asks) > 0 { + for _, e := range m.Asks { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } return n } -func (m *QueryActiveStakeGrantRequest) Size() (n int) { +func (m *QueryFullDerivativeOrderbookRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Grantee) + l = len(m.MarketId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryActiveStakeGrantResponse) Size() (n int) { +func (m *QueryFullDerivativeOrderbookResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Grant != nil { - l = m.Grant.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Bids) > 0 { + for _, e := range m.Bids { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } } - if m.EffectiveGrant != nil { - l = m.EffectiveGrant.Size() - n += 1 + l + sovQuery(uint64(l)) + if len(m.Asks) > 0 { + for _, e := range m.Asks { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } } return n } -func (m *QueryGrantAuthorizationRequest) Size() (n int) { +func (m *TrimmedLimitOrder) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) + l = m.Price.Size() + n += 1 + l + sovQuery(uint64(l)) + l = m.Quantity.Size() + n += 1 + l + sovQuery(uint64(l)) + l = len(m.OrderHash) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - l = len(m.Grantee) + l = len(m.SubaccountId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryGrantAuthorizationResponse) Size() (n int) { +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.Amount.Size() + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Multiplier.Size() n += 1 + l + sovQuery(uint64(l)) return n } -func (m *QueryGrantAuthorizationsRequest) Size() (n int) { +func (m *QueryActiveStakeGrantRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) + l = len(m.Grantee) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryGrantAuthorizationsResponse) Size() (n int) { +func (m *QueryActiveStakeGrantResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.TotalGrantAmount.Size() + if m.Grant != nil { + l = m.Grant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + if m.EffectiveGrant != nil { + l = m.EffectiveGrant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Amount.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryGrantAuthorizationsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.TotalGrantAmount.Size() n += 1 + l + sovQuery(uint64(l)) if len(m.Grants) > 0 { for _, e := range m.Grants { @@ -29814,6 +30458,588 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) } return nil } +func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TrimmedLimitOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TrimmedLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/reclamation.go b/chain/exchange/types/reclamation.go deleted file mode 100644 index e1d7d3f0..00000000 --- a/chain/exchange/types/reclamation.go +++ /dev/null @@ -1,41 +0,0 @@ -package types - -import ( - "fmt" - - sdksecp256k1 "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - - "github.com/InjectiveLabs/sdk-go/chain/crypto/ethsecp256k1" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func ValidateFundsReclaimSignature( - lockedAccountPubKey, signature []byte, -) error { - // validate the signature of the locked account - lockedPubKey := sdksecp256k1.PubKey{ - Key: lockedAccountPubKey, - } - - correctPubKey := ethsecp256k1.PubKey{ - Key: lockedAccountPubKey, - } - - lockedAddress := sdk.AccAddress(lockedPubKey.Address()) - recipient := sdk.AccAddress(correctPubKey.Address()) - - signMessage := ConstructFundsReclaimMessage(recipient, lockedAddress) - - if !lockedPubKey.VerifySignature(signMessage, signature) { - return ErrInvalidSignature - } - return nil -} - -func ConstructFundsReclaimMessage( - recipient, signer sdk.AccAddress, -) []byte { - message := fmt.Sprintf("I authorize %s to reclaim my funds from locked account %s on Injective", recipient.String(), signer.String()) - return []byte(message) -} diff --git a/chain/exchange/types/spot_orders.go b/chain/exchange/types/spot_orders.go index ac5b243e..f7e34d45 100644 --- a/chain/exchange/types/spot_orders.go +++ b/chain/exchange/types/spot_orders.go @@ -24,6 +24,14 @@ func (o *SpotOrder) ToSpotMarketOrder(sender sdk.AccAddress, balanceHold math.Le TriggerPrice: o.TriggerPrice, } } +func (m *SpotLimitOrder) ToStandardized() *TrimmedLimitOrder { + return &TrimmedLimitOrder{ + Price: m.OrderInfo.Price, + Quantity: m.OrderInfo.Quantity, + OrderHash: common.BytesToHash(m.OrderHash).Hex(), + SubaccountId: m.OrderInfo.SubaccountId, + } +} func (o *SpotOrder) GetNewSpotLimitOrder(sender sdk.AccAddress, orderHash common.Hash) *SpotLimitOrder { if o.OrderInfo.FeeRecipient == "" { @@ -143,7 +151,9 @@ func (m *SpotLimitOrder) GetUnfilledFeeAmount(fee math.LegacyDec) math.LegacyDec return m.GetUnfilledNotional().Mul(fee) } -func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (balanceHold math.LegacyDec, denom string) { +func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (math.LegacyDec, string) { + var denom string + var balanceHold math.LegacyDec if m.IsBuy() { denom = market.QuoteDenom if m.OrderType.IsPostOnly() { @@ -165,7 +175,9 @@ func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (balanceHol return balanceHold, denom } -func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (balanceHold math.LegacyDec, denom string) { +func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (math.LegacyDec, string) { + var denom string + var balanceHold math.LegacyDec if m.IsBuy() { var tradeFeeRate math.LegacyDec diff --git a/chain/exchange/types/tx.pb.go b/chain/exchange/types/tx.pb.go index 4a78fb8f..fb3514dd 100644 --- a/chain/exchange/types/tx.pb.go +++ b/chain/exchange/types/tx.pb.go @@ -638,6 +638,10 @@ type MsgInstantSpotMarketLaunch struct { // min_notional defines the minimum notional (in quote asset) required for // orders in the market MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // base token decimals + BaseDecimals uint32 `protobuf:"varint,8,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + // quote token decimals + QuoteDecimals uint32 `protobuf:"varint,9,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` } func (m *MsgInstantSpotMarketLaunch) Reset() { *m = MsgInstantSpotMarketLaunch{} } @@ -3674,254 +3678,256 @@ func init() { } var fileDescriptor_bd45b74cb6d81462 = []byte{ - // 3942 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0xc7, - 0x95, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x29, 0x89, 0x6a, 0x52, 0xe2, 0x70, 0xf8, 0x93, 0x9a, 0x92, - 0xf5, 0x27, 0xf5, 0xff, 0x8c, 0x56, 0x96, 0xf8, 0x91, 0x6c, 0xae, 0x45, 0x4b, 0x1e, 0xca, 0xbb, - 0xde, 0x85, 0xbd, 0x83, 0x66, 0x4f, 0x71, 0xd8, 0xe6, 0x4c, 0xf7, 0xa8, 0xbb, 0x47, 0x12, 0x8d, - 0x05, 0xd6, 0xeb, 0xc3, 0x42, 0xfb, 0xc1, 0x62, 0x17, 0x58, 0x60, 0x81, 0x05, 0x0c, 0x18, 0x58, - 0x20, 0x06, 0x9c, 0x20, 0x91, 0x83, 0x20, 0xf0, 0x21, 0x3f, 0x04, 0x39, 0x18, 0x3e, 0x29, 0x01, - 0x02, 0x04, 0x39, 0x28, 0x81, 0x7d, 0xb0, 0xe1, 0x53, 0x90, 0x4b, 0x80, 0xe4, 0x12, 0x74, 0x55, - 0x75, 0x4d, 0x7f, 0xaa, 0xba, 0x7b, 0x46, 0xa4, 0x2d, 0x07, 0xbe, 0x48, 0xec, 0xaa, 0xf7, 0x5e, - 0xbd, 0xf7, 0xea, 0x7d, 0xaa, 0x5e, 0x55, 0x0d, 0x4c, 0xe9, 0xc6, 0xeb, 0x48, 0x73, 0xf4, 0xbb, - 0x68, 0x06, 0xdd, 0xd7, 0xd6, 0x54, 0xa3, 0x82, 0x66, 0xee, 0x9e, 0x5c, 0x41, 0x8e, 0x7a, 0x72, - 0xc6, 0xb9, 0x3f, 0x5d, 0xb7, 0x4c, 0xc7, 0x94, 0xf3, 0x0c, 0x68, 0xda, 0x03, 0x9a, 0xa6, 0x40, - 0xf9, 0x09, 0xcd, 0xb4, 0x6b, 0xa6, 0x3d, 0xb3, 0xa2, 0xda, 0x4d, 0x4c, 0xcd, 0xd4, 0x0d, 0x82, - 0x9b, 0x9f, 0xa6, 0xfd, 0x65, 0xdd, 0x76, 0x2c, 0x7d, 0xa5, 0xe1, 0xe8, 0xa6, 0xc1, 0xe0, 0xfc, - 0x8d, 0x14, 0x7e, 0x98, 0xc2, 0xd7, 0xec, 0xca, 0xcc, 0xdd, 0x93, 0xee, 0x7f, 0xb4, 0x63, 0x84, - 0x74, 0x94, 0xf0, 0xd7, 0x0c, 0xf9, 0xa0, 0x5d, 0x43, 0x15, 0xb3, 0x62, 0x92, 0x76, 0xf7, 0x2f, - 0xda, 0x7a, 0x38, 0x46, 0x34, 0x26, 0x06, 0x01, 0x3d, 0xd0, 0x04, 0x35, 0x2d, 0x55, 0xab, 0x36, - 0x01, 0xc9, 0x27, 0x05, 0xdb, 0xa5, 0xd6, 0x74, 0xc3, 0x9c, 0xc1, 0xff, 0x92, 0x26, 0xe5, 0xdd, - 0x0c, 0x0c, 0x2e, 0xd9, 0x95, 0x97, 0xeb, 0x65, 0xd5, 0x41, 0xcb, 0x75, 0xd3, 0x59, 0x52, 0xad, - 0x75, 0xe4, 0xc8, 0x43, 0xd0, 0xa5, 0x96, 0x6b, 0xba, 0x91, 0x93, 0xf6, 0x4a, 0x87, 0x7a, 0x8b, - 0xe4, 0x43, 0x1e, 0x85, 0xde, 0x1a, 0xee, 0x2f, 0xe9, 0xe5, 0x5c, 0x07, 0xee, 0xe9, 0x21, 0x0d, - 0x8b, 0x65, 0x79, 0x1c, 0xc0, 0x40, 0xf7, 0x4a, 0x8e, 0xae, 0xad, 0x23, 0x2b, 0x97, 0xc1, 0xbd, - 0xbd, 0x06, 0xba, 0x77, 0x1b, 0x37, 0xc8, 0x7f, 0x07, 0xc3, 0x6e, 0x77, 0x4d, 0x37, 0x4a, 0x75, - 0x4b, 0xd7, 0x10, 0x06, 0x2c, 0xd9, 0xfa, 0x1b, 0x28, 0xd7, 0xe9, 0xc2, 0xce, 0x4d, 0x7d, 0xf8, - 0x78, 0x72, 0xdb, 0xaf, 0x1f, 0x4f, 0x8e, 0x12, 0xdd, 0xd8, 0xe5, 0xf5, 0x69, 0xdd, 0x9c, 0xa9, - 0xa9, 0xce, 0xda, 0xf4, 0x0d, 0x54, 0x51, 0xb5, 0x8d, 0x05, 0xa4, 0x15, 0x07, 0x0d, 0x74, 0x6f, - 0x49, 0x37, 0x6e, 0xb9, 0x14, 0x5c, 0xc2, 0xcb, 0xfa, 0x1b, 0x48, 0x2e, 0x41, 0xde, 0x23, 0x7d, - 0xa7, 0xa1, 0x1a, 0x8e, 0xee, 0x6c, 0xf8, 0xa8, 0x77, 0xa5, 0xa7, 0xbe, 0x87, 0x50, 0x7f, 0x89, - 0x12, 0x61, 0x03, 0x2c, 0xc1, 0x80, 0x37, 0x80, 0x61, 0xba, 0x93, 0xad, 0x56, 0x73, 0xd9, 0xf4, - 0x64, 0x77, 0x10, 0xb2, 0x2f, 0x52, 0xd4, 0xc2, 0xe9, 0x07, 0xef, 0x4c, 0x6e, 0xfb, 0xec, 0x9d, - 0xc9, 0x6d, 0x6f, 0x7d, 0xfa, 0xf0, 0x08, 0x51, 0xed, 0xbf, 0x7d, 0xfa, 0xf0, 0xc8, 0x18, 0x9b, - 0x66, 0xce, 0x8c, 0x28, 0xe3, 0x30, 0xca, 0x69, 0x2e, 0x22, 0xbb, 0x6e, 0x1a, 0x36, 0x52, 0xfe, - 0xd0, 0x09, 0x23, 0xac, 0x7f, 0x01, 0x59, 0xfa, 0x5d, 0xd5, 0xb5, 0x87, 0xaf, 0xa7, 0x73, 0xcb, - 0xa7, 0x53, 0x7e, 0x15, 0x72, 0x2e, 0x39, 0xdd, 0xd0, 0x1d, 0x5d, 0xad, 0x96, 0x6a, 0xaa, 0x55, - 0xd1, 0x8d, 0x92, 0xa5, 0x3a, 0xba, 0x99, 0xeb, 0x4e, 0x4f, 0x76, 0xb7, 0x81, 0xee, 0x2d, 0x12, - 0x1a, 0x4b, 0x98, 0x44, 0xd1, 0xa5, 0x20, 0x97, 0x61, 0x0c, 0x33, 0xab, 0xea, 0x86, 0x83, 0x0c, - 0xd5, 0xd0, 0x50, 0x70, 0x84, 0x9e, 0xf4, 0x23, 0x8c, 0xb8, 0x8c, 0x37, 0xe9, 0xf8, 0x46, 0x29, - 0x5c, 0xe4, 0x9b, 0xa4, 0x12, 0x35, 0xc9, 0xb0, 0x6d, 0x29, 0x53, 0xb0, 0x4f, 0xd8, 0xc9, 0xcc, - 0xf3, 0x03, 0x09, 0x76, 0x32, 0xa8, 0x5b, 0xaa, 0xa5, 0xd6, 0x6c, 0xf9, 0x1c, 0xf4, 0xaa, 0x0d, - 0x67, 0xcd, 0xb4, 0x74, 0x67, 0x83, 0x18, 0xe6, 0x5c, 0xee, 0x17, 0xdf, 0x3b, 0x3e, 0x44, 0x63, - 0xe3, 0x6c, 0xb9, 0x6c, 0x21, 0xdb, 0x5e, 0x76, 0x2c, 0xdd, 0xa8, 0x14, 0x9b, 0xa0, 0xf2, 0x55, - 0xc8, 0xd6, 0x31, 0x05, 0x6c, 0xb3, 0x7d, 0xa7, 0x94, 0x69, 0x71, 0x7c, 0x9f, 0x26, 0x63, 0xcd, - 0x75, 0xba, 0xfa, 0x29, 0x52, 0xbc, 0xc2, 0x51, 0x57, 0xca, 0x26, 0x45, 0x57, 0xd2, 0x5c, 0x54, - 0x52, 0x82, 0xaa, 0x8c, 0xc0, 0x70, 0xa8, 0x89, 0x49, 0xf5, 0x1d, 0x09, 0x60, 0xc9, 0xae, 0x2c, - 0xa0, 0xba, 0x69, 0xeb, 0x8e, 0xbc, 0x07, 0xb2, 0x36, 0x32, 0xca, 0xc8, 0xa2, 0x6e, 0x46, 0xbf, - 0xe4, 0x29, 0xd8, 0x6e, 0x37, 0x56, 0x54, 0x4d, 0x33, 0x1b, 0x86, 0xcf, 0xd7, 0xfa, 0x9b, 0x8d, - 0x8b, 0x65, 0xf9, 0x3c, 0x64, 0xd5, 0x9a, 0xfb, 0x37, 0xf6, 0xb5, 0xbe, 0x53, 0x23, 0x34, 0xf3, - 0x4c, 0xbb, 0x99, 0x89, 0x89, 0x33, 0x6f, 0xea, 0x86, 0x27, 0x0c, 0x01, 0x2f, 0x1c, 0xf5, 0x4f, - 0x1d, 0x1d, 0xd2, 0x95, 0x68, 0xd0, 0x2f, 0x11, 0x65, 0x51, 0x19, 0x02, 0xb9, 0xf9, 0xc5, 0xe4, - 0x78, 0x5f, 0x82, 0xbe, 0x25, 0xbb, 0xf2, 0xb7, 0xba, 0xb3, 0x56, 0xb6, 0xd4, 0x7b, 0x5f, 0x92, - 0x20, 0xc7, 0x04, 0x82, 0x0c, 0xf9, 0x05, 0xf1, 0x78, 0x54, 0x76, 0xe3, 0xc4, 0xe5, 0x7d, 0x32, - 0x51, 0xbe, 0x2d, 0xe1, 0xe9, 0x9a, 0xb7, 0x10, 0x8d, 0x93, 0x37, 0xf4, 0x9a, 0xee, 0xdc, 0xb4, - 0x5c, 0xf6, 0x45, 0x62, 0xcd, 0x42, 0x97, 0xe9, 0x02, 0x50, 0x7b, 0x3a, 0x10, 0x67, 0x4f, 0x2e, - 0x49, 0x4c, 0x8d, 0x32, 0x4f, 0x30, 0x0b, 0x17, 0x04, 0xbc, 0xef, 0xf5, 0xf3, 0xce, 0x63, 0x4a, - 0x79, 0x15, 0x26, 0x05, 0x5d, 0x9e, 0x4c, 0x6e, 0x28, 0xc6, 0xa3, 0x94, 0xd6, 0x54, 0x7b, 0x8d, - 0xf2, 0xde, 0x8b, 0x5b, 0x9e, 0x57, 0xed, 0x35, 0x79, 0x00, 0x32, 0x1a, 0x9b, 0x0b, 0xf7, 0xcf, - 0x42, 0x8f, 0xc7, 0x8d, 0xf2, 0x03, 0x09, 0xc6, 0x97, 0xec, 0xca, 0x9c, 0xea, 0x68, 0x6b, 0xbc, - 0x31, 0x6c, 0xa1, 0x52, 0xe6, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, - 0xe1, 0x59, 0x81, 0x5a, 0x9e, 0xf1, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x5d, 0x09, 0x0e, 0xc4, 0x42, - 0x30, 0x1d, 0xed, 0x83, 0xfe, 0xa6, 0x8e, 0x90, 0x9d, 0x93, 0xf6, 0x66, 0x0e, 0xf5, 0x16, 0xfb, - 0x98, 0x96, 0x90, 0x2d, 0x4f, 0xc3, 0xa0, 0x86, 0x69, 0x94, 0x4b, 0x84, 0xbd, 0x92, 0xa6, 0x97, - 0x89, 0x78, 0xbd, 0xc5, 0x5d, 0xb4, 0x8b, 0x90, 0x9d, 0xd7, 0xcb, 0xb6, 0x7c, 0x0c, 0xe4, 0x55, - 0x55, 0xaf, 0x86, 0xc0, 0x33, 0x18, 0x7c, 0x80, 0xf4, 0x34, 0xa1, 0x7d, 0x3a, 0xff, 0x71, 0x06, - 0xf2, 0x4b, 0x76, 0x65, 0xd1, 0xb0, 0x1d, 0xd5, 0x70, 0x9a, 0xb9, 0xfa, 0x86, 0xda, 0x30, 0xb4, - 0x35, 0xa1, 0xc2, 0xf7, 0x40, 0x96, 0x26, 0x5b, 0x32, 0x93, 0xf4, 0xcb, 0x9d, 0x7d, 0xd7, 0x73, - 0x4a, 0x65, 0x64, 0x98, 0x35, 0x2f, 0x11, 0xbb, 0x2d, 0x0b, 0x6e, 0x83, 0x3c, 0x09, 0x7d, 0x77, - 0x1a, 0xa6, 0xe3, 0xf5, 0xe3, 0xe4, 0x5b, 0x04, 0xdc, 0x44, 0x00, 0x8a, 0x30, 0xc8, 0xcb, 0xd2, - 0x2d, 0xe4, 0xd1, 0x81, 0x5a, 0x38, 0x45, 0xbf, 0x02, 0x7b, 0x04, 0xe9, 0xb9, 0x85, 0x3c, 0xea, - 0xb2, 0x15, 0xc9, 0xcd, 0xd7, 0xa1, 0x3f, 0x90, 0x97, 0x5b, 0x48, 0xa0, 0x7d, 0x35, 0xdf, 0x1a, - 0xeb, 0x92, 0xc0, 0xf2, 0xa6, 0xfc, 0x96, 0x27, 0x98, 0x22, 0x65, 0x3f, 0x28, 0xe2, 0xde, 0x66, - 0xd4, 0xec, 0xc6, 0xae, 0x4b, 0xc1, 0x6e, 0x21, 0xab, 0x8e, 0x9c, 0x06, 0x4e, 0xde, 0xed, 0x4f, - 0x76, 0x68, 0x36, 0x33, 0x91, 0xd9, 0x9c, 0x84, 0x3e, 0xb2, 0xa6, 0x2f, 0xb9, 0x26, 0xe0, 0x4d, - 0x37, 0x69, 0x9a, 0x53, 0x3d, 0x47, 0xc0, 0x00, 0x18, 0x8b, 0xcc, 0x73, 0x91, 0x22, 0xbd, 0xe4, - 0x36, 0xb9, 0x8e, 0x40, 0x41, 0x6c, 0x4d, 0xad, 0xa2, 0xd2, 0xaa, 0xaa, 0x39, 0xa6, 0x85, 0xa7, - 0x6e, 0x7b, 0x71, 0x17, 0xe9, 0x5a, 0x76, 0x7b, 0xae, 0xe3, 0x0e, 0xf9, 0x1a, 0x1b, 0xd3, 0xd9, - 0xa8, 0x23, 0x3c, 0x25, 0x3b, 0x4e, 0xed, 0xf7, 0xc5, 0x03, 0xba, 0xcb, 0xf0, 0xa2, 0xc1, 0x4d, - 0xfc, 0x79, 0x7b, 0xa3, 0x8e, 0x3c, 0xce, 0xdc, 0xbf, 0xe5, 0x45, 0xd8, 0x51, 0x53, 0xd7, 0x91, - 0x55, 0x5a, 0x45, 0xc8, 0x5d, 0xbc, 0xa0, 0x56, 0xd6, 0x2e, 0xfd, 0x18, 0xf5, 0x3a, 0x42, 0x45, - 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0x2f, 0xc3, 0x10, 0x77, - 0xe5, 0x06, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0xd9, 0xf6, 0x1a, 0xe4, 0x84, 0x4b, 0xb6, 0xbe, 0x16, - 0x96, 0xb0, 0x35, 0xee, 0x7a, 0x4d, 0xe4, 0xd4, 0xfd, 0x5b, 0xe3, 0xd4, 0xdb, 0x37, 0xd9, 0xa9, - 0x77, 0xb4, 0xe9, 0xd4, 0x57, 0x05, 0x4e, 0x7d, 0x88, 0xe3, 0xd4, 0x5c, 0x7f, 0x54, 0x0e, 0xc3, - 0xc1, 0x04, 0x10, 0xe6, 0xde, 0xff, 0xda, 0x0d, 0x53, 0x4d, 0xd8, 0x39, 0xdd, 0x50, 0xad, 0x8d, - 0x9b, 0x75, 0x97, 0x13, 0xfb, 0x89, 0x5c, 0x7c, 0x0a, 0xb6, 0x7b, 0xde, 0xb7, 0x51, 0x5b, 0x31, - 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0x2e, 0xe3, 0x36, 0xf9, 0x20, 0xec, 0xa4, 0x40, 0x75, 0xcb, 0xbc, - 0xab, 0xbb, 0xd4, 0x89, 0xab, 0xef, 0x20, 0xcd, 0xb7, 0x68, 0x6b, 0xd8, 0x37, 0xbb, 0xda, 0xf4, - 0xcd, 0x56, 0x43, 0x42, 0xd4, 0x97, 0xbb, 0x37, 0xcf, 0x97, 0x7b, 0xda, 0xf5, 0xe5, 0x93, 0x30, - 0x84, 0xee, 0xd7, 0x75, 0xec, 0x65, 0x46, 0xc9, 0xd1, 0x6b, 0xc8, 0x76, 0xd4, 0x5a, 0x1d, 0x07, - 0x87, 0x4c, 0x71, 0xb0, 0xd9, 0x77, 0xdb, 0xeb, 0x72, 0x51, 0x6c, 0xe4, 0x38, 0x55, 0x54, 0x43, - 0x86, 0xe3, 0x43, 0x01, 0x82, 0xd2, 0xec, 0x6b, 0xa2, 0xb0, 0xcd, 0x74, 0x9f, 0x7f, 0x33, 0x1d, - 0x8a, 0xdc, 0xfd, 0x69, 0xf3, 0xf0, 0xf6, 0xad, 0x71, 0xd9, 0x1d, 0x9b, 0xec, 0xb2, 0x3b, 0xdb, - 0x74, 0xd9, 0x05, 0x81, 0xcb, 0x1e, 0xe3, 0xb8, 0xac, 0xd0, 0xc7, 0x94, 0xe3, 0x70, 0x34, 0x05, - 0x18, 0x73, 0xdd, 0x9f, 0x07, 0x5c, 0xf7, 0x9a, 0x3b, 0xed, 0x1b, 0xd7, 0x1b, 0x4e, 0xc3, 0x42, - 0xf6, 0xd3, 0x9f, 0x9d, 0x43, 0x1e, 0x9d, 0xdd, 0x5c, 0x8f, 0xee, 0x16, 0x79, 0xf4, 0x1e, 0xc8, - 0x62, 0xff, 0xd8, 0xc0, 0xee, 0x97, 0x29, 0xd2, 0x2f, 0x8e, 0xa7, 0xf7, 0x6e, 0x9e, 0xa7, 0xc3, - 0x66, 0x67, 0xed, 0xbe, 0xad, 0xcb, 0xda, 0xfd, 0x5b, 0x96, 0xb5, 0xbf, 0x0e, 0x01, 0xc9, 0xbe, - 0x1a, 0x0c, 0x01, 0x42, 0x30, 0x16, 0x02, 0x1e, 0x4a, 0x90, 0x0b, 0xec, 0xab, 0x09, 0xd4, 0x96, - 0x17, 0x02, 0x2e, 0x0a, 0x84, 0xdd, 0xc7, 0x2f, 0x04, 0xf8, 0xb8, 0x52, 0xde, 0x97, 0x60, 0xaf, - 0xa8, 0x33, 0x6d, 0x2d, 0xa0, 0x08, 0xdd, 0x16, 0xb2, 0x1b, 0x55, 0xc7, 0x2b, 0x8e, 0x9d, 0x4a, - 0x92, 0x21, 0x38, 0x88, 0x8b, 0x89, 0x05, 0x92, 0x8a, 0x1e, 0x21, 0xaf, 0xbe, 0x90, 0xe1, 0xd5, - 0x17, 0x7e, 0x29, 0xc1, 0x1e, 0x3e, 0x15, 0xf9, 0x0a, 0xf4, 0x78, 0x46, 0x49, 0xab, 0x7b, 0xa9, - 0x4c, 0x87, 0x21, 0xc9, 0x17, 0xa1, 0x0b, 0x7b, 0x0a, 0x09, 0xc2, 0xe9, 0xb0, 0x09, 0x86, 0x7c, - 0x16, 0x32, 0xab, 0x08, 0x11, 0x96, 0xd3, 0x21, 0xba, 0xf0, 0xd1, 0xba, 0x09, 0x99, 0x8b, 0x66, - 0x55, 0x33, 0x45, 0x31, 0xe9, 0xb9, 0xa0, 0x0d, 0x1d, 0x8d, 0xd3, 0x7f, 0x93, 0x30, 0xc7, 0x92, - 0x0a, 0x0f, 0x12, 0xea, 0x26, 0x62, 0xe6, 0x94, 0x15, 0x5c, 0x36, 0x11, 0x03, 0x6c, 0x46, 0x69, - 0xe9, 0xa7, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x2f, 0x52, 0x4b, 0x97, 0x39, 0x5a, 0x3a, 0x1c, 0xd5, - 0x92, 0x80, 0x3f, 0x05, 0xc1, 0xa1, 0x24, 0x98, 0xcd, 0xd0, 0xd5, 0x47, 0x12, 0x5e, 0x90, 0xf8, - 0xea, 0x58, 0xbc, 0x59, 0x11, 0x17, 0xe3, 0x16, 0x43, 0xc5, 0xb8, 0x36, 0xf4, 0xe5, 0x95, 0xe4, - 0xae, 0x3e, 0x48, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x1f, 0x48, 0x38, 0x14, 0x27, 0xc1, 0x3d, 0x8d, - 0xa5, 0xb9, 0x47, 0x12, 0xae, 0x7f, 0xcf, 0xbb, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, 0xed, 0xb1, - 0x07, 0x64, 0x91, 0x62, 0x78, 0x86, 0x53, 0x0c, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, 0xba, 0x9a, - 0x36, 0x33, 0xc3, 0x99, 0x9e, 0xd1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0xc6, 0x70, 0xb1, 0x31, 0xd4, - 0xca, 0xd2, 0xe0, 0x7b, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x0a, 0x74, 0x96, - 0x55, 0x47, 0x4d, 0x53, 0xf8, 0xc5, 0x94, 0x16, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, 0x0b, 0x67, - 0x1f, 0x24, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x75, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, 0x72, 0xd0, - 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0xef, 0x0b, 0x12, - 0x0a, 0xb8, 0xf6, 0x56, 0x4b, 0xff, 0x2c, 0x47, 0xfa, 0x23, 0x02, 0xe9, 0x39, 0x8c, 0x29, 0x37, - 0xe1, 0x70, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x7d, 0x37, 0x0c, 0x79, 0x14, 0xc9, 0x39, 0x56, 0x82, - 0x0a, 0x52, 0x9d, 0xf3, 0x5c, 0x81, 0x71, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, 0xc9, 0x31, - 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, 0x96, 0xed, - 0xdb, 0x26, 0x11, 0x69, 0xb6, 0x5a, 0x95, 0x5f, 0x80, 0xa9, 0x32, 0x0b, 0x1c, 0x62, 0x32, 0x9d, - 0x98, 0xcc, 0x44, 0x39, 0x74, 0xb4, 0x18, 0x22, 0xf6, 0x0f, 0xb0, 0x1b, 0x73, 0x43, 0xe3, 0x01, - 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, 0x5f, 0x87, - 0x51, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, 0x2c, 0x8e, - 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0x89, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, 0x91, 0x2c, - 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x1d, 0x98, 0x5c, 0xc1, 0x46, 0x5c, - 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0x47, 0x57, 0xa2, 0x8e, 0xc1, 0x94, 0x58, - 0x84, 0x83, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0xf6, 0xad, 0x44, 0xeb, 0x0a, 0x21, 0x23, - 0xbb, 0x17, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, 0x4e, 0x72, - 0x42, 0xca, 0x78, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x90, 0x85, 0x31, 0x5e, 0x07, 0x8b, 0x1c, - 0xd3, 0x30, 0x88, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0x76, 0xb9, 0x5d, 0x34, 0x08, 0x93, 0x0e, - 0xb9, 0x00, 0x23, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xe1, 0x26, 0x40, 0x10, 0xf7, 0x08, - 0xec, 0x6a, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x27, 0x33, 0x50, 0xba, 0x16, 0x38, 0x07, - 0xc3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1d, 0x32, 0x33, 0x8a, 0x37, 0x0b, 0xe3, 0xa1, - 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x32, 0x8c, 0xf2, 0xe6, - 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0xe7, 0x21, 0xe7, 0xad, 0x62, 0xfc, - 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, 0x16, 0x86, - 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x86, 0x48, 0x77, 0x08, 0x6d, 0x1e, 0x26, 0xbc, 0xf1, - 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x28, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, 0x0b, 0xe3, - 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xd7, 0xa0, 0x78, 0x7c, 0xf0, - 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x3c, 0xec, 0xa3, - 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x23, 0x09, 0x26, - 0x38, 0xdb, 0xa1, 0x34, 0x15, 0x81, 0x4d, 0xdb, 0xa7, 0x5c, 0xe2, 0x78, 0xf0, 0xc1, 0xb8, 0xdd, - 0x9c, 0xbf, 0x32, 0xf0, 0x43, 0x09, 0x9e, 0x89, 0x07, 0x49, 0xbb, 0x49, 0x79, 0x25, 0x5c, 0x1f, - 0xb8, 0x90, 0x4e, 0xa2, 0x27, 0xab, 0x12, 0xfc, 0xae, 0x03, 0xc6, 0xe2, 0x68, 0x7d, 0x05, 0x6b, - 0x05, 0xf2, 0xdf, 0xc0, 0x0e, 0x7c, 0x89, 0x46, 0x37, 0x8d, 0x52, 0x19, 0x55, 0x1d, 0x15, 0xaf, - 0xee, 0xfb, 0x4e, 0x1d, 0x8e, 0xbd, 0x8d, 0x44, 0x31, 0x16, 0x5c, 0x04, 0x6a, 0x20, 0xdb, 0xeb, - 0xfe, 0x46, 0xf9, 0x12, 0x64, 0xeb, 0xea, 0x86, 0xd9, 0x70, 0x5a, 0x39, 0xa1, 0xa7, 0x28, 0x3e, - 0x95, 0xff, 0x8c, 0xac, 0x81, 0x39, 0x3b, 0xdb, 0x2f, 0xd4, 0xec, 0x13, 0xd7, 0xc2, 0xf1, 0x0c, - 0x2a, 0x3f, 0x91, 0xf0, 0x62, 0x38, 0x1e, 0xea, 0xe9, 0x36, 0xfe, 0x3f, 0xd1, 0x4a, 0x24, 0xce, - 0x34, 0x21, 0x65, 0x7d, 0x79, 0x3b, 0x4f, 0xd6, 0x5d, 0x53, 0xed, 0x75, 0x6c, 0x6a, 0x5d, 0xb4, - 0x7b, 0x49, 0xb5, 0xd7, 0x3d, 0x81, 0xb2, 0x4d, 0x81, 0x12, 0xf7, 0x74, 0x5c, 0x01, 0x15, 0x85, - 0x14, 0x89, 0x78, 0x7d, 0x6c, 0x93, 0xfa, 0xcf, 0x1d, 0xf8, 0x6e, 0xab, 0x68, 0xb3, 0xf3, 0x15, - 0x52, 0xd2, 0x05, 0x8e, 0x92, 0xf6, 0x47, 0x95, 0x14, 0x95, 0x51, 0x39, 0x80, 0x0b, 0x44, 0xa2, - 0x6e, 0xa6, 0xaa, 0xb7, 0x25, 0xe8, 0x65, 0xcb, 0xe0, 0xa0, 0x02, 0xa4, 0x24, 0x05, 0x74, 0x24, - 0x2a, 0x20, 0x13, 0xaf, 0x80, 0x4e, 0x81, 0x02, 0x9a, 0xe5, 0x0b, 0xe5, 0xfb, 0x24, 0xd5, 0xfa, - 0x36, 0xaf, 0xe1, 0x15, 0xc3, 0xd6, 0xed, 0xbb, 0x13, 0x53, 0x6c, 0x0c, 0x57, 0xca, 0x0d, 0x9c, - 0x61, 0x63, 0x20, 0x5a, 0xda, 0x71, 0xff, 0x4b, 0x07, 0xec, 0x5e, 0xb2, 0x2b, 0xcb, 0x4c, 0xd5, - 0xb7, 0x2d, 0xd5, 0xb0, 0x57, 0x63, 0x6c, 0xf9, 0x04, 0x0c, 0xd9, 0x66, 0xc3, 0xd2, 0x50, 0x89, - 0x37, 0x69, 0x32, 0xe9, 0x5b, 0xf6, 0x4f, 0x1d, 0x5e, 0x8f, 0xdb, 0x8e, 0x6e, 0x90, 0xd3, 0x6e, - 0x9e, 0xb1, 0x0f, 0xfb, 0x00, 0x96, 0xf9, 0x77, 0x34, 0x3b, 0x5b, 0xbb, 0xa3, 0x39, 0x1d, 0xd2, - 0xef, 0x84, 0x5f, 0xbf, 0x51, 0x71, 0x95, 0x49, 0x5c, 0x46, 0x8f, 0x76, 0x30, 0x83, 0x7e, 0xab, - 0x03, 0xdf, 0xe3, 0xbc, 0x76, 0xdf, 0x41, 0x96, 0xa1, 0x56, 0xff, 0x52, 0xf4, 0x74, 0x2c, 0xa4, - 0xa7, 0xc0, 0xdd, 0xfe, 0xb0, 0xb0, 0xf4, 0x6e, 0x7f, 0xb8, 0x99, 0xe9, 0xe8, 0x33, 0x09, 0xd7, - 0x6f, 0x6e, 0xe8, 0x77, 0x1a, 0x3a, 0xbe, 0x85, 0x4c, 0x17, 0x0c, 0x4f, 0x56, 0xbf, 0x09, 0x04, - 0x8f, 0x4c, 0x28, 0x78, 0xb0, 0x05, 0x40, 0x67, 0x7b, 0x0b, 0x00, 0xc9, 0x5b, 0x00, 0x1c, 0x8f, - 0xdb, 0xb5, 0x46, 0x24, 0x52, 0x26, 0xf0, 0xa6, 0x35, 0xd2, 0xce, 0x54, 0xf1, 0x2e, 0x49, 0xa6, - 0xd7, 0x6a, 0xc8, 0xaa, 0x20, 0x43, 0xdb, 0x58, 0xc6, 0xf7, 0x33, 0xe8, 0x2b, 0x87, 0x2d, 0x53, - 0x47, 0xe1, 0x64, 0x5c, 0xe2, 0xe3, 0x32, 0x43, 0x13, 0x1f, 0xb7, 0xaf, 0x79, 0x7f, 0xbc, 0x03, - 0x3f, 0xda, 0x58, 0x34, 0xdc, 0x4d, 0x91, 0xcd, 0xa4, 0x25, 0x47, 0xc6, 0x4f, 0x89, 0x0b, 0x04, - 0xf4, 0xd2, 0x19, 0x32, 0x93, 0x4b, 0xcc, 0x3f, 0x5a, 0x59, 0xac, 0x52, 0x1f, 0x39, 0x15, 0x52, - 0xaa, 0x12, 0x3c, 0x0f, 0xe6, 0xe9, 0x84, 0x3e, 0x36, 0xe0, 0x77, 0x86, 0xd5, 0xba, 0x80, 0xbe, - 0x56, 0x6b, 0x58, 0xad, 0x7c, 0x9d, 0x50, 0xb5, 0xf2, 0x3b, 0x99, 0x5a, 0x3f, 0x92, 0xb0, 0x73, - 0xde, 0xb2, 0xf4, 0xbb, 0x7a, 0x15, 0x55, 0x50, 0xf9, 0xda, 0x7d, 0xa4, 0x35, 0x1c, 0x34, 0x6f, - 0x1a, 0x8e, 0xa5, 0x6a, 0x62, 0xff, 0x1b, 0x82, 0xae, 0xd5, 0x86, 0x51, 0xb6, 0xa9, 0x2a, 0xc9, - 0x87, 0x7c, 0x18, 0x06, 0x34, 0x8a, 0x59, 0x52, 0xc9, 0x5b, 0x0f, 0xaa, 0xb4, 0x9d, 0x5e, 0x3b, - 0x7d, 0x02, 0x22, 0xcb, 0x74, 0x69, 0x40, 0xf4, 0x44, 0xb2, 0xfd, 0x65, 0xc1, 0x41, 0xfb, 0x01, - 0xbf, 0xb8, 0x42, 0x5e, 0xdd, 0x40, 0xb2, 0x3f, 0x0e, 0x80, 0xa5, 0xfb, 0xd7, 0x01, 0x30, 0xbf, - 0xa5, 0xb2, 0xbe, 0xba, 0x8a, 0x33, 0x7e, 0x6c, 0x1a, 0x38, 0xe1, 0x4e, 0xd5, 0x7b, 0xbf, 0x99, - 0x3c, 0x54, 0xd1, 0x9d, 0xb5, 0xc6, 0xca, 0xb4, 0x66, 0xd6, 0xe8, 0x63, 0x3f, 0xfa, 0xdf, 0x71, - 0xbb, 0xbc, 0x3e, 0xe3, 0x6c, 0xd4, 0x91, 0x8d, 0x11, 0xec, 0x62, 0x2f, 0x26, 0xbf, 0xa0, 0xaf, - 0xae, 0x16, 0x06, 0x39, 0x32, 0x29, 0xaf, 0xc1, 0xc0, 0x92, 0x5d, 0x29, 0xa2, 0x7b, 0xaa, 0x55, - 0xb6, 0x6f, 0xd6, 0x9d, 0x9b, 0x0d, 0xa1, 0xa6, 0x49, 0x9d, 0x90, 0xa3, 0x94, 0x11, 0xbf, 0x52, - 0x02, 0xa4, 0x94, 0x3c, 0x0e, 0xa8, 0x81, 0x36, 0xff, 0xfb, 0x96, 0xdd, 0xb8, 0x53, 0xab, 0xaa, - 0x7a, 0xed, 0x86, 0xa9, 0xad, 0xa3, 0xf2, 0x75, 0x3c, 0x79, 0x62, 0x27, 0x1a, 0xac, 0x62, 0xb0, - 0x59, 0x62, 0xe9, 0xb7, 0x1a, 0x2b, 0x2f, 0xa0, 0x0d, 0x3c, 0xf1, 0xfd, 0x45, 0x5e, 0x97, 0x3c, - 0x06, 0xbd, 0xb6, 0x5e, 0x31, 0x54, 0xa7, 0x61, 0x91, 0x4d, 0x78, 0x7f, 0xb1, 0xd9, 0x10, 0xbf, - 0xde, 0x88, 0xf2, 0x45, 0xd7, 0x1b, 0xd1, 0x0e, 0x26, 0xd2, 0x9b, 0xe4, 0xa9, 0xcb, 0xb2, 0x5e, - 0x31, 0xf0, 0x12, 0x7a, 0x19, 0xb2, 0xee, 0xdf, 0x54, 0x90, 0xfe, 0xb9, 0x4b, 0x9f, 0x3f, 0x9e, - 0xcc, 0xda, 0xb8, 0xe5, 0x8f, 0x8f, 0x27, 0x8f, 0xa7, 0x98, 0xc5, 0x59, 0x4d, 0xa3, 0x76, 0x5a, - 0xa4, 0xa4, 0xe4, 0x31, 0xe8, 0x5c, 0x20, 0x4b, 0x59, 0x97, 0x64, 0xcf, 0xe7, 0x8f, 0x27, 0xb1, - 0xcd, 0x16, 0x71, 0xab, 0x72, 0x1f, 0x3f, 0x1a, 0xc2, 0x1c, 0x98, 0x9a, 0x7c, 0x80, 0xc8, 0x4f, - 0x2e, 0x7b, 0x91, 0xda, 0x07, 0x46, 0x70, 0xbf, 0x8b, 0x3d, 0x6e, 0x17, 0xbe, 0xce, 0x35, 0x0f, - 0x5d, 0x77, 0xd5, 0x6a, 0x03, 0xd1, 0x9d, 0xeb, 0xc1, 0xb8, 0x84, 0xec, 0x93, 0xcf, 0xdb, 0x8d, - 0x63, 0x5c, 0xe5, 0x3f, 0x32, 0xd8, 0xcf, 0x67, 0xcb, 0x35, 0xdd, 0x20, 0x35, 0x61, 0xce, 0x96, - 0xba, 0xbd, 0xed, 0xd6, 0x8b, 0x30, 0xe0, 0xbb, 0x47, 0x49, 0x6a, 0x31, 0xcd, 0x92, 0x8a, 0x94, - 0x14, 0xbc, 0x76, 0x36, 0x91, 0xf1, 0xf5, 0x26, 0xe1, 0x55, 0xce, 0xce, 0xd6, 0xaf, 0x72, 0x76, - 0x89, 0xaf, 0x72, 0x5e, 0x85, 0xac, 0xed, 0xa8, 0x4e, 0xc3, 0xa6, 0xd7, 0xec, 0x0e, 0xc5, 0xaa, - 0x15, 0xcb, 0xba, 0x8c, 0xe1, 0x8b, 0x14, 0xaf, 0x50, 0x88, 0x2b, 0x6e, 0xc4, 0x2b, 0x5a, 0x39, - 0x8a, 0x6b, 0x1b, 0xf1, 0x40, 0xcc, 0x70, 0xbf, 0x49, 0x1e, 0x36, 0xcd, 0x92, 0x47, 0x6b, 0x6f, - 0xa0, 0x65, 0x47, 0x5d, 0x47, 0xcf, 0x59, 0xaa, 0xe1, 0x88, 0xbd, 0xf1, 0x3a, 0x64, 0x2b, 0x18, - 0x82, 0x6e, 0xaa, 0xa6, 0xe3, 0xc4, 0xc3, 0xb4, 0x3c, 0xf2, 0x58, 0xb5, 0x45, 0x8a, 0x5d, 0x38, - 0x11, 0xf7, 0xaa, 0x89, 0xc7, 0x91, 0xb2, 0x0f, 0x3f, 0x8d, 0xe0, 0x75, 0x31, 0x81, 0x36, 0x70, - 0x6c, 0x99, 0x75, 0xb9, 0x51, 0x1d, 0x1f, 0x84, 0x50, 0x9a, 0x1c, 0x74, 0x63, 0x7e, 0xd8, 0xb5, - 0x4c, 0xef, 0x33, 0x3e, 0x4a, 0x44, 0x47, 0xa0, 0x51, 0x22, 0xda, 0xe1, 0xf1, 0x76, 0xea, 0xd1, - 0x41, 0xc8, 0x2c, 0xd9, 0x15, 0x59, 0x85, 0x6e, 0xef, 0x71, 0xdf, 0x33, 0x09, 0x1e, 0x47, 0xe1, - 0xf2, 0xd3, 0xe9, 0xe0, 0x58, 0x7e, 0x29, 0x43, 0x0f, 0x7b, 0x77, 0x97, 0xe4, 0xd5, 0x1e, 0x60, - 0x7e, 0x26, 0x25, 0x20, 0x1b, 0xe5, 0xbf, 0x25, 0x18, 0x16, 0x3d, 0x48, 0x3a, 0x97, 0x40, 0x4c, - 0x80, 0x97, 0x7f, 0xb6, 0x3d, 0x3c, 0xc6, 0xd3, 0x3b, 0x12, 0x8c, 0xc5, 0x3e, 0x9e, 0xb9, 0x94, - 0x6e, 0x00, 0x2e, 0x72, 0x7e, 0xfe, 0x09, 0x90, 0x19, 0x8b, 0xdf, 0x92, 0x60, 0x6f, 0xe2, 0x2d, - 0xe2, 0x2b, 0xe9, 0x46, 0x12, 0x12, 0xc8, 0x3f, 0xf7, 0x84, 0x04, 0x18, 0xbb, 0x0f, 0x24, 0x18, - 0xe2, 0xbe, 0x7c, 0x3c, 0x9d, 0x30, 0x02, 0x0f, 0x29, 0x7f, 0xa9, 0x0d, 0x24, 0xc6, 0xca, 0xff, - 0x49, 0x90, 0x8f, 0x79, 0x75, 0x78, 0x31, 0x81, 0xb6, 0x18, 0x35, 0x3f, 0xdb, 0x36, 0x2a, 0x63, - 0xee, 0xdf, 0x25, 0xd8, 0xcd, 0xbf, 0x19, 0x7a, 0x26, 0xb5, 0xcc, 0x3e, 0xac, 0xfc, 0x5f, 0xb5, - 0x83, 0xc5, 0xb8, 0xd9, 0x80, 0x9d, 0xe1, 0x0b, 0x49, 0x49, 0x41, 0x24, 0x04, 0x9f, 0x3f, 0xd7, - 0x1a, 0x7c, 0x40, 0x11, 0xfc, 0xbb, 0x41, 0x67, 0x52, 0x69, 0x39, 0x84, 0x95, 0xa8, 0x88, 0xf8, - 0xbb, 0x3d, 0xff, 0x04, 0xbb, 0xa2, 0x77, 0x54, 0x4e, 0xa4, 0x21, 0xe9, 0xc7, 0xc8, 0x5f, 0x68, - 0x15, 0x83, 0x31, 0xf0, 0xbf, 0x12, 0x8c, 0x88, 0xb7, 0x37, 0x49, 0x74, 0x85, 0x98, 0xf9, 0xab, - 0xed, 0x62, 0x06, 0xdc, 0x29, 0xe6, 0x32, 0xea, 0xc5, 0x54, 0x06, 0xc8, 0x43, 0x4d, 0x74, 0xa7, - 0x14, 0x97, 0x48, 0xdd, 0x28, 0x99, 0x78, 0xb5, 0xf1, 0x4a, 0x7a, 0xb7, 0xe5, 0x12, 0x48, 0x8c, - 0x92, 0xa9, 0xef, 0x23, 0xbe, 0x2d, 0xc1, 0x68, 0xdc, 0x59, 0x70, 0xa1, 0x45, 0x8d, 0xf8, 0x23, - 0xc1, 0x5c, 0xfb, 0xb8, 0xc1, 0xe8, 0xc4, 0x3d, 0x2d, 0x3a, 0x93, 0xca, 0xcd, 0x43, 0x58, 0xc9, - 0xd1, 0x29, 0xee, 0x70, 0x06, 0x6b, 0x2b, 0xae, 0x9c, 0x5f, 0x48, 0xef, 0xf2, 0x61, 0xdc, 0x44, - 0x6d, 0xa5, 0x29, 0xc7, 0xfb, 0x52, 0xb4, 0xf8, 0x8d, 0x5e, 0xca, 0x14, 0x2d, 0x24, 0x90, 0x36, - 0x45, 0x27, 0x3e, 0x4d, 0x92, 0xff, 0x5f, 0x82, 0xf1, 0xf8, 0x2b, 0xd3, 0xe9, 0x92, 0x89, 0x00, - 0x3b, 0xbf, 0xf0, 0x24, 0xd8, 0x8c, 0xcb, 0x6f, 0x48, 0x30, 0x91, 0x70, 0x74, 0x7c, 0xb9, 0xf5, - 0x81, 0xfc, 0x8e, 0x72, 0xed, 0x89, 0xd0, 0x19, 0xa3, 0xff, 0x23, 0x41, 0x4e, 0x78, 0x6e, 0x78, - 0x3e, 0x95, 0xe1, 0x47, 0x11, 0xf3, 0x57, 0xda, 0x44, 0x0c, 0xe8, 0x2f, 0xe1, 0xfa, 0xe9, 0xe5, - 0xf4, 0xb6, 0xcf, 0x41, 0x4f, 0xd4, 0x5f, 0xca, 0xeb, 0xa3, 0x6f, 0x49, 0x20, 0x73, 0x4e, 0xa9, - 0x4e, 0x26, 0x95, 0x17, 0x22, 0x28, 0xf9, 0x8b, 0x2d, 0xa3, 0x30, 0x26, 0xfe, 0x11, 0x06, 0x22, - 0xe7, 0x3f, 0x49, 0x3b, 0x9c, 0x30, 0x42, 0xfe, 0x7c, 0x8b, 0x08, 0xfe, 0x55, 0x47, 0xf4, 0x64, - 0x25, 0x69, 0xd5, 0x11, 0xc1, 0x48, 0x5c, 0x75, 0x08, 0xcf, 0x34, 0x70, 0xbc, 0xe7, 0x1f, 0x68, - 0x24, 0xc5, 0x7b, 0x2e, 0x56, 0x62, 0xbc, 0x8f, 0x3d, 0x93, 0x90, 0xff, 0x53, 0x82, 0x3d, 0x82, - 0x03, 0x89, 0xb3, 0x89, 0x41, 0x90, 0x87, 0x96, 0xbf, 0xdc, 0x16, 0x5a, 0x80, 0x21, 0x41, 0x29, - 0xff, 0x6c, 0xe2, 0x5e, 0xbb, 0x2d, 0x86, 0xe2, 0xeb, 0xe0, 0xb2, 0x0d, 0xdb, 0x83, 0xd5, 0xd8, - 0x63, 0x09, 0xf4, 0x02, 0xd0, 0xf9, 0x33, 0xad, 0x40, 0x07, 0x22, 0x4a, 0x42, 0xdd, 0x2e, 0x49, - 0xac, 0x78, 0xf4, 0xc4, 0x88, 0x92, 0xae, 0x4e, 0x25, 0xd7, 0xa1, 0x3f, 0xf0, 0x2b, 0x4f, 0x47, - 0x13, 0xc8, 0xfa, 0x81, 0xf3, 0xa7, 0x5b, 0x00, 0xf6, 0x87, 0x8f, 0xc8, 0xef, 0xd7, 0xcd, 0xa4, - 0x22, 0xd4, 0x44, 0x48, 0x0c, 0x1f, 0xa2, 0x1f, 0x5e, 0xc3, 0xe6, 0x29, 0xf8, 0xd5, 0xb5, 0xb3, - 0xa9, 0x68, 0x86, 0xd1, 0x12, 0xcd, 0x33, 0xfe, 0xa7, 0xb6, 0x70, 0x11, 0x80, 0x5b, 0x25, 0x4c, - 0x52, 0x2e, 0x0f, 0x29, 0xb1, 0x08, 0x10, 0x57, 0xe2, 0xc3, 0xd9, 0x85, 0x53, 0xe0, 0x4b, 0xca, - 0x2e, 0x51, 0x94, 0xc4, 0xec, 0x22, 0xae, 0xe5, 0xe5, 0xbb, 0xde, 0xfc, 0xf4, 0xe1, 0x11, 0x69, - 0x6e, 0xed, 0xc3, 0x8f, 0x27, 0xa4, 0x47, 0x1f, 0x4f, 0x48, 0xbf, 0xfd, 0x78, 0x42, 0xfa, 0xaf, - 0x4f, 0x26, 0xb6, 0x3d, 0xfa, 0x64, 0x62, 0xdb, 0xaf, 0x3e, 0x99, 0xd8, 0xf6, 0xf7, 0x2f, 0xfa, - 0x8a, 0xfc, 0x8b, 0xde, 0x28, 0x37, 0xd4, 0x15, 0x7b, 0x86, 0x8d, 0x79, 0x5c, 0x33, 0x2d, 0xe4, - 0xff, 0x5c, 0x53, 0x75, 0x63, 0xa6, 0x66, 0x96, 0x1b, 0x55, 0x64, 0x37, 0x7f, 0x9e, 0x11, 0x1f, - 0x08, 0xac, 0x64, 0xf1, 0x4f, 0x2b, 0x9e, 0xfe, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x05, - 0xa8, 0x24, 0x9c, 0x52, 0x00, 0x00, + // 3976 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0x47, + 0x76, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x3f, 0xa2, 0x9a, 0x94, 0x38, 0x1c, 0xfe, 0xa4, 0xa6, 0x64, + 0xfd, 0x49, 0xfd, 0x3f, 0xa3, 0xc8, 0x12, 0x3f, 0x92, 0xcd, 0x58, 0xb4, 0xe4, 0xa1, 0x9c, 0x38, + 0x81, 0x9d, 0x41, 0xb3, 0xa7, 0x38, 0x6c, 0x73, 0xa6, 0x7b, 0xd4, 0xdd, 0x23, 0x89, 0x46, 0x80, + 0x38, 0x3e, 0x04, 0x4a, 0x1c, 0x04, 0x09, 0x10, 0x20, 0x40, 0x00, 0x03, 0x06, 0x02, 0xc4, 0x80, + 0x13, 0x24, 0x72, 0x10, 0x04, 0x3e, 0x24, 0x41, 0x10, 0xe4, 0x60, 0xf8, 0xa4, 0x04, 0x08, 0xb0, + 0xd8, 0x83, 0x76, 0x61, 0x1f, 0x6c, 0xf8, 0xb4, 0xd8, 0xcb, 0x02, 0xbb, 0x97, 0x45, 0x57, 0x55, + 0xd7, 0xf4, 0xa7, 0xaa, 0xbb, 0x67, 0x44, 0xda, 0xf2, 0xc2, 0x17, 0x89, 0x5d, 0xf5, 0xde, 0xab, + 0xf7, 0x5e, 0xbd, 0x4f, 0xd5, 0xab, 0xaa, 0x81, 0x19, 0xdd, 0x78, 0x1b, 0x69, 0x8e, 0x7e, 0x1f, + 0xcd, 0xa1, 0x87, 0xda, 0x86, 0x6a, 0x54, 0xd0, 0xdc, 0xfd, 0xd3, 0x6b, 0xc8, 0x51, 0x4f, 0xcf, + 0x39, 0x0f, 0x67, 0xeb, 0x96, 0xe9, 0x98, 0x72, 0x9e, 0x01, 0xcd, 0x7a, 0x40, 0xb3, 0x14, 0x28, + 0x3f, 0xa5, 0x99, 0x76, 0xcd, 0xb4, 0xe7, 0xd6, 0x54, 0xbb, 0x89, 0xa9, 0x99, 0xba, 0x41, 0x70, + 0xf3, 0xb3, 0xb4, 0xbf, 0xac, 0xdb, 0x8e, 0xa5, 0xaf, 0x35, 0x1c, 0xdd, 0x34, 0x18, 0x9c, 0xbf, + 0x91, 0xc2, 0x8f, 0x52, 0xf8, 0x9a, 0x5d, 0x99, 0xbb, 0x7f, 0xda, 0xfd, 0x8f, 0x76, 0x8c, 0x91, + 0x8e, 0x12, 0xfe, 0x9a, 0x23, 0x1f, 0xb4, 0x6b, 0xa4, 0x62, 0x56, 0x4c, 0xd2, 0xee, 0xfe, 0x45, + 0x5b, 0x8f, 0xc6, 0x88, 0xc6, 0xc4, 0x20, 0xa0, 0x87, 0x9a, 0xa0, 0xa6, 0xa5, 0x6a, 0xd5, 0x26, + 0x20, 0xf9, 0xa4, 0x60, 0x7b, 0xd4, 0x9a, 0x6e, 0x98, 0x73, 0xf8, 0x5f, 0xd2, 0xa4, 0x7c, 0x94, + 0x81, 0xe1, 0x15, 0xbb, 0xf2, 0x7a, 0xbd, 0xac, 0x3a, 0x68, 0xb5, 0x6e, 0x3a, 0x2b, 0xaa, 0xb5, + 0x89, 0x1c, 0x79, 0x04, 0xba, 0xd4, 0x72, 0x4d, 0x37, 0x72, 0xd2, 0x7e, 0xe9, 0x48, 0x6f, 0x91, + 0x7c, 0xc8, 0xe3, 0xd0, 0x5b, 0xc3, 0xfd, 0x25, 0xbd, 0x9c, 0xeb, 0xc0, 0x3d, 0x3d, 0xa4, 0x61, + 0xb9, 0x2c, 0x4f, 0x02, 0x18, 0xe8, 0x41, 0xc9, 0xd1, 0xb5, 0x4d, 0x64, 0xe5, 0x32, 0xb8, 0xb7, + 0xd7, 0x40, 0x0f, 0xee, 0xe2, 0x06, 0xf9, 0xf7, 0x60, 0xd4, 0xed, 0xae, 0xe9, 0x46, 0xa9, 0x6e, + 0xe9, 0x1a, 0xc2, 0x80, 0x25, 0x5b, 0x7f, 0x07, 0xe5, 0x3a, 0x5d, 0xd8, 0x85, 0x99, 0xcf, 0x9e, + 0x4e, 0xef, 0xfa, 0xf1, 0xd3, 0xe9, 0x71, 0xa2, 0x1b, 0xbb, 0xbc, 0x39, 0xab, 0x9b, 0x73, 0x35, + 0xd5, 0xd9, 0x98, 0xbd, 0x85, 0x2a, 0xaa, 0xb6, 0xb5, 0x84, 0xb4, 0xe2, 0xb0, 0x81, 0x1e, 0xac, + 0xe8, 0xc6, 0x1d, 0x97, 0x82, 0x4b, 0x78, 0x55, 0x7f, 0x07, 0xc9, 0x25, 0xc8, 0x7b, 0xa4, 0xef, + 0x35, 0x54, 0xc3, 0xd1, 0x9d, 0x2d, 0x1f, 0xf5, 0xae, 0xf4, 0xd4, 0xf7, 0x11, 0xea, 0xaf, 0x51, + 0x22, 0x6c, 0x80, 0x15, 0x18, 0xf2, 0x06, 0x30, 0x4c, 0x77, 0xb2, 0xd5, 0x6a, 0x2e, 0x9b, 0x9e, + 0xec, 0x20, 0x21, 0xfb, 0x2a, 0x45, 0x2d, 0x9c, 0x7d, 0xf4, 0xe1, 0xf4, 0xae, 0xaf, 0x3f, 0x9c, + 0xde, 0xf5, 0xde, 0x57, 0x8f, 0x8f, 0x11, 0xd5, 0xfe, 0xd9, 0x57, 0x8f, 0x8f, 0x4d, 0xb0, 0x69, + 0xe6, 0xcc, 0x88, 0x32, 0x09, 0xe3, 0x9c, 0xe6, 0x22, 0xb2, 0xeb, 0xa6, 0x61, 0x23, 0xe5, 0x17, + 0x9d, 0x30, 0xc6, 0xfa, 0x97, 0x90, 0xa5, 0xdf, 0x57, 0x5d, 0x7b, 0xf8, 0x61, 0x3a, 0x77, 0x7c, + 0x3a, 0xe5, 0x37, 0x21, 0xe7, 0x92, 0xd3, 0x0d, 0xdd, 0xd1, 0xd5, 0x6a, 0xa9, 0xa6, 0x5a, 0x15, + 0xdd, 0x28, 0x59, 0xaa, 0xa3, 0x9b, 0xb9, 0xee, 0xf4, 0x64, 0xf7, 0x1a, 0xe8, 0xc1, 0x32, 0xa1, + 0xb1, 0x82, 0x49, 0x14, 0x5d, 0x0a, 0x72, 0x19, 0x26, 0x30, 0xb3, 0xaa, 0x6e, 0x38, 0xc8, 0x50, + 0x0d, 0x0d, 0x05, 0x47, 0xe8, 0x49, 0x3f, 0xc2, 0x98, 0xcb, 0x78, 0x93, 0x8e, 0x6f, 0x94, 0xc2, + 0x65, 0xbe, 0x49, 0x2a, 0x51, 0x93, 0x0c, 0xdb, 0x96, 0x32, 0x03, 0x07, 0x84, 0x9d, 0xcc, 0x3c, + 0x3f, 0x95, 0x60, 0x37, 0x83, 0xba, 0xa3, 0x5a, 0x6a, 0xcd, 0x96, 0x2f, 0x40, 0xaf, 0xda, 0x70, + 0x36, 0x4c, 0x4b, 0x77, 0xb6, 0x88, 0x61, 0x2e, 0xe4, 0xfe, 0xef, 0x5f, 0x4f, 0x8e, 0xd0, 0xd8, + 0x38, 0x5f, 0x2e, 0x5b, 0xc8, 0xb6, 0x57, 0x1d, 0x4b, 0x37, 0x2a, 0xc5, 0x26, 0xa8, 0x7c, 0x1d, + 0xb2, 0x75, 0x4c, 0x01, 0xdb, 0x6c, 0xdf, 0x19, 0x65, 0x56, 0x1c, 0xdf, 0x67, 0xc9, 0x58, 0x0b, + 0x9d, 0xae, 0x7e, 0x8a, 0x14, 0xaf, 0x70, 0xdc, 0x95, 0xb2, 0x49, 0xd1, 0x95, 0x34, 0x17, 0x95, + 0x94, 0xa0, 0x2a, 0x63, 0x30, 0x1a, 0x6a, 0x62, 0x52, 0xfd, 0xb3, 0x04, 0xb0, 0x62, 0x57, 0x96, + 0x50, 0xdd, 0xb4, 0x75, 0x47, 0xde, 0x07, 0x59, 0x1b, 0x19, 0x65, 0x64, 0x51, 0x37, 0xa3, 0x5f, + 0xf2, 0x0c, 0x0c, 0xd8, 0x8d, 0x35, 0x55, 0xd3, 0xcc, 0x86, 0xe1, 0xf3, 0xb5, 0xfe, 0x66, 0xe3, + 0x72, 0x59, 0xbe, 0x08, 0x59, 0xb5, 0xe6, 0xfe, 0x8d, 0x7d, 0xad, 0xef, 0xcc, 0x18, 0xcd, 0x3c, + 0xb3, 0x6e, 0x66, 0x62, 0xe2, 0x2c, 0x9a, 0xba, 0xe1, 0x09, 0x43, 0xc0, 0x0b, 0xc7, 0xfd, 0x53, + 0x47, 0x87, 0x74, 0x25, 0x1a, 0xf6, 0x4b, 0x44, 0x59, 0x54, 0x46, 0x40, 0x6e, 0x7e, 0x31, 0x39, + 0x3e, 0x91, 0xa0, 0x6f, 0xc5, 0xae, 0xfc, 0xae, 0xee, 0x6c, 0x94, 0x2d, 0xf5, 0xc1, 0x77, 0x24, + 0xc8, 0x09, 0x81, 0x20, 0x23, 0x7e, 0x41, 0x3c, 0x1e, 0x95, 0xbd, 0x38, 0x71, 0x79, 0x9f, 0x4c, + 0x94, 0x7f, 0x92, 0xf0, 0x74, 0x2d, 0x5a, 0x88, 0xc6, 0xc9, 0x5b, 0x7a, 0x4d, 0x77, 0x6e, 0x5b, + 0x2e, 0xfb, 0x22, 0xb1, 0xe6, 0xa1, 0xcb, 0x74, 0x01, 0xa8, 0x3d, 0x1d, 0x8a, 0xb3, 0x27, 0x97, + 0x24, 0xa6, 0x46, 0x99, 0x27, 0x98, 0x85, 0x4b, 0x02, 0xde, 0xf7, 0xfb, 0x79, 0xe7, 0x31, 0xa5, + 0xbc, 0x09, 0xd3, 0x82, 0x2e, 0x4f, 0x26, 0x37, 0x14, 0xe3, 0x51, 0x4a, 0x1b, 0xaa, 0xbd, 0x41, + 0x79, 0xef, 0xc5, 0x2d, 0x2f, 0xab, 0xf6, 0x86, 0x3c, 0x04, 0x19, 0x8d, 0xcd, 0x85, 0xfb, 0x67, + 0xa1, 0xc7, 0xe3, 0x46, 0xf9, 0x77, 0x09, 0x26, 0x57, 0xec, 0xca, 0x82, 0xea, 0x68, 0x1b, 0xbc, + 0x31, 0x6c, 0xa1, 0x52, 0x16, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, + 0xe1, 0x45, 0x81, 0x5a, 0x5e, 0xf0, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x2f, 0x12, 0x1c, 0x8a, 0x85, + 0x60, 0x3a, 0x3a, 0x00, 0xfd, 0x4d, 0x1d, 0x21, 0x3b, 0x27, 0xed, 0xcf, 0x1c, 0xe9, 0x2d, 0xf6, + 0x31, 0x2d, 0x21, 0x5b, 0x9e, 0x85, 0x61, 0x0d, 0xd3, 0x28, 0x97, 0x08, 0x7b, 0x25, 0x4d, 0x2f, + 0x13, 0xf1, 0x7a, 0x8b, 0x7b, 0x68, 0x17, 0x21, 0xbb, 0xa8, 0x97, 0x6d, 0xf9, 0x04, 0xc8, 0xeb, + 0xaa, 0x5e, 0x0d, 0x81, 0x67, 0x30, 0xf8, 0x10, 0xe9, 0x69, 0x42, 0xfb, 0x74, 0xfe, 0x7e, 0x27, + 0xe4, 0x57, 0xec, 0xca, 0xb2, 0x61, 0x3b, 0xaa, 0xe1, 0x34, 0x73, 0xf5, 0x2d, 0xb5, 0x61, 0x68, + 0x1b, 0x42, 0x85, 0xef, 0x83, 0x2c, 0x4d, 0xb6, 0x64, 0x26, 0xe9, 0x97, 0x3b, 0xfb, 0xae, 0xe7, + 0x94, 0xca, 0xc8, 0x30, 0x6b, 0x5e, 0x22, 0x76, 0x5b, 0x96, 0xdc, 0x06, 0x79, 0x1a, 0xfa, 0xee, + 0x35, 0x4c, 0xc7, 0xeb, 0xc7, 0xc9, 0xb7, 0x08, 0xb8, 0x89, 0x00, 0x14, 0x61, 0x98, 0x97, 0xa5, + 0x5b, 0xc8, 0xa3, 0x43, 0xb5, 0x70, 0x8a, 0x7e, 0x03, 0xf6, 0x09, 0xd2, 0x73, 0x0b, 0x79, 0xd4, + 0x65, 0x2b, 0x92, 0x9b, 0x6f, 0x42, 0x7f, 0x20, 0x2f, 0xb7, 0x90, 0x40, 0xfb, 0x6a, 0xbe, 0xa4, + 0x3c, 0x03, 0x03, 0x54, 0x6b, 0x9a, 0x5e, 0x53, 0xab, 0x36, 0xce, 0x93, 0x03, 0xc5, 0x7e, 0xa2, + 0x38, 0xd2, 0x26, 0x1f, 0x82, 0x41, 0x4f, 0x77, 0x14, 0xaa, 0x17, 0x43, 0x0d, 0x50, 0xf5, 0x91, + 0xc6, 0xc2, 0x15, 0x81, 0x15, 0xcf, 0xf8, 0xad, 0x58, 0x30, 0xdd, 0xca, 0x41, 0x50, 0xc4, 0xbd, + 0xcd, 0x08, 0xdc, 0x8d, 0xc3, 0x00, 0x05, 0xbb, 0x83, 0xac, 0x3a, 0x72, 0x1a, 0x78, 0x21, 0xd0, + 0xbe, 0xe1, 0x84, 0x2c, 0x23, 0x13, 0xb1, 0x8c, 0x69, 0xe8, 0x23, 0xfb, 0x83, 0x92, 0xab, 0x15, + 0xcf, 0x74, 0x48, 0xd3, 0x82, 0xea, 0x39, 0x15, 0x06, 0xc0, 0x58, 0xc4, 0x66, 0x8a, 0x14, 0xe9, + 0x35, 0xb7, 0xc9, 0x75, 0x2a, 0x0a, 0x62, 0x6b, 0x6a, 0x15, 0x95, 0xd6, 0x55, 0xcd, 0x31, 0x2d, + 0x6c, 0x06, 0x03, 0xc5, 0x3d, 0xa4, 0x6b, 0xd5, 0xed, 0xb9, 0x89, 0x3b, 0xe4, 0x1b, 0x6c, 0x4c, + 0x67, 0xab, 0x8e, 0xf0, 0xf4, 0x0e, 0x9e, 0x39, 0xe8, 0x8b, 0x2d, 0x74, 0xc7, 0xe2, 0x45, 0x96, + 0xdb, 0xf8, 0xf3, 0xee, 0x56, 0x1d, 0x79, 0x9c, 0xb9, 0x7f, 0xcb, 0xcb, 0x30, 0x58, 0x53, 0x37, + 0x91, 0x55, 0x5a, 0x47, 0xc8, 0x5d, 0x08, 0xa1, 0x56, 0xd6, 0x41, 0xfd, 0x18, 0xf5, 0x26, 0x42, + 0x45, 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0xaf, 0xc3, 0x08, + 0x77, 0x15, 0x08, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0x09, 0xf8, 0x16, 0xe4, 0x84, 0xcb, 0xbf, 0xbe, + 0x16, 0x96, 0xc3, 0x35, 0xee, 0xda, 0x4f, 0x14, 0x20, 0xfa, 0x77, 0x26, 0x40, 0x0c, 0x6c, 0x73, + 0x80, 0x18, 0x6c, 0x2f, 0x40, 0x14, 0xae, 0x0b, 0x9c, 0xfa, 0x08, 0xc7, 0xa9, 0xb9, 0xfe, 0xa8, + 0x1c, 0x85, 0xc3, 0x09, 0x20, 0xcc, 0xbd, 0xff, 0xb4, 0x1b, 0x66, 0x9a, 0xb0, 0x0b, 0xba, 0xa1, + 0x5a, 0x5b, 0xb7, 0xeb, 0x2e, 0x27, 0xf6, 0x33, 0xb9, 0xf8, 0x0c, 0x0c, 0x78, 0xde, 0xb7, 0x55, + 0x5b, 0x33, 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0xae, 0xe2, 0x36, 0xf9, 0x30, 0xec, 0xa6, 0x40, 0x75, + 0xcb, 0xbc, 0xaf, 0xbb, 0xd4, 0x89, 0xab, 0x0f, 0x92, 0xe6, 0x3b, 0xb4, 0x35, 0xec, 0x9b, 0x5d, + 0x6d, 0xfa, 0x66, 0xab, 0x21, 0x21, 0xea, 0xcb, 0xdd, 0xdb, 0xe7, 0xcb, 0x3d, 0xed, 0xfa, 0xf2, + 0x69, 0x18, 0x41, 0x0f, 0xeb, 0x3a, 0xf6, 0x32, 0xa3, 0xe4, 0xe8, 0x35, 0x64, 0x3b, 0x6a, 0xad, + 0x8e, 0x83, 0x43, 0xa6, 0x38, 0xdc, 0xec, 0xbb, 0xeb, 0x75, 0xb9, 0x28, 0x36, 0x72, 0x9c, 0x2a, + 0xaa, 0x21, 0xc3, 0xf1, 0xa1, 0x00, 0x41, 0x69, 0xf6, 0x35, 0x51, 0xd8, 0xc6, 0xbc, 0xcf, 0xbf, + 0x31, 0x0f, 0x45, 0xee, 0xfe, 0xb4, 0x39, 0x7d, 0x60, 0x67, 0x5c, 0x76, 0x70, 0x9b, 0x5d, 0x76, + 0x77, 0x9b, 0x2e, 0xbb, 0x24, 0x70, 0xd9, 0x13, 0x1c, 0x97, 0x15, 0xfa, 0x98, 0x72, 0x12, 0x8e, + 0xa7, 0x00, 0x63, 0xae, 0xfb, 0xbf, 0x01, 0xd7, 0xbd, 0xe1, 0x4e, 0xfb, 0xd6, 0xcd, 0x86, 0xd3, + 0xb0, 0x90, 0xfd, 0xfc, 0x67, 0xe7, 0x90, 0x47, 0x67, 0xb7, 0xd7, 0xa3, 0xbb, 0x45, 0x1e, 0xbd, + 0x0f, 0xb2, 0xd8, 0x3f, 0xb6, 0xb0, 0xfb, 0x65, 0x8a, 0xf4, 0x8b, 0xe3, 0xe9, 0xbd, 0xdb, 0xe7, + 0xe9, 0xb0, 0xdd, 0x59, 0xbb, 0x6f, 0xe7, 0xb2, 0x76, 0xff, 0x8e, 0x65, 0xed, 0x1f, 0x42, 0x40, + 0xb2, 0xaf, 0x06, 0x43, 0x80, 0x10, 0x8c, 0x85, 0x80, 0xc7, 0x12, 0xe4, 0x02, 0x7b, 0x74, 0x02, + 0xb5, 0xe3, 0x45, 0x85, 0xcb, 0x02, 0x61, 0x0f, 0xf0, 0x8b, 0x0a, 0x3e, 0xae, 0x94, 0x4f, 0x24, + 0xd8, 0x2f, 0xea, 0x4c, 0x5b, 0x57, 0x28, 0x42, 0xb7, 0x85, 0xec, 0x46, 0xd5, 0xf1, 0x0a, 0x6d, + 0x67, 0x92, 0x64, 0x08, 0x0e, 0xe2, 0x62, 0x62, 0x81, 0xa4, 0xa2, 0x47, 0xc8, 0xab, 0x55, 0x64, + 0x78, 0xb5, 0x8a, 0xff, 0x97, 0x60, 0x1f, 0x9f, 0x8a, 0x7c, 0x0d, 0x7a, 0x3c, 0xa3, 0xa4, 0x95, + 0xc2, 0x54, 0xa6, 0xc3, 0x90, 0xe4, 0xcb, 0xd0, 0x85, 0x3d, 0x85, 0x04, 0xe1, 0x74, 0xd8, 0x04, + 0x43, 0x3e, 0x0f, 0x99, 0x75, 0x84, 0x08, 0xcb, 0xe9, 0x10, 0x5d, 0xf8, 0x68, 0x0d, 0x86, 0xcc, + 0x45, 0xb3, 0x42, 0x9a, 0xa2, 0x30, 0xf5, 0x52, 0xd0, 0x86, 0x8e, 0xc7, 0xe9, 0xbf, 0x49, 0x98, + 0x63, 0x49, 0x85, 0x47, 0x09, 0x35, 0x18, 0x31, 0x73, 0xca, 0x1a, 0x2e, 0xc1, 0x88, 0x01, 0xb6, + 0xa3, 0x4c, 0xf5, 0xdf, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x6f, 0x53, 0x4b, 0x57, 0x39, 0x5a, 0x3a, + 0x1a, 0xd5, 0x92, 0x80, 0x3f, 0x05, 0xc1, 0x91, 0x24, 0x98, 0xed, 0xd0, 0xd5, 0xe7, 0x12, 0x5e, + 0x90, 0xf8, 0x6a, 0x62, 0xbc, 0x59, 0x11, 0x17, 0xf6, 0x96, 0x43, 0x85, 0xbd, 0x36, 0xf4, 0xe5, + 0x95, 0xf7, 0xae, 0x3f, 0x4a, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x9f, 0x4a, 0x38, 0x14, 0x27, 0xc1, + 0x3d, 0x8f, 0x65, 0xbe, 0x27, 0x12, 0xae, 0xa5, 0x2f, 0xba, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, + 0xed, 0xb1, 0x87, 0x6d, 0x91, 0xc2, 0x7a, 0x86, 0x53, 0x58, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, + 0xba, 0x9a, 0x36, 0x33, 0xc7, 0x99, 0x9e, 0xf1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0x26, 0x70, 0xe1, + 0x32, 0xd4, 0xca, 0xd2, 0xe0, 0xc7, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x1a, + 0x74, 0x96, 0x55, 0x47, 0x4d, 0x53, 0x44, 0xc6, 0x94, 0x96, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, + 0x0b, 0xe7, 0x1f, 0x25, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x4d, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, + 0x72, 0xd0, 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0x1f, + 0x08, 0x12, 0x0a, 0xb8, 0xf6, 0x4e, 0x4b, 0xff, 0x22, 0x47, 0xfa, 0x63, 0x02, 0xe9, 0x39, 0x8c, + 0x29, 0xb7, 0xe1, 0x68, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x79, 0x37, 0x8c, 0x78, 0x14, 0xc9, 0x99, + 0x58, 0x82, 0x0a, 0x52, 0x9d, 0x19, 0x5d, 0x83, 0x49, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, + 0xc9, 0x31, 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, + 0x97, 0xed, 0xbb, 0x26, 0x11, 0x69, 0xbe, 0x5a, 0x95, 0x5f, 0x81, 0x99, 0x32, 0x0b, 0x1c, 0x62, + 0x32, 0x9d, 0x98, 0xcc, 0x54, 0x39, 0x74, 0x4c, 0x19, 0x22, 0xf6, 0x07, 0xb0, 0x17, 0x73, 0x43, + 0xe3, 0x01, 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, + 0xdf, 0x86, 0x71, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, + 0x2c, 0x8e, 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0xd5, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, + 0x91, 0x2c, 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x3d, 0x98, 0x5e, 0xc3, + 0x46, 0x5c, 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0xc7, 0xd7, 0xa2, 0x8e, 0xc1, + 0x94, 0x58, 0x84, 0xc3, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0x0e, 0xac, 0x45, 0xeb, 0x0a, + 0x21, 0x23, 0x7b, 0x10, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, + 0x4e, 0x73, 0x42, 0xca, 0x64, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x94, 0x85, 0x09, 0x5e, 0x07, + 0x8b, 0x1c, 0xb3, 0x30, 0x8c, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0xf6, 0xb8, 0x5d, 0x34, 0x08, + 0x93, 0x0e, 0xb9, 0x00, 0x63, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xd1, 0x26, 0x40, 0x10, + 0xf7, 0x18, 0xec, 0x69, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x37, 0x33, 0x50, 0xba, 0x16, + 0xb8, 0x00, 0xa3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1b, 0x32, 0x33, 0x8a, 0x37, 0x0f, + 0x93, 0xa1, 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x2a, 0x8c, + 0xf3, 0xe6, 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0x17, 0x21, 0xe7, 0xad, + 0x62, 0xfc, 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, + 0x1e, 0x46, 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x46, 0x48, 0x77, 0x08, 0x6d, 0x11, 0xa6, + 0xbc, 0xf1, 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x38, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, + 0x0f, 0x93, 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xdb, 0xa0, 0x78, + 0x7c, 0xf0, 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x32, + 0x1c, 0xa0, 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x9f, + 0x12, 0x4c, 0x71, 0xb6, 0x43, 0x69, 0x2a, 0x02, 0xdb, 0xb6, 0x4f, 0xb9, 0xc2, 0xf1, 0xe0, 0xc3, + 0x71, 0xbb, 0x39, 0x7f, 0x65, 0xe0, 0x3f, 0x24, 0x78, 0x21, 0x1e, 0x24, 0xed, 0x26, 0xe5, 0x8d, + 0x70, 0x7d, 0xe0, 0x52, 0x3a, 0x89, 0x9e, 0xad, 0x4a, 0xf0, 0xb3, 0x0e, 0x98, 0x88, 0xa3, 0xf5, + 0x3d, 0xac, 0x15, 0xc8, 0xbf, 0x03, 0x83, 0xf8, 0x42, 0x8e, 0x6e, 0x1a, 0xa5, 0x32, 0xaa, 0x3a, + 0x2a, 0x5e, 0xdd, 0xf7, 0x9d, 0x39, 0x1a, 0x7b, 0xb3, 0x89, 0x62, 0x2c, 0xb9, 0x08, 0xd4, 0x40, + 0x06, 0xea, 0xfe, 0x46, 0xf9, 0x0a, 0x64, 0xeb, 0xea, 0x96, 0xd9, 0x70, 0x5a, 0x39, 0xed, 0xa7, + 0x28, 0x3e, 0x95, 0xff, 0x0f, 0x59, 0x03, 0x73, 0x76, 0xb6, 0xdf, 0xaa, 0xd9, 0x27, 0xae, 0x85, + 0xe3, 0x19, 0x54, 0xfe, 0x4b, 0xc2, 0x8b, 0xe1, 0x78, 0xa8, 0xe7, 0xdb, 0xf8, 0x7f, 0x45, 0x2b, + 0x91, 0x38, 0xd3, 0x84, 0x94, 0xf5, 0xdd, 0xed, 0x3c, 0x59, 0x77, 0x4d, 0xb5, 0x37, 0xb1, 0xa9, + 0x75, 0xd1, 0xee, 0x15, 0xd5, 0xde, 0xf4, 0x04, 0xca, 0x36, 0x05, 0x4a, 0xdc, 0xd3, 0x71, 0x05, + 0x54, 0x14, 0x52, 0x24, 0xe2, 0xf5, 0xb1, 0x4d, 0xea, 0x1f, 0x77, 0xe0, 0x7b, 0xb2, 0xa2, 0xcd, + 0xce, 0xf7, 0x48, 0x49, 0x97, 0x38, 0x4a, 0x3a, 0x18, 0x55, 0x52, 0x54, 0x46, 0xe5, 0x10, 0x2e, + 0x10, 0x89, 0xba, 0x99, 0xaa, 0x3e, 0x90, 0xa0, 0x97, 0x2d, 0x83, 0x83, 0x0a, 0x90, 0x92, 0x14, + 0xd0, 0x91, 0xa8, 0x80, 0x4c, 0xbc, 0x02, 0x3a, 0x05, 0x0a, 0x68, 0x96, 0x2f, 0x94, 0x7f, 0x23, + 0xa9, 0xd6, 0xb7, 0x79, 0x0d, 0xaf, 0x18, 0x76, 0x6e, 0xdf, 0x9d, 0x98, 0x62, 0x63, 0xb8, 0x52, + 0x6e, 0xe1, 0x0c, 0x1b, 0x03, 0xd1, 0xd2, 0x8e, 0xfb, 0x4f, 0x3a, 0x60, 0xef, 0x8a, 0x5d, 0x59, + 0x65, 0xaa, 0xbe, 0x6b, 0xa9, 0x86, 0xbd, 0x1e, 0x63, 0xcb, 0xa7, 0x60, 0xc4, 0x36, 0x1b, 0x96, + 0x86, 0x4a, 0xbc, 0x49, 0x93, 0x49, 0xdf, 0xaa, 0x7f, 0xea, 0xf0, 0x7a, 0xdc, 0x76, 0x74, 0x83, + 0x9c, 0x76, 0xf3, 0x8c, 0x7d, 0xd4, 0x07, 0xb0, 0xca, 0xbf, 0xef, 0xd9, 0xd9, 0xda, 0x7d, 0xcf, + 0xd9, 0x90, 0x7e, 0xa7, 0xfc, 0xfa, 0x8d, 0x8a, 0xab, 0x4c, 0xe3, 0x32, 0x7a, 0xb4, 0x83, 0x19, + 0xf4, 0x7b, 0x1d, 0xf8, 0x4e, 0xe8, 0x8d, 0x87, 0x0e, 0xb2, 0x0c, 0xb5, 0xfa, 0x9b, 0xa2, 0xa7, + 0x13, 0x21, 0x3d, 0x05, 0xde, 0x09, 0x84, 0x85, 0xa5, 0xef, 0x04, 0xc2, 0xcd, 0x4c, 0x47, 0x5f, + 0x4b, 0xb8, 0x7e, 0x73, 0x4b, 0xbf, 0xd7, 0xd0, 0xf1, 0x8d, 0x66, 0xba, 0x60, 0x78, 0xb6, 0xfa, + 0x4d, 0x20, 0x78, 0x64, 0x42, 0xc1, 0x83, 0x2d, 0x00, 0x3a, 0xdb, 0x5b, 0x00, 0x48, 0xde, 0x02, + 0xe0, 0x64, 0xdc, 0xae, 0x35, 0x22, 0x91, 0x32, 0x85, 0x37, 0xad, 0x91, 0x76, 0xa6, 0x8a, 0x8f, + 0x48, 0x32, 0xbd, 0x51, 0x43, 0x56, 0x05, 0x19, 0xda, 0xd6, 0x2a, 0xbe, 0x9f, 0x41, 0x5f, 0x4c, + 0xec, 0x98, 0x3a, 0x0a, 0xa7, 0xe3, 0x12, 0x1f, 0x97, 0x19, 0x9a, 0xf8, 0xb8, 0x7d, 0xcd, 0xbb, + 0xe8, 0x1d, 0xf8, 0x01, 0xc8, 0xb2, 0xe1, 0x6e, 0x8a, 0x6c, 0x26, 0x2d, 0x39, 0x32, 0x7e, 0x4e, + 0x5c, 0x20, 0xa0, 0x97, 0xce, 0x90, 0x99, 0x5c, 0x61, 0xfe, 0xd1, 0xca, 0x62, 0x95, 0xfa, 0xc8, + 0x99, 0x90, 0x52, 0x95, 0xe0, 0x79, 0x30, 0x4f, 0x27, 0xf4, 0xe1, 0x02, 0xbf, 0x33, 0xac, 0xd6, + 0x25, 0xf4, 0x83, 0x5a, 0xc3, 0x6a, 0xe5, 0xeb, 0x84, 0xaa, 0x95, 0xdf, 0xc9, 0xd4, 0xfa, 0xb9, + 0x84, 0x9d, 0xf3, 0x8e, 0xa5, 0xdf, 0xd7, 0xab, 0xa8, 0x82, 0xca, 0x37, 0x1e, 0x22, 0xad, 0xe1, + 0xa0, 0x45, 0xd3, 0x70, 0x2c, 0x55, 0x13, 0xfb, 0xdf, 0x08, 0x74, 0xad, 0x37, 0x8c, 0xb2, 0x4d, + 0x55, 0x49, 0x3e, 0xe4, 0xa3, 0x30, 0xa4, 0x51, 0xcc, 0x92, 0x4a, 0xde, 0x8d, 0x50, 0xa5, 0xed, + 0xf6, 0xda, 0xe9, 0x73, 0x12, 0x59, 0xa6, 0x4b, 0x03, 0xa2, 0x27, 0x92, 0xed, 0xaf, 0x0a, 0x0e, + 0xda, 0x0f, 0xf9, 0xc5, 0x15, 0xf2, 0xea, 0x06, 0x92, 0x83, 0x71, 0x00, 0x2c, 0xdd, 0xbf, 0x0d, + 0x80, 0xf9, 0x2d, 0x95, 0xf5, 0xf5, 0x75, 0x9c, 0xf1, 0x63, 0xd3, 0xc0, 0x29, 0x77, 0xaa, 0x3e, + 0xfe, 0xc9, 0xf4, 0x91, 0x8a, 0xee, 0x6c, 0x34, 0xd6, 0x66, 0x35, 0xb3, 0x46, 0x1f, 0x0e, 0xd2, + 0xff, 0x4e, 0xda, 0xe5, 0xcd, 0x39, 0x67, 0xab, 0x8e, 0x6c, 0x8c, 0x60, 0x17, 0x7b, 0x31, 0xf9, + 0x25, 0x7d, 0x7d, 0xbd, 0x30, 0xcc, 0x91, 0x49, 0x79, 0x0b, 0x86, 0x56, 0xec, 0x4a, 0x11, 0x3d, + 0x50, 0xad, 0xb2, 0x7d, 0xbb, 0xee, 0xdc, 0x6e, 0x08, 0x35, 0x4d, 0xea, 0x84, 0x1c, 0xa5, 0x8c, + 0xf9, 0x95, 0x12, 0x20, 0xa5, 0xe4, 0x71, 0x40, 0x0d, 0xb4, 0xf9, 0xdf, 0xca, 0xec, 0xc5, 0x9d, + 0x5a, 0x55, 0xd5, 0x6b, 0xb7, 0x4c, 0x6d, 0x13, 0x95, 0x6f, 0xe2, 0xc9, 0x13, 0x3b, 0xd1, 0x70, + 0x15, 0x83, 0xcd, 0x13, 0x4b, 0xbf, 0xd3, 0x58, 0x7b, 0x05, 0x6d, 0xe1, 0x89, 0xef, 0x2f, 0xf2, + 0xba, 0xe4, 0x09, 0xe8, 0xb5, 0xf5, 0x8a, 0xa1, 0x3a, 0x0d, 0x8b, 0x6c, 0xc2, 0xfb, 0x8b, 0xcd, + 0x86, 0xf8, 0xf5, 0x46, 0x94, 0x2f, 0xba, 0xde, 0x88, 0x76, 0x30, 0x91, 0xde, 0x25, 0xcf, 0x66, + 0x56, 0xf5, 0x8a, 0x81, 0x97, 0xd0, 0xab, 0x90, 0x75, 0xff, 0xa6, 0x82, 0xf4, 0x2f, 0x5c, 0xf9, + 0xe6, 0xe9, 0x74, 0xd6, 0xc6, 0x2d, 0xbf, 0x7c, 0x3a, 0x7d, 0x32, 0xc5, 0x2c, 0xce, 0x6b, 0x1a, + 0xb5, 0xd3, 0x22, 0x25, 0x25, 0x4f, 0x40, 0xe7, 0x12, 0x59, 0xca, 0xba, 0x24, 0x7b, 0xbe, 0x79, + 0x3a, 0x8d, 0x6d, 0xb6, 0x88, 0x5b, 0x95, 0x87, 0xf8, 0x01, 0x12, 0xe6, 0xc0, 0xd4, 0xe4, 0x43, + 0x44, 0x7e, 0x72, 0xd9, 0x8b, 0xd4, 0x3e, 0x30, 0x82, 0xfb, 0x5d, 0xec, 0x71, 0xbb, 0xf0, 0x75, + 0xae, 0x45, 0xe8, 0xba, 0xaf, 0x56, 0x1b, 0x88, 0xee, 0x5c, 0x0f, 0xc7, 0x25, 0x64, 0x9f, 0x7c, + 0xde, 0x6e, 0x1c, 0xe3, 0x2a, 0x7f, 0x9e, 0xc1, 0x7e, 0x3e, 0x5f, 0xae, 0xe9, 0x06, 0xa9, 0x09, + 0x73, 0xb6, 0xd4, 0xed, 0x6d, 0xb7, 0x5e, 0x85, 0x21, 0xdf, 0x3d, 0x4a, 0x52, 0x8b, 0x69, 0x96, + 0x54, 0xa4, 0xa4, 0xe0, 0xb5, 0xbb, 0x89, 0x8c, 0xaf, 0x37, 0x09, 0xaf, 0x72, 0x76, 0xb6, 0x7e, + 0x95, 0xb3, 0x4b, 0x7c, 0x95, 0xf3, 0x3a, 0x64, 0x6d, 0x47, 0x75, 0x1a, 0x36, 0xbd, 0x66, 0x77, + 0x24, 0x56, 0xad, 0x58, 0xd6, 0x55, 0x0c, 0x5f, 0xa4, 0x78, 0x85, 0x42, 0x5c, 0x71, 0x23, 0x5e, + 0xd1, 0xca, 0x71, 0x5c, 0xdb, 0x88, 0x07, 0x62, 0x86, 0xfb, 0x0f, 0xe4, 0x91, 0xd4, 0x3c, 0x79, + 0x00, 0xf7, 0x0e, 0x5a, 0x75, 0xd4, 0x4d, 0xf4, 0x92, 0xa5, 0x1a, 0x8e, 0xd8, 0x1b, 0x6f, 0x42, + 0xb6, 0x82, 0x21, 0xe8, 0xa6, 0x6a, 0x36, 0x4e, 0x3c, 0x4c, 0xcb, 0x23, 0x8f, 0x55, 0x5b, 0xa4, + 0xd8, 0x85, 0x53, 0x71, 0x2f, 0xa4, 0x78, 0x1c, 0x29, 0x07, 0xf0, 0xd3, 0x08, 0x5e, 0x17, 0x13, + 0x68, 0x0b, 0xc7, 0x96, 0x79, 0x97, 0x1b, 0xd5, 0xf1, 0x41, 0x08, 0xa5, 0xc9, 0x41, 0x37, 0xe6, + 0x87, 0x5d, 0xcb, 0xf4, 0x3e, 0xe3, 0xa3, 0x44, 0x74, 0x04, 0x1a, 0x25, 0xa2, 0x1d, 0x1e, 0x6f, + 0x67, 0x9e, 0x1c, 0x86, 0xcc, 0x8a, 0x5d, 0x91, 0x55, 0xe8, 0xf6, 0x1e, 0x0a, 0xbe, 0x90, 0xe0, + 0x71, 0x14, 0x2e, 0x3f, 0x9b, 0x0e, 0x8e, 0xe5, 0x97, 0x32, 0xf4, 0xb0, 0x37, 0x7c, 0x49, 0x5e, + 0xed, 0x01, 0xe6, 0xe7, 0x52, 0x02, 0xb2, 0x51, 0xfe, 0x4a, 0x82, 0x51, 0xd1, 0xe3, 0xa6, 0x0b, + 0x09, 0xc4, 0x04, 0x78, 0xf9, 0x17, 0xdb, 0xc3, 0x63, 0x3c, 0x7d, 0x28, 0xc1, 0x44, 0xec, 0xe3, + 0x99, 0x2b, 0xe9, 0x06, 0xe0, 0x22, 0xe7, 0x17, 0x9f, 0x01, 0x99, 0xb1, 0xf8, 0x8f, 0x12, 0xec, + 0x4f, 0xbc, 0x45, 0x7c, 0x2d, 0xdd, 0x48, 0x42, 0x02, 0xf9, 0x97, 0x9e, 0x91, 0x00, 0x63, 0xf7, + 0x91, 0x04, 0x23, 0xdc, 0x57, 0x94, 0x67, 0x13, 0x46, 0xe0, 0x21, 0xe5, 0xaf, 0xb4, 0x81, 0xc4, + 0x58, 0xf9, 0x5b, 0x09, 0xf2, 0x31, 0x2f, 0x18, 0x2f, 0x27, 0xd0, 0x16, 0xa3, 0xe6, 0xe7, 0xdb, + 0x46, 0x65, 0xcc, 0xbd, 0x2f, 0xc1, 0x5e, 0xfe, 0xcd, 0xd0, 0x73, 0xa9, 0x65, 0xf6, 0x61, 0xe5, + 0x7f, 0xab, 0x1d, 0x2c, 0xc6, 0xcd, 0x16, 0xec, 0x0e, 0x5f, 0x48, 0x4a, 0x0a, 0x22, 0x21, 0xf8, + 0xfc, 0x85, 0xd6, 0xe0, 0x03, 0x8a, 0xe0, 0xdf, 0x0d, 0x3a, 0x97, 0x4a, 0xcb, 0x21, 0xac, 0x44, + 0x45, 0xc4, 0xdf, 0xed, 0xf9, 0x23, 0xd8, 0x13, 0xbd, 0xa3, 0x72, 0x2a, 0x0d, 0x49, 0x3f, 0x46, + 0xfe, 0x52, 0xab, 0x18, 0x8c, 0x81, 0xbf, 0x91, 0x60, 0x4c, 0xbc, 0xbd, 0x49, 0xa2, 0x2b, 0xc4, + 0xcc, 0x5f, 0x6f, 0x17, 0x33, 0xe0, 0x4e, 0x31, 0x97, 0x51, 0x2f, 0xa7, 0x32, 0x40, 0x1e, 0x6a, + 0xa2, 0x3b, 0xa5, 0xb8, 0x44, 0xea, 0x46, 0xc9, 0xc4, 0xab, 0x8d, 0xd7, 0xd2, 0xbb, 0x2d, 0x97, + 0x40, 0x62, 0x94, 0x4c, 0x7d, 0x1f, 0xf1, 0x03, 0x09, 0xc6, 0xe3, 0xce, 0x82, 0x0b, 0x2d, 0x6a, + 0xc4, 0x1f, 0x09, 0x16, 0xda, 0xc7, 0x0d, 0x46, 0x27, 0xee, 0x69, 0xd1, 0xb9, 0x54, 0x6e, 0x1e, + 0xc2, 0x4a, 0x8e, 0x4e, 0x71, 0x87, 0x33, 0x58, 0x5b, 0x71, 0xe5, 0xfc, 0x42, 0x7a, 0x97, 0x0f, + 0xe3, 0x26, 0x6a, 0x2b, 0x4d, 0x39, 0xde, 0x97, 0xa2, 0xc5, 0x6f, 0xf4, 0x52, 0xa6, 0x68, 0x21, + 0x81, 0xb4, 0x29, 0x3a, 0xf1, 0x69, 0x92, 0xfc, 0x77, 0x12, 0x4c, 0xc6, 0x5f, 0x99, 0x4e, 0x97, + 0x4c, 0x04, 0xd8, 0xf9, 0xa5, 0x67, 0xc1, 0x66, 0x5c, 0xfe, 0xbd, 0x04, 0x53, 0x09, 0x47, 0xc7, + 0x57, 0x5b, 0x1f, 0xc8, 0xef, 0x28, 0x37, 0x9e, 0x09, 0x9d, 0x31, 0xfa, 0xd7, 0x12, 0xe4, 0x84, + 0xe7, 0x86, 0x17, 0x53, 0x19, 0x7e, 0x14, 0x31, 0x7f, 0xad, 0x4d, 0xc4, 0x80, 0xfe, 0x12, 0xae, + 0x9f, 0x5e, 0x4d, 0x6f, 0xfb, 0x1c, 0xf4, 0x44, 0xfd, 0xa5, 0xbc, 0x3e, 0xfa, 0x9e, 0x04, 0x32, + 0xe7, 0x94, 0xea, 0x74, 0x52, 0x79, 0x21, 0x82, 0x92, 0xbf, 0xdc, 0x32, 0x0a, 0x63, 0xe2, 0x0f, + 0x61, 0x28, 0x72, 0xfe, 0x93, 0xb4, 0xc3, 0x09, 0x23, 0xe4, 0x2f, 0xb6, 0x88, 0xe0, 0x5f, 0x75, + 0x44, 0x4f, 0x56, 0x92, 0x56, 0x1d, 0x11, 0x8c, 0xc4, 0x55, 0x87, 0xf0, 0x4c, 0x03, 0xc7, 0x7b, + 0xfe, 0x81, 0x46, 0x52, 0xbc, 0xe7, 0x62, 0x25, 0xc6, 0xfb, 0xd8, 0x33, 0x09, 0xf9, 0x2f, 0x24, + 0xd8, 0x27, 0x38, 0x90, 0x38, 0x9f, 0x18, 0x04, 0x79, 0x68, 0xf9, 0xab, 0x6d, 0xa1, 0x05, 0x18, + 0x12, 0x94, 0xf2, 0xcf, 0x27, 0xee, 0xb5, 0xdb, 0x62, 0x28, 0xbe, 0x0e, 0x2e, 0xdb, 0x30, 0x10, + 0xac, 0xc6, 0x9e, 0x48, 0xa0, 0x17, 0x80, 0xce, 0x9f, 0x6b, 0x05, 0x3a, 0x10, 0x51, 0x12, 0xea, + 0x76, 0x49, 0x62, 0xc5, 0xa3, 0x27, 0x46, 0x94, 0x74, 0x75, 0x2a, 0xb9, 0x0e, 0xfd, 0x81, 0x5f, + 0x8c, 0x3a, 0x9e, 0x40, 0xd6, 0x0f, 0x9c, 0x3f, 0xdb, 0x02, 0xb0, 0x3f, 0x7c, 0x44, 0x7e, 0x0b, + 0x6f, 0x2e, 0x15, 0xa1, 0x26, 0x42, 0x62, 0xf8, 0x10, 0xfd, 0x88, 0x1b, 0x36, 0x4f, 0xc1, 0x2f, + 0xb8, 0x9d, 0x4f, 0x45, 0x33, 0x8c, 0x96, 0x68, 0x9e, 0xf1, 0x3f, 0xdb, 0x85, 0x8b, 0x00, 0xdc, + 0x2a, 0x61, 0x92, 0x72, 0x79, 0x48, 0x89, 0x45, 0x80, 0xb8, 0x12, 0x1f, 0xce, 0x2e, 0x9c, 0x02, + 0x5f, 0x52, 0x76, 0x89, 0xa2, 0x24, 0x66, 0x17, 0x71, 0x2d, 0x2f, 0xdf, 0xf5, 0xee, 0x57, 0x8f, + 0x8f, 0x49, 0x0b, 0x1b, 0x9f, 0x7d, 0x31, 0x25, 0x3d, 0xf9, 0x62, 0x4a, 0xfa, 0xe9, 0x17, 0x53, + 0xd2, 0x5f, 0x7e, 0x39, 0xb5, 0xeb, 0xc9, 0x97, 0x53, 0xbb, 0x7e, 0xf4, 0xe5, 0xd4, 0xae, 0xdf, + 0x7f, 0xd5, 0x57, 0xe4, 0x5f, 0xf6, 0x46, 0xb9, 0xa5, 0xae, 0xd9, 0x73, 0x6c, 0xcc, 0x93, 0x9a, + 0x69, 0x21, 0xff, 0xe7, 0x86, 0xaa, 0x1b, 0x73, 0x35, 0xb3, 0xdc, 0xa8, 0x22, 0xbb, 0xf9, 0x53, + 0x8f, 0xf8, 0x40, 0x60, 0x2d, 0x8b, 0x7f, 0xa6, 0xf1, 0xec, 0xaf, 0x03, 0x00, 0x00, 0xff, 0xff, + 0xcf, 0xe6, 0x59, 0x86, 0xe8, 0x52, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5942,6 +5948,16 @@ func (m *MsgInstantSpotMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x48 + } + if m.BaseDecimals != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x40 + } { size := m.MinNotional.Size() i -= size @@ -9232,6 +9248,12 @@ func (m *MsgInstantSpotMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinNotional.Size() n += 1 + l + sovTx(uint64(l)) + if m.BaseDecimals != 0 { + n += 1 + sovTx(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovTx(uint64(m.QuoteDecimals)) + } return n } @@ -12459,6 +12481,44 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/chain/exchange/types/wasm_maker_contract.go b/chain/exchange/types/wasm_maker_contract.go deleted file mode 100644 index 8b75eb9f..00000000 --- a/chain/exchange/types/wasm_maker_contract.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" -) - -type MintToUser struct { - SubaccountIDSender string `json:"subaccount_id_sender"` - Amount string `json:"amount"` -} - -type MintToUserMsg struct { - MintToUser MintToUser `json:"mint_to_user"` -} - -func NewMintToUserMsg(subaccountIDSender string, amount math.Int) MintToUserMsg { - return MintToUserMsg{ - MintToUser: MintToUser{ - SubaccountIDSender: subaccountIDSender, - Amount: amount.String(), - }, - } -} diff --git a/chain/helpers/common.go b/chain/helpers/common.go new file mode 100644 index 00000000..2254ea53 --- /dev/null +++ b/chain/helpers/common.go @@ -0,0 +1,27 @@ +package helpers + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func HasDuplicate[T comparable](elements []T) bool { + seen := make(map[T]struct{}) + for idx := range elements { + if _, ok := seen[elements[idx]]; ok { + return true // Duplicate found + } + seen[elements[idx]] = struct{}{} + } + return false +} + +func HasDuplicateCoins(slice []sdk.Coin) bool { + seen := make(map[string]struct{}) + for _, item := range slice { + if _, ok := seen[item.Denom]; ok { + return true + } + seen[item.Denom] = struct{}{} + } + return false +} diff --git a/chain/insurance/types/errors.go b/chain/insurance/types/errors.go deleted file mode 100644 index fb934756..00000000 --- a/chain/insurance/types/errors.go +++ /dev/null @@ -1,20 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" -) - -var ( - ErrInsuranceFundAlreadyExists = errors.Register(ModuleName, 1, "insurance fund already exists") - ErrInsuranceFundNotFound = errors.Register(ModuleName, 2, "insurance fund not found") - ErrRedemptionAlreadyExists = errors.Register(ModuleName, 3, "redemption already exists") - ErrInvalidDepositAmount = errors.Register(ModuleName, 4, "invalid deposit amount") - ErrInvalidDepositDenom = errors.Register(ModuleName, 5, "invalid deposit denom") - ErrPayoutTooLarge = errors.Register(ModuleName, 6, "insurance payout exceeds deposits") - ErrInvalidTicker = errors.Register(ModuleName, 7, "invalid ticker") - ErrInvalidQuoteDenom = errors.Register(ModuleName, 8, "invalid quote denom") - ErrInvalidOracle = errors.Register(ModuleName, 9, "invalid oracle") - ErrInvalidExpirationTime = errors.Register(ModuleName, 10, "invalid expiration time") - ErrInvalidMarketID = errors.Register(ModuleName, 11, "invalid marketID") - ErrInvalidShareDenom = errors.Register(ModuleName, 12, "invalid share denom") -) diff --git a/chain/insurance/types/events.go b/chain/insurance/types/events.go deleted file mode 100644 index ab1254f4..00000000 --- a/chain/insurance/types/events.go +++ /dev/null @@ -1 +0,0 @@ -package types diff --git a/chain/insurance/types/expected_keepers.go b/chain/insurance/types/expected_keepers.go deleted file mode 100644 index 0e5195ef..00000000 --- a/chain/insurance/types/expected_keepers.go +++ /dev/null @@ -1,20 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx context.Context, denomMeta banktypes.Metadata) -} diff --git a/chain/insurance/types/genesis.go b/chain/insurance/types/genesis.go deleted file mode 100644 index 701f339e..00000000 --- a/chain/insurance/types/genesis.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - "errors" -) - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if gs.NextRedemptionScheduleId == 0 { - return errors.New("NextRedemptionScheduleId should NOT be zero") - } - if gs.NextShareDenomId == 0 { - return errors.New("NextShareDenomId should NOT be zero") - } - - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - NextShareDenomId: 1, - NextRedemptionScheduleId: 1, - RedemptionSchedule: []RedemptionSchedule{}, - InsuranceFunds: []InsuranceFund{}, - } -} diff --git a/chain/insurance/types/insurance.go b/chain/insurance/types/insurance.go deleted file mode 100644 index de861276..00000000 --- a/chain/insurance/types/insurance.go +++ /dev/null @@ -1,56 +0,0 @@ -package types - -import ( - "fmt" - "time" - - "cosmossdk.io/math" - "github.com/ethereum/go-ethereum/common" - - oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" -) - -var ( - InsuranceFundInitialSupply = math.NewIntWithDecimal(1, 18) - InsuranceFundProtocolOwnedLiquiditySupply = math.NewIntWithDecimal(1, 16) - InsuranceFundCreatorSupply = InsuranceFundInitialSupply.Sub(InsuranceFundProtocolOwnedLiquiditySupply) -) - -func NewInsuranceFund( - marketID common.Hash, - depositDenom, poolTokenDenom string, - redemptionNoticePeriodDuration time.Duration, - ticker, oracleBase, oracleQuote string, oracleType oracletypes.OracleType, expiry int64, -) *InsuranceFund { - - return &InsuranceFund{ - DepositDenom: depositDenom, - InsurancePoolTokenDenom: poolTokenDenom, - RedemptionNoticePeriodDuration: redemptionNoticePeriodDuration, - Balance: math.ZeroInt(), - TotalShare: math.ZeroInt(), - MarketId: marketID.Hex(), - MarketTicker: ticker, - OracleBase: oracleBase, - OracleQuote: oracleQuote, - OracleType: oracleType, - Expiry: expiry, - } - -} - -func (fund InsuranceFund) ShareDenom() string { - return fund.InsurancePoolTokenDenom -} - -func (fund *InsuranceFund) AddTotalShare(shares math.Int) { - fund.TotalShare = fund.TotalShare.Add(shares) -} - -func (fund *InsuranceFund) SubTotalShare(shares math.Int) { - fund.TotalShare = fund.TotalShare.Sub(shares) -} - -func ShareDenomFromId(id uint64) string { - return fmt.Sprintf("share%d", id) -} diff --git a/chain/insurance/types/key.go b/chain/insurance/types/key.go deleted file mode 100644 index 1dd40c09..00000000 --- a/chain/insurance/types/key.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "time" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const ( - ModuleName = "insurance" - StoreKey = ModuleName -) - -var ( - // Key for insurance prefixes - InsuranceFundPrefixKey = []byte{0x02} - - // Key for insurance redemption prefixes - RedemptionSchedulePrefixKey = []byte{0x03} - - GlobalShareDenomIdPrefixKey = []byte{0x04, 0x00} - GlobalRedemptionScheduleIdPrefixKey = []byte{0x05, 0x00} - - ParamsKey = []byte{0x10} -) - -// GetRedemptionScheduleKey provides the key to store a single pending redemption -func GetRedemptionScheduleKey(redemptionID uint64, claimTime time.Time) []byte { - key := RedemptionSchedulePrefixKey - key = append(key, sdk.FormatTimeBytes(claimTime)...) - key = append(key, sdk.Uint64ToBigEndian(redemptionID)...) - return key -} - -// GetRedemptionScheduleKey provides the key to store a single pending redemption -func (sh RedemptionSchedule) GetRedemptionScheduleKey() []byte { - return GetRedemptionScheduleKey(sh.Id, sh.ClaimableRedemptionTime) -} diff --git a/chain/insurance/types/msgs.go b/chain/insurance/types/msgs.go deleted file mode 100644 index 689f01f8..00000000 --- a/chain/insurance/types/msgs.go +++ /dev/null @@ -1,184 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" -) - -const RouterKey = ModuleName - -var ( - _ sdk.Msg = &MsgCreateInsuranceFund{} - _ sdk.Msg = &MsgUnderwrite{} - _ sdk.Msg = &MsgRequestRedemption{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return "updateParams" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgCreateInsuranceFund) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgCreateInsuranceFund) Type() string { return "createInsuranceFund" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgCreateInsuranceFund) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.Ticker == "" || len(msg.Ticker) > 40 { - return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed 40 characters") - } - if msg.QuoteDenom == "" { - return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") - } - if msg.OracleBase == "" { - return errors.Wrap(ErrInvalidOracle, "oracle base should not be empty") - } - if msg.OracleQuote == "" { - return errors.Wrap(ErrInvalidOracle, "oracle quote should not be empty") - } - if msg.OracleType == oracletypes.OracleType_Unspecified { - return errors.Wrap(ErrInvalidOracle, "oracle type should not be unspecified") - } - if msg.QuoteDenom != msg.InitialDeposit.Denom { - return errors.Wrapf(ErrInvalidDepositDenom, "oracle quote denom %s does not match deposit denom %s", msg.QuoteDenom, msg.InitialDeposit.Denom) - } - - if msg.OracleType == oracletypes.OracleType_Provider && msg.Expiry != BinaryOptionsExpiryFlag && msg.Expiry != PerpetualExpiryFlag { - return errors.Wrap(ErrInvalidExpirationTime, "oracle expiration time should be -2 or -1 for OracleType_Provider") - } - - if !msg.InitialDeposit.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) - } - if !msg.InitialDeposit.IsPositive() || msg.InitialDeposit.Amount.GT(MaxUnderwritingAmount) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.InitialDeposit.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgCreateInsuranceFund) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgCreateInsuranceFund) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUnderwrite) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUnderwrite) Type() string { return "underwrite" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgUnderwrite) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.MarketId == "" { - return errors.Wrap(ErrInvalidMarketID, msg.MarketId) - } - if !msg.Deposit.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Deposit.String()) - } - if !msg.Deposit.IsPositive() || msg.Deposit.Amount.GT(MaxUnderwritingAmount) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Deposit.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUnderwrite) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUnderwrite) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgRequestRedemption) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgRequestRedemption) Type() string { return "requestRedemption" } - -// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message -func (msg MsgRequestRedemption) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - if msg.MarketId == "" { - return errors.Wrap(ErrInvalidMarketID, msg.MarketId) - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - if !msg.Amount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgRequestRedemption) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgRequestRedemption) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - return []sdk.AccAddress{sender} -} diff --git a/chain/insurance/types/params.go b/chain/insurance/types/params.go deleted file mode 100644 index 7cd8f19a..00000000 --- a/chain/insurance/types/params.go +++ /dev/null @@ -1,78 +0,0 @@ -package types - -import ( - "fmt" - "time" - - "cosmossdk.io/math" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -var _ paramtypes.ParamSet = &Params{} - -// insurance params default values -const ( - // DefaultInsurancePeriodDurationSeconds represents the number of seconds in two weeks - DefaultInsurancePeriod = time.Hour * 24 * 14 - DefaultBinaryOptionsInsurancePeriod = time.Minute -) - -// MaxUnderwritingAmount equals 1 trillion * 1e18 -var MaxUnderwritingAmount, _ = math.NewIntFromString("1000000000000000000000000000") -var PerpetualExpiryFlag int64 = -1 -var BinaryOptionsExpiryFlag int64 = -2 - -// Parameter keys -var ( - KeyDefaultRedemptionNoticePeriodDuration = []byte("defaultRedemptionNoticePeriodDuration") -) - -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// NewParams creates a new Params instance -func NewParams( - defaultRedemptionNoticePeriodDuration time.Duration, -) Params { - return Params{ - DefaultRedemptionNoticePeriodDuration: defaultRedemptionNoticePeriodDuration, - } -} - -// ParamSetPairs returns the parameter set pairs. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyDefaultRedemptionNoticePeriodDuration, &p.DefaultRedemptionNoticePeriodDuration, validateNoticePeriodDuration), - } -} - -// DefaultParams returns a default set of parameters. -func DefaultParams() Params { - return Params{ - DefaultRedemptionNoticePeriodDuration: DefaultInsurancePeriod, - } -} - -// Validate performs basic validation on insurance parameters. -func (p Params) Validate() error { - if err := validateNoticePeriodDuration(p.DefaultRedemptionNoticePeriodDuration); err != nil { - return err - } - - return nil -} - -func validateNoticePeriodDuration(i interface{}) error { - v, ok := i.(time.Duration) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v == 0 { - return fmt.Errorf("DefaultRedemptionNoticePeriodDuration must be positive: %d", v) - } - - return nil -} diff --git a/chain/insurance/types/paramset.go b/chain/insurance/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/insurance/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/ocr/types/expected_keepers.go b/chain/ocr/types/expected_keepers.go deleted file mode 100644 index feb64c63..00000000 --- a/chain/ocr/types/expected_keepers.go +++ /dev/null @@ -1,29 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - bank "github.com/cosmos/cosmos-sdk/x/bank/types" - params "github.com/cosmos/cosmos-sdk/x/params/types" -) - -// ParamSubspace defines the expected Subspace interfacace -type ParamSubspace interface { - WithKeyTable(table params.KeyTable) params.Subspace - Get(ctx sdk.Context, key []byte, ptr interface{}) - GetParamSet(ctx sdk.Context, ps params.ParamSet) - SetParamSet(ctx sdk.Context, ps params.ParamSet) -} - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx context.Context, denomMeta bank.Metadata) -} diff --git a/chain/ocr/types/genesis.go b/chain/ocr/types/genesis.go deleted file mode 100644 index 3739aca4..00000000 --- a/chain/ocr/types/genesis.go +++ /dev/null @@ -1,18 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/ocr/types/hooks.go b/chain/ocr/types/hooks.go deleted file mode 100644 index 5bec4b95..00000000 --- a/chain/ocr/types/hooks.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -type OcrHooks interface { - AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) - AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) - AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) -} - -var _ OcrHooks = MultiOcrHooks{} - -type MultiOcrHooks []OcrHooks - -func NewMultiOcrHooks(hooks ...OcrHooks) MultiOcrHooks { - return hooks -} - -func (h MultiOcrHooks) AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) { - for i := range h { - h[i].AfterSetFeedConfig(ctx, feedConfig) - } -} - -func (h MultiOcrHooks) AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) { - for i := range h { - h[i].AfterTransmit(ctx, feedId, answer, timestamp) - } -} - -func (h MultiOcrHooks) AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) { - for i := range h { - h[i].AfterFundFeedRewardPool(ctx, feedId, newPoolAmount) - } -} diff --git a/chain/ocr/types/msgs.go b/chain/ocr/types/msgs.go deleted file mode 100644 index 836a1c4a..00000000 --- a/chain/ocr/types/msgs.go +++ /dev/null @@ -1,470 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -) - -const ( - TypeMsgCreateFeed = "createFeed" - TypeMsgUpdateFeed = "updateFeed" - TypeMsgTransmit = "transmit" - TypeMsgFundFeedRewardPool = "fundFeedRewardPool" - TypeMsgWithdrawFeedRewardPool = "withdrawFeedRewardPool" - TypeMsgSetPayees = "setPayees" - TypeMsgTransferPayeeship = "transferPayeeship" - TypeMsgAcceptPayeeship = "acceptPayeeship" - TypeMsgUpdateParams = "updateParams" -) - -var ( - _ sdk.Msg = &MsgCreateFeed{} - _ sdk.Msg = &MsgUpdateFeed{} - _ sdk.Msg = &MsgTransmit{} - _ sdk.Msg = &MsgFundFeedRewardPool{} - _ sdk.Msg = &MsgWithdrawFeedRewardPool{} - _ sdk.Msg = &MsgSetPayees{} - _ sdk.Msg = &MsgTransferPayeeship{} - _ sdk.Msg = &MsgAcceptPayeeship{} - _ sdk.Msg = &MsgUpdateParams{} -) - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateParams) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -// ValidateBasic implements the sdk.Msg interface for MsgUpdateParams. -func (msg MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := msg.Params.Validate(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgCreateFeed) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgCreateFeed) Type() string { return TypeMsgCreateFeed } - -// ValidateBasic implements the sdk.Msg interface for MsgCreateFeed. -func (msg MsgCreateFeed) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if err := msg.Config.ValidateBasic(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgCreateFeed) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgCreateFeed) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgUpdateFeed) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgUpdateFeed) Type() string { return TypeMsgUpdateFeed } - -// ValidateBasic implements the sdk.Msg interface for MsgUpdateFeed. -func (msg MsgUpdateFeed) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - seenTransmitters := make(map[string]struct{}, len(msg.Transmitters)) - for _, transmitter := range msg.Transmitters { - addr, err := sdk.AccAddressFromBech32(transmitter) - if err != nil { - return err - } - - if _, ok := seenTransmitters[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenTransmitters[addr.String()] = struct{}{} - } - } - - seenSigners := make(map[string]struct{}, len(msg.Signers)) - for _, signer := range msg.Signers { - addr, err := sdk.AccAddressFromBech32(signer) - if err != nil { - return err - } - - if _, ok := seenSigners[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenSigners[addr.String()] = struct{}{} - } - } - - if msg.LinkPerTransmission != nil { - if msg.LinkPerTransmission.IsNil() || !msg.LinkPerTransmission.IsPositive() { - return errors.Wrap(ErrIncorrectConfig, "LinkPerTransmission must be positive") - } - } - - if msg.LinkPerObservation != nil { - if msg.LinkPerObservation.IsNil() || !msg.LinkPerObservation.IsPositive() { - return errors.Wrap(ErrIncorrectConfig, "LinkPerObservation must be positive") - } - } - - if msg.LinkDenom == "" { - return sdkerrors.ErrInvalidCoins - } - - if msg.FeedAdmin != "" { - if _, err := sdk.AccAddressFromBech32(msg.FeedAdmin); err != nil { - return err - } - } - - if msg.BillingAdmin != "" { - if _, err := sdk.AccAddressFromBech32(msg.BillingAdmin); err != nil { - return err - } - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgUpdateFeed) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgUpdateFeed) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgTransmit) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgTransmit) Type() string { return TypeMsgTransmit } - -// ValidateBasic implements the sdk.Msg interface for MsgTransmit. -func (msg MsgTransmit) ValidateBasic() error { - if msg.Transmitter == "" { - return ErrNoTransmitter - } - - switch { - case len(msg.ConfigDigest) == 0: - return errors.Wrap(ErrIncorrectTransmissionData, "missing config digest") - case msg.FeedId == "": - return errors.Wrap(ErrIncorrectTransmissionData, "missing feed hash") - case msg.Report == nil: - return errors.Wrap(ErrIncorrectTransmissionData, "missing report") - } - - if len(msg.Report.Observers) > MaxNumOracles { - return errors.Wrap(ErrIncorrectTransmissionData, "too many observers") - } else if len(msg.Report.Observations) != len(msg.Report.Observers) { - return errors.Wrap(ErrIncorrectTransmissionData, "wrong observations count") - } - - if len(msg.Report.Observations) > MaxNumOracles { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "num observations out of bounds") - } - - for i := 0; i < len(msg.Report.Observations)-1; i++ { - inOrder := msg.Report.Observations[i].LTE(msg.Report.Observations[i+1]) - if !inOrder { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "observations not sorted") - } - } - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgTransmit) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgTransmit) GetSigners() []sdk.AccAddress { - transmitter, err := sdk.AccAddressFromBech32(msg.Transmitter) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{transmitter} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgFundFeedRewardPool) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgFundFeedRewardPool) Type() string { return TypeMsgFundFeedRewardPool } - -// ValidateBasic implements the sdk.Msg interface for MsgFundFeedRewardPool. -func (msg MsgFundFeedRewardPool) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgFundFeedRewardPool) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgFundFeedRewardPool) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgWithdrawFeedRewardPool) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgWithdrawFeedRewardPool) Type() string { return TypeMsgWithdrawFeedRewardPool } - -// ValidateBasic implements the sdk.Msg interface for MsgWithdrawFeedRewardPool. -func (msg MsgWithdrawFeedRewardPool) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if !msg.Amount.IsValid() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgWithdrawFeedRewardPool) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgWithdrawFeedRewardPool) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgSetPayees) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgSetPayees) Type() string { return TypeMsgSetPayees } - -// ValidateBasic implements the sdk.Msg interface for MsgSetPayees. -func (msg MsgSetPayees) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if len(msg.Transmitters) != len(msg.Payees) || len(msg.Payees) == 0 { - return ErrInvalidPayees - } - - seenTransmitters := make(map[string]struct{}, len(msg.Transmitters)) - for _, transmitter := range msg.Transmitters { - addr, err := sdk.AccAddressFromBech32(transmitter) - if err != nil { - return err - } - - if _, ok := seenTransmitters[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenTransmitters[addr.String()] = struct{}{} - } - } - - seenPayees := make(map[string]struct{}, len(msg.Payees)) - for _, payee := range msg.Payees { - addr, err := sdk.AccAddressFromBech32(payee) - if err != nil { - return err - } - - if _, ok := seenPayees[addr.String()]; ok { - return ErrRepeatedAddress - } else { - seenPayees[addr.String()] = struct{}{} - } - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgSetPayees) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgSetPayees) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgTransferPayeeship) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgTransferPayeeship) Type() string { return TypeMsgTransferPayeeship } - -// ValidateBasic implements the sdk.Msg interface for MsgTransferPayeeship. -func (msg MsgTransferPayeeship) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if _, err := sdk.AccAddressFromBech32(msg.Transmitter); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Transmitter) - } - - if _, err := sdk.AccAddressFromBech32(msg.Proposed); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Proposed) - } - - if msg.Transmitter == msg.Proposed { - return errors.Wrap(sdkerrors.ErrInvalidAddress, "proposed cannot be the same as transmitter") - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgTransferPayeeship) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgTransferPayeeship) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} - -// Route implements the sdk.Msg interface. It should return the name of the module -func (msg MsgAcceptPayeeship) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. It should return the action. -func (msg MsgAcceptPayeeship) Type() string { return TypeMsgAcceptPayeeship } - -// ValidateBasic implements the sdk.Msg interface for MsgAcceptPayeeship. -func (msg MsgAcceptPayeeship) ValidateBasic() error { - if msg.Payee == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Payee) - } - - if msg.FeedId == "" || len(msg.FeedId) > FeedIDMaxLength { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "feedId not valid") - } - - if _, err := sdk.AccAddressFromBech32(msg.Transmitter); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Transmitter) - } - - return nil -} - -// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing -func (msg *MsgAcceptPayeeship) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements the sdk.Msg interface. It defines whose signature is required -func (msg MsgAcceptPayeeship) GetSigners() []sdk.AccAddress { - sender, err := sdk.AccAddressFromBech32(msg.Payee) - if err != nil { - panic(err) - } - - return []sdk.AccAddress{sender} -} diff --git a/chain/oracle/types/band_ibc.go b/chain/oracle/types/band_ibc.go deleted file mode 100644 index 820053db..00000000 --- a/chain/oracle/types/band_ibc.go +++ /dev/null @@ -1,129 +0,0 @@ -package types - -import ( - "fmt" - - bandobi "github.com/bandprotocol/bandchain-packet/obi" - bandPacket "github.com/bandprotocol/bandchain-packet/packet" - - bandprice "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/hooks/price" -) - -func NewOracleRequestPacketData(clientID string, calldata []byte, r *BandOracleRequest) bandPacket.OracleRequestPacketData { - return bandPacket.OracleRequestPacketData{ - ClientID: clientID, - OracleScriptID: uint64(r.OracleScriptId), - Calldata: calldata, - AskCount: r.AskCount, - MinCount: r.MinCount, - FeeLimit: r.FeeLimit, - PrepareGas: r.PrepareGas, - ExecuteGas: r.ExecuteGas, - } -} - -// GetCalldata gets the Band IBC request call data based on the symbols and multiplier. -func (r *BandOracleRequest) GetCalldata(legacyScheme bool) []byte { - if legacyScheme { - return bandobi.MustEncode(bandprice.Input{ - Symbols: r.Symbols, - Multiplier: BandPriceMultiplier, - }) - } - - return bandobi.MustEncode(bandprice.SymbolInput{ - Symbols: r.Symbols, - MinimumSourceCount: uint8(r.MinSourceCount), - }) -} - -func DecodeOracleInput(data []byte) (OracleInput, error) { - var ( - legacyInput LegacyBandInput - newInput BandInput - err error - ) - - if err = bandobi.Decode(data, &legacyInput); err == nil { - return legacyInput, nil - } - - if err = bandobi.Decode(data, &newInput); err == nil { - return newInput, nil - } - - return nil, fmt.Errorf("failed to decode oracle input: %w", err) -} - -func DecodeOracleOutput(data []byte) (OracleOutput, error) { - var ( - legacyOutput LegacyBandOutput - newOutput BandOutput - err error - ) - - if err = bandobi.Decode(data, &legacyOutput); err == nil { - return legacyOutput, nil - } - - if err = bandobi.Decode(data, &newOutput); err == nil { - return newOutput, nil - } - - return nil, fmt.Errorf("failed to decode oracle output: %w", err) -} - -// it is assumed that the id of a symbol -// within OracleInput exists within OracleOutput - -type OracleInput interface { - PriceSymbols() []string - PriceMultiplier() uint64 -} - -type ( - LegacyBandInput bandprice.Input - BandInput bandprice.SymbolInput -) - -func (in LegacyBandInput) PriceSymbols() []string { - return in.Symbols -} - -func (in LegacyBandInput) PriceMultiplier() uint64 { - return in.Multiplier -} - -func (in BandInput) PriceSymbols() []string { - return in.Symbols -} - -func (in BandInput) PriceMultiplier() uint64 { - return BandPriceMultiplier -} - -type OracleOutput interface { - Rate(id int) uint64 - Valid(id int) bool -} - -type ( - LegacyBandOutput bandprice.Output - BandOutput bandprice.SymbolOutput -) - -func (out LegacyBandOutput) Rate(id int) uint64 { - return out.Pxs[id] -} - -func (out LegacyBandOutput) Valid(id int) bool { - return true -} - -func (out BandOutput) Rate(id int) uint64 { - return out.Responses[id].Rate -} - -func (out BandOutput) Valid(id int) bool { - return out.Responses[id].ResponseCode == 0 -} diff --git a/chain/oracle/types/coinbase_oracle.go b/chain/oracle/types/coinbase_oracle.go deleted file mode 100644 index ab02126b..00000000 --- a/chain/oracle/types/coinbase_oracle.go +++ /dev/null @@ -1,101 +0,0 @@ -package types - -import ( - "bytes" - "strings" - - "cosmossdk.io/errors" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" -) - -const ( - CoinbaseOraclePublicKey = "0xfCEAdAFab14d46e20144F48824d0C09B1a03F2BC" - preamblePrefix = "\x19Ethereum Signed Message:\n32" -) - -const CoinbaseABIJSON = `[{ - "name": "coinbase", - "stateMutability": "pure", - "type": "function", - "inputs": [ - { "internalType": "string", "name": "kind", "type": "string" }, - { "internalType": "uint64", "name": "timestamp", "type": "uint64" }, - { "internalType": "string", "name": "key", "type": "string" }, - { "internalType": "uint64", "name": "value", "type": "uint64" } - ], - "outputs": [] -}]` - -func ValidateCoinbaseSignature(message, signature []byte) error { - hash := crypto.Keccak256Hash(message) - return ValidateEthereumSignature(hash, signature, common.HexToAddress(CoinbaseOraclePublicKey)) -} - -func ParseCoinbaseMessage(message []byte) (*CoinbasePriceState, error) { - contractAbi, abiErr := abi.JSON(strings.NewReader(CoinbaseABIJSON)) - if abiErr != nil { - panic("Bad ABI constant!") - } - - // computed from web3.sha3('coinbase(string,uint64,string,uint64)').substr(0,10) - coinbaseMethod := common.FromHex("0x96f180bf") - method, err := contractAbi.MethodById(coinbaseMethod) - if err != nil { - return nil, err - } - - values, err := method.Inputs.Unpack(message) - if err != nil { - return nil, err - } - - var priceState CoinbasePriceState - if err := method.Inputs.Copy(&priceState, values); err != nil { - return nil, err - } - - if priceState.Kind != "prices" || priceState.Timestamp == 0 || priceState.Key == "" || priceState.Value == 0 { - return nil, ErrBadCoinbaseMessage - } - - return &priceState, nil -} - -// ValidateEthereumSignature takes a message, an associated signature and public key and -// returns an error if the signature isn't valid -// TODO: refactor to shared common dir, copy pasted below code from Peggy -func ValidateEthereumSignature(hash common.Hash, signature []byte, ethAddress common.Address) error { - - // convert malformed coinbase sig in oracle response to 65-byte signature - trimmedSig := signature[:65] - trimmedSig[64] = signature[95] - - if len(trimmedSig) < 65 { - return errors.Wrap(ErrInvalidEthereumSignature, "signature too short") - } - - // calculate recover id - if trimmedSig[64] == 27 || signature[64] == 28 { - trimmedSig[64] -= 27 - } - - // manually build the hash with ethereum prefix - preamblePrefix := []byte(preamblePrefix) - preambleMessage := append(preamblePrefix, hash.Bytes()...) // nolint:gocritic - preambleHash := crypto.Keccak256Hash(preambleMessage) - - // verify signature - pubkey, err := crypto.SigToPub(preambleHash.Bytes(), trimmedSig) - if err != nil { - return errors.Wrap(err, "signature to public key") - } - addr := crypto.PubkeyToAddress(*pubkey) - - if !bytes.Equal(addr.Bytes(), ethAddress.Bytes()) { - return errors.Wrapf(ErrInvalidEthereumSignature, "signature not matching, expected %s but got %s", ethAddress.Hex(), addr.Hex()) - } - - return nil -} diff --git a/chain/oracle/types/events.go b/chain/oracle/types/events.go deleted file mode 100644 index 2789dc3c..00000000 --- a/chain/oracle/types/events.go +++ /dev/null @@ -1,6 +0,0 @@ -package types - -// Auction module event types -const ( - EventTypeNewBid = "new_bid" -) diff --git a/chain/oracle/types/expected_keepers.go b/chain/oracle/types/expected_keepers.go deleted file mode 100644 index dd6e7ed2..00000000 --- a/chain/oracle/types/expected_keepers.go +++ /dev/null @@ -1,46 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - - ocrtypes "github.com/InjectiveLabs/sdk-go/chain/ocr/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error -} - -// ChannelKeeper defines the expected IBC channel keeper -type ChannelKeeper interface { - GetChannel(ctx sdk.Context, srcPort, srcChan string) (channel channeltypes.Channel, found bool) - GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool) - SendPacket( - ctx sdk.Context, - chanCap *capabilitytypes.Capability, - sourcePort string, - sourceChannel string, - timeoutHeight clienttypes.Height, - timeoutTimestamp uint64, - data []byte, - ) (sequence uint64, err error) - ChanCloseInit(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability) error -} - -// PortKeeper defines the expected IBC port keeper -type PortKeeper interface { - BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability -} - -type OcrKeeper interface { - GetTransmission(ctx sdk.Context, feedId string) *ocrtypes.Transmission -} diff --git a/chain/oracle/types/genesis.go b/chain/oracle/types/genesis.go deleted file mode 100644 index 561d04e5..00000000 --- a/chain/oracle/types/genesis.go +++ /dev/null @@ -1,23 +0,0 @@ -package types - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - // TODO: validate stuff in genesis - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - BandIbcParams: DefaultBandIBCParams(), - } -} diff --git a/chain/oracle/types/paramset.go b/chain/oracle/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/oracle/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/oracle/types/pyth.go b/chain/oracle/types/pyth.go deleted file mode 100644 index 4b986b39..00000000 --- a/chain/oracle/types/pyth.go +++ /dev/null @@ -1,75 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - "github.com/ethereum/go-ethereum/common" -) - -func NewPythPriceState( - priceID common.Hash, - emaPrice, emaConf, conf math.LegacyDec, - publishTime int64, - price math.LegacyDec, - blockTime int64, -) *PythPriceState { - return &PythPriceState{ - PriceId: priceID.Hex(), - EmaPrice: emaPrice, - EmaConf: emaConf, - Conf: conf, - PublishTime: uint64(publishTime), - PriceState: *NewPriceState(price, blockTime), - } -} - -func (p *PythPriceState) Update( - emaPrice, emaConf, conf math.LegacyDec, - publishTime uint64, - price math.LegacyDec, - blockTime int64, -) { - p.EmaPrice = emaPrice - p.EmaConf = emaConf - p.Conf = conf - p.PublishTime = publishTime - p.PriceState.UpdatePrice(price, blockTime) -} - -func (p *PriceAttestation) GetPriceID() string { - return p.PriceId -} - -func (p *PriceAttestation) GetPriceIDHash() common.Hash { - return common.HexToHash(p.PriceId) -} - -func (p *PriceAttestation) Validate() error { - if len(p.GetPriceIDHash().Bytes()) != 32 { - return ErrInvalidPythPriceID - } - - if !(p.Price > 0) { - return ErrBadPrice - } - - if p.Expo > MaxPythExponent || p.Expo < MinPythExponent { - return ErrInvalidPythExponent - } - - if !(p.PublishTime > 0) { - return ErrInvalidPythPublishTime - } - - // validating EMA price/conf is omitted since it's not mission critical and we don't want to block normal price updates - return nil -} - -func GetExponentiatedDec(value, expo int64) math.LegacyDec { - // price * 10^-expo - if expo <= 0 { - return math.LegacyNewDecWithPrec(value, -expo) - } - - // price * 10^expo - return math.LegacyNewDec(value).Power(uint64(expo)) -} diff --git a/chain/oracle/types/stork.go b/chain/oracle/types/stork.go deleted file mode 100644 index 343eb8e8..00000000 --- a/chain/oracle/types/stork.go +++ /dev/null @@ -1,29 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" -) - -func NewStorkPriceState( - price math.LegacyDec, - timestamp uint64, - symbol string, - blockTime int64, -) *StorkPriceState { - return &StorkPriceState{ - Timestamp: timestamp, - Symbol: symbol, - Value: price, - PriceState: *NewPriceState(price, blockTime), - } -} - -func (s *StorkPriceState) Update(price math.LegacyDec, timestamp uint64, blockTime int64) { - s.Value = price - s.Timestamp = timestamp - s.PriceState.UpdatePrice(price, blockTime) -} - -func ScaleStorkPrice(price math.LegacyDec) math.LegacyDec { - return price.QuoTruncate(EighteenDecimals) -} diff --git a/chain/peggy/types/batch.go b/chain/peggy/types/batch.go deleted file mode 100644 index dc1d77da..00000000 --- a/chain/peggy/types/batch.go +++ /dev/null @@ -1,67 +0,0 @@ -package types - -import ( - "fmt" - "math/big" - "strings" - - accountsabi "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" -) - -// GetCheckpoint gets the checkpoint signature from the given outgoing tx batch -func (b OutgoingTxBatch) GetCheckpoint(peggyIDstring string) common.Hash { - - abi, err := accountsabi.JSON(strings.NewReader(OutgoingBatchTxCheckpointABIJSON)) - if err != nil { - panic("Bad ABI constant!") - } - - // the contract argument is not a arbitrary length array but a fixed length 32 byte - // array, therefore we have to utf8 encode the string (the default in this case) and - // then copy the variable length encoded data into a fixed length array. This function - // will panic if peggyId is too long to fit in 32 bytes - peggyID, err := strToFixByteArray(peggyIDstring) - if err != nil { - panic(err) - } - - // Create the methodName argument which salts the signature - methodNameBytes := []uint8("transactionBatch") - var batchMethodName [32]uint8 - copy(batchMethodName[:], methodNameBytes) - - // Run through the elements of the batch and serialize them - txAmounts := make([]*big.Int, len(b.Transactions)) - txDestinations := make([]common.Address, len(b.Transactions)) - txFees := make([]*big.Int, len(b.Transactions)) - for i, tx := range b.Transactions { - txAmounts[i] = tx.Erc20Token.Amount.BigInt() - txDestinations[i] = common.HexToAddress(tx.DestAddress) - txFees[i] = tx.Erc20Fee.Amount.BigInt() - } - - // the methodName needs to be the same as the 'name' above in the checkpointAbiJson - // but other than that it's a constant that has no impact on the output. This is because - // it gets encoded as a function name which we must then discard. - abiEncodedBatch, err := abi.Pack("submitBatch", - peggyID, - batchMethodName, - txAmounts, - txDestinations, - txFees, - big.NewInt(int64(b.BatchNonce)), - common.HexToAddress(b.TokenContract), - big.NewInt(int64(b.BatchTimeout)), - ) - - // this should never happen outside of test since any case that could crash on encoding - // should be filtered above. - if err != nil { - panic(fmt.Sprintf("Error packing checkpoint! %s/n", err)) - } - - hash := crypto.Keccak256Hash(abiEncodedBatch[4:]) - return hash -} diff --git a/chain/peggy/types/events.go b/chain/peggy/types/events.go deleted file mode 100644 index 413735c0..00000000 --- a/chain/peggy/types/events.go +++ /dev/null @@ -1,28 +0,0 @@ -package types - -const ( - EventTypeObservation = "observation" - EventTypeOutgoingBatch = "outgoing_batch" - - EventTypeMultisigUpdateRequest = "multisig_update_request" - EventTypeOutgoingBatchCanceled = "outgoing_batch_canceled" - EventTypeBridgeWithdrawalReceived = "withdrawal_received" - EventTypeBridgeDepositReceived = "deposit_received" - EventTypeBridgeWithdrawCanceled = "withdraw_canceled" - - AttributeKeyAttestationID = "attestation_id" - AttributeKeyBatchConfirmKey = "batch_confirm_key" - AttributeKeyValsetConfirmKey = "valset_confirm_key" - AttributeKeyMultisigID = "multisig_id" - AttributeKeyOutgoingBatchID = "batch_id" - AttributeKeyOutgoingTXID = "outgoing_tx_id" - AttributeKeyAttestationType = "attestation_type" - AttributeKeyContract = "bridge_contract" - AttributeKeyNonce = "nonce" - AttributeKeyValsetNonce = "valset_nonce" - AttributeKeyBatchNonce = "batch_nonce" - AttributeKeyBridgeChainID = "bridge_chain_id" - AttributeKeySetOperatorAddr = "set_operator_address" - AttributeKeyBadEthSignature = "bad_eth_signature" - AttributeKeyBadEthSignatureSubject = "bad_eth_signature_subject" -) diff --git a/chain/peggy/types/expected_keepers.go b/chain/peggy/types/expected_keepers.go deleted file mode 100644 index a76278f5..00000000 --- a/chain/peggy/types/expected_keepers.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - "context" - "time" - - "cosmossdk.io/math" - storetypes "cosmossdk.io/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - bank "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/distribution/types" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" -) - -// StakingKeeper defines the expected staking keeper methods -type StakingKeeper interface { - GetBondedValidatorsByPower(ctx context.Context) ([]stakingtypes.Validator, error) - GetLastValidatorPower(ctx context.Context, operator sdk.ValAddress) (int64, error) - GetLastTotalPower(ctx context.Context) (power math.Int, err error) - IterateValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - ValidatorQueueIterator(ctx context.Context, endTime time.Time, endHeight int64) (storetypes.Iterator, error) - GetParams(ctx context.Context) (stakingtypes.Params, error) - GetValidator(ctx context.Context, addr sdk.ValAddress) (validator stakingtypes.Validator, err error) - IterateBondedValidatorsByPower(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - IterateLastValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error - Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) - ValidatorByConsAddr(context.Context, sdk.ConsAddress) (stakingtypes.ValidatorI, error) - Slash(context.Context, sdk.ConsAddress, int64, int64, math.LegacyDec) (math.Int, error) - Jail(context.Context, sdk.ConsAddress) error - PowerReduction(ctx context.Context) (res math.Int) -} - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, name string, amt sdk.Coins) error - BurnCoins(ctx context.Context, name string, amt sdk.Coins) error - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - GetDenomMetaData(ctx context.Context, denom string) (bank.Metadata, bool) - GetSupply(ctx context.Context, denom string) sdk.Coin -} - -type SlashingKeeper interface { - GetValidatorSigningInfo(ctx context.Context, address sdk.ConsAddress) (info slashingtypes.ValidatorSigningInfo, err error) -} - -type DistributionKeeper interface { - FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error - GetFeePool(ctx context.Context) (feePool types.FeePool) - SetFeePool(ctx context.Context, feePool types.FeePool) -} diff --git a/chain/peggy/types/genesis.go b/chain/peggy/types/genesis.go deleted file mode 100644 index 46fd33ed..00000000 --- a/chain/peggy/types/genesis.go +++ /dev/null @@ -1,19 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -// ValidateBasic validates genesis state by looping through the params and -// calling their validation functions -func (s GenesisState) ValidateBasic() error { - if err := s.Params.ValidateBasic(); err != nil { - return errors.Wrap(err, "params") - } - return nil -} - -// DefaultGenesisState returns empty genesis state -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/peggy/types/params_legacy.go b/chain/peggy/types/params_legacy.go deleted file mode 100644 index f64a9856..00000000 --- a/chain/peggy/types/params_legacy.go +++ /dev/null @@ -1,108 +0,0 @@ -package types - -import paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - -var ( - // ParamsStoreKeyPeggyID stores the peggy id - ParamsStoreKeyPeggyID = []byte("PeggyID") - - // ParamsStoreKeyContractHash stores the contract hash - ParamsStoreKeyContractHash = []byte("ContractHash") - - // ParamsStoreKeyBridgeContractAddress stores the contract address - ParamsStoreKeyBridgeContractAddress = []byte("BridgeContractAddress") - - // ParamsStoreKeyBridgeContractStartHeight stores the bridge contract deployed height - ParamsStoreKeyBridgeContractStartHeight = []byte("BridgeContractChainHeight") - - // ParamsStoreKeyBridgeContractChainID stores the bridge chain id - ParamsStoreKeyBridgeContractChainID = []byte("BridgeChainID") - - // ParamsStoreKeyCosmosCoinDenom stores native cosmos coin denom - ParamsStoreKeyCosmosCoinDenom = []byte("CosmosCoinDenom") - - // ParamsStoreKeyCosmosCoinErc20Contract store L1 erc20 contract address of cosmos native coin - ParamsStoreKeyCosmosCoinErc20Contract = []byte("CosmosCoinErc20Contract") - - // ParamsStoreKeySignedValsetsWindow stores the signed blocks window - ParamsStoreKeySignedValsetsWindow = []byte("SignedValsetsWindow") - - // ParamsStoreKeySignedBatchesWindow stores the signed blocks window - ParamsStoreKeySignedBatchesWindow = []byte("SignedBatchesWindow") - - // ParamsStoreKeySignedClaimsWindow stores the signed blocks window - ParamsStoreKeySignedClaimsWindow = []byte("SignedClaimsWindow") - - // ParamsStoreKeyTargetBatchTimeout stores - ParamsStoreKeyTargetBatchTimeout = []byte("TargetBatchTimeout") - - // ParamsStoreKeyAverageBlockTime stores the average block time of the Injective Chain in milliseconds - ParamsStoreKeyAverageBlockTime = []byte("AverageBlockTime") - - // ParamsStoreKeyAverageEthereumBlockTime stores the average block time of Ethereum in milliseconds - ParamsStoreKeyAverageEthereumBlockTime = []byte("AverageEthereumBlockTime") - - // ParamsStoreSlashFractionValset stores the slash fraction valset - ParamsStoreSlashFractionValset = []byte("SlashFractionValset") - - // ParamsStoreSlashFractionBatch stores the slash fraction Batch - ParamsStoreSlashFractionBatch = []byte("SlashFractionBatch") - - // ParamsStoreSlashFractionClaim stores the slash fraction Claim - ParamsStoreSlashFractionClaim = []byte("SlashFractionClaim") - - // ParamsStoreSlashFractionConflictingClaim stores the slash fraction ConflictingClaim - ParamsStoreSlashFractionConflictingClaim = []byte("SlashFractionConflictingClaim") - - // ParamStoreUnbondSlashingValsetsWindow stores unbond slashing valset window - ParamStoreUnbondSlashingValsetsWindow = []byte("UnbondSlashingValsetsWindow") - - // ParamStoreClaimSlashingEnabled stores ClaimSlashing is enabled or not - ParamStoreClaimSlashingEnabled = []byte("ClaimSlashingEnabled") - - // ParamStoreSlashFractionBadEthSignature stores the amount by which a validator making a fraudulent eth signature will be slashed - ParamStoreSlashFractionBadEthSignature = []byte("SlashFractionBadEthSignature") - - // ParamStoreValsetRewardAmount is the amount of the coin, both denom and amount to issue - // to a relayer when they relay a valset - ParamStoreValsetRewardAmount = []byte("ValsetReward") - - ParamStoreAdmins = []byte("Admins") - - // Ensure that params implements the proper interface - _ paramtypes.ParamSet = &Params{} -) - -// ParamKeyTable for auth module -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// ParamSetPairs implements the ParamSet interface and returns all the key/value pairs -// pairs of auth module's parameters. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(ParamsStoreKeyPeggyID, &p.PeggyId, validatePeggyID), - paramtypes.NewParamSetPair(ParamsStoreKeyContractHash, &p.ContractSourceHash, validateContractHash), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractAddress, &p.BridgeEthereumAddress, validateBridgeContractAddress), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractChainID, &p.BridgeChainId, validateBridgeChainID), - paramtypes.NewParamSetPair(ParamsStoreKeyCosmosCoinDenom, &p.CosmosCoinDenom, validateCosmosCoinDenom), - paramtypes.NewParamSetPair(ParamsStoreKeyCosmosCoinErc20Contract, &p.CosmosCoinErc20Contract, validateCosmosCoinErc20Contract), - paramtypes.NewParamSetPair(ParamsStoreKeySignedValsetsWindow, &p.SignedValsetsWindow, validateSignedValsetsWindow), - paramtypes.NewParamSetPair(ParamsStoreKeySignedBatchesWindow, &p.SignedBatchesWindow, validateSignedBatchesWindow), - paramtypes.NewParamSetPair(ParamsStoreKeySignedClaimsWindow, &p.SignedClaimsWindow, validateSignedClaimsWindow), - paramtypes.NewParamSetPair(ParamsStoreKeyAverageBlockTime, &p.AverageBlockTime, validateAverageBlockTime), - paramtypes.NewParamSetPair(ParamsStoreKeyTargetBatchTimeout, &p.TargetBatchTimeout, validateTargetBatchTimeout), - paramtypes.NewParamSetPair(ParamsStoreKeyAverageEthereumBlockTime, &p.AverageEthereumBlockTime, validateAverageEthereumBlockTime), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionValset, &p.SlashFractionValset, validateSlashFractionValset), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionBatch, &p.SlashFractionBatch, validateSlashFractionBatch), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionClaim, &p.SlashFractionClaim, validateSlashFractionClaim), - paramtypes.NewParamSetPair(ParamsStoreSlashFractionConflictingClaim, &p.SlashFractionConflictingClaim, validateSlashFractionConflictingClaim), - paramtypes.NewParamSetPair(ParamStoreSlashFractionBadEthSignature, &p.SlashFractionBadEthSignature, validateSlashFractionBadEthSignature), - paramtypes.NewParamSetPair(ParamStoreUnbondSlashingValsetsWindow, &p.UnbondSlashingValsetsWindow, validateUnbondSlashingValsetsWindow), - paramtypes.NewParamSetPair(ParamStoreClaimSlashingEnabled, &p.ClaimSlashingEnabled, validateClaimSlashingEnabled), - paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractStartHeight, &p.BridgeContractStartHeight, validateBridgeContractStartHeight), - paramtypes.NewParamSetPair(ParamStoreValsetRewardAmount, &p.ValsetReward, validateValsetReward), - paramtypes.NewParamSetPair(ParamStoreAdmins, &p.Admins, validateAdmins), - } -} diff --git a/chain/peggy/types/proposal.go b/chain/peggy/types/proposal.go deleted file mode 100644 index 5d55dfbe..00000000 --- a/chain/peggy/types/proposal.go +++ /dev/null @@ -1,76 +0,0 @@ -package types - -import ( - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" -) - -// constants -const ( - ProposalTypeBlacklistEthereumAddresses string = "ProposalTypeBlacklistEthereumAddresses" - ProposalTypeRevokeEthereumBlacklist string = "ProposalTypeRevokeEthereumBlacklist" -) - -func init() { - govtypes.RegisterProposalType(ProposalTypeBlacklistEthereumAddresses) - govtypes.RegisterProposalType(ProposalTypeRevokeEthereumBlacklist) -} - -// Implements Proposal Interface -var _ govtypes.Content = &BlacklistEthereumAddressesProposal{} -var _ govtypes.Content = &RevokeEthereumBlacklistProposal{} - -// GetTitle returns the title of this proposal. -func (p *BlacklistEthereumAddressesProposal) GetTitle() string { - return p.Title -} - -// GetDescription returns the description of this proposal. -func (p *BlacklistEthereumAddressesProposal) GetDescription() string { - return p.Description -} - -// ProposalRoute returns router key of this proposal. -func (p *BlacklistEthereumAddressesProposal) ProposalRoute() string { return RouterKey } - -// ProposalType returns proposal type of this proposal. -func (p *BlacklistEthereumAddressesProposal) ProposalType() string { - return ProposalTypeBlacklistEthereumAddresses -} - -// ValidateBasic returns ValidateBasic result of this proposal. -func (p *BlacklistEthereumAddressesProposal) ValidateBasic() error { - for _, blacklistAddress := range p.BlacklistAddresses { - if _, err := NewEthAddress(blacklistAddress); err != nil { - return err - } - } - return govtypes.ValidateAbstract(p) -} - -// GetTitle returns the title of this proposal. -func (p *RevokeEthereumBlacklistProposal) GetTitle() string { - return p.Title -} - -// GetDescription returns the description of this proposal. -func (p *RevokeEthereumBlacklistProposal) GetDescription() string { - return p.Description -} - -// ProposalRoute returns router key of this proposal. -func (p *RevokeEthereumBlacklistProposal) ProposalRoute() string { return RouterKey } - -// ProposalType returns proposal type of this proposal. -func (p *RevokeEthereumBlacklistProposal) ProposalType() string { - return ProposalTypeRevokeEthereumBlacklist -} - -// ValidateBasic returns ValidateBasic result of this proposal. -func (p *RevokeEthereumBlacklistProposal) ValidateBasic() error { - for _, blacklistAddress := range p.BlacklistAddresses { - if _, err := NewEthAddress(blacklistAddress); err != nil { - return err - } - } - return govtypes.ValidateAbstract(p) -} diff --git a/chain/peggy/types/proposal.pb.go b/chain/peggy/types/proposal.pb.go deleted file mode 100644 index dd9ece2a..00000000 --- a/chain/peggy/types/proposal.pb.go +++ /dev/null @@ -1,667 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: injective/peggy/v1/proposal.proto - -package types - -import ( - fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/gogoproto/gogoproto" - proto "github.com/cosmos/gogoproto/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type BlacklistEthereumAddressesProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - BlacklistAddresses []string `protobuf:"bytes,3,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` -} - -func (m *BlacklistEthereumAddressesProposal) Reset() { *m = BlacklistEthereumAddressesProposal{} } -func (m *BlacklistEthereumAddressesProposal) String() string { return proto.CompactTextString(m) } -func (*BlacklistEthereumAddressesProposal) ProtoMessage() {} -func (*BlacklistEthereumAddressesProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_e5b158ea063afb2f, []int{0} -} -func (m *BlacklistEthereumAddressesProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BlacklistEthereumAddressesProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_BlacklistEthereumAddressesProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *BlacklistEthereumAddressesProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlacklistEthereumAddressesProposal.Merge(m, src) -} -func (m *BlacklistEthereumAddressesProposal) XXX_Size() int { - return m.Size() -} -func (m *BlacklistEthereumAddressesProposal) XXX_DiscardUnknown() { - xxx_messageInfo_BlacklistEthereumAddressesProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_BlacklistEthereumAddressesProposal proto.InternalMessageInfo - -type RevokeEthereumBlacklistProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - BlacklistAddresses []string `protobuf:"bytes,3,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` -} - -func (m *RevokeEthereumBlacklistProposal) Reset() { *m = RevokeEthereumBlacklistProposal{} } -func (m *RevokeEthereumBlacklistProposal) String() string { return proto.CompactTextString(m) } -func (*RevokeEthereumBlacklistProposal) ProtoMessage() {} -func (*RevokeEthereumBlacklistProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_e5b158ea063afb2f, []int{1} -} -func (m *RevokeEthereumBlacklistProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RevokeEthereumBlacklistProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RevokeEthereumBlacklistProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RevokeEthereumBlacklistProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_RevokeEthereumBlacklistProposal.Merge(m, src) -} -func (m *RevokeEthereumBlacklistProposal) XXX_Size() int { - return m.Size() -} -func (m *RevokeEthereumBlacklistProposal) XXX_DiscardUnknown() { - xxx_messageInfo_RevokeEthereumBlacklistProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_RevokeEthereumBlacklistProposal proto.InternalMessageInfo - -func init() { - proto.RegisterType((*BlacklistEthereumAddressesProposal)(nil), "injective.peggy.v1.BlacklistEthereumAddressesProposal") - proto.RegisterType((*RevokeEthereumBlacklistProposal)(nil), "injective.peggy.v1.RevokeEthereumBlacklistProposal") -} - -func init() { proto.RegisterFile("injective/peggy/v1/proposal.proto", fileDescriptor_e5b158ea063afb2f) } - -var fileDescriptor_e5b158ea063afb2f = []byte{ - // 323 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x52, 0x3b, 0x4e, 0xc3, 0x40, - 0x10, 0xf5, 0x12, 0x81, 0x14, 0xd3, 0x99, 0x14, 0x21, 0x85, 0x13, 0x52, 0xa0, 0x34, 0xf1, 0xca, - 0xa2, 0xa3, 0x23, 0x88, 0x02, 0x41, 0x81, 0x52, 0xd2, 0x44, 0xfe, 0x8c, 0x9c, 0x25, 0xb6, 0x67, - 0xb5, 0x3b, 0x59, 0x29, 0x37, 0xa0, 0xe4, 0x08, 0x39, 0x03, 0x82, 0x3b, 0x20, 0xaa, 0x94, 0x94, - 0x28, 0x69, 0x38, 0x06, 0xc2, 0x3f, 0xe5, 0x08, 0x74, 0xfb, 0xde, 0x3c, 0xcd, 0x7b, 0xab, 0x37, - 0xf6, 0x99, 0xc8, 0x9f, 0x20, 0x22, 0x61, 0x80, 0x4b, 0x48, 0x92, 0x15, 0x37, 0x3e, 0x97, 0x0a, - 0x25, 0xea, 0x20, 0xf5, 0xa4, 0x42, 0x42, 0xc7, 0x69, 0x24, 0x5e, 0x21, 0xf1, 0x8c, 0xdf, 0x3b, - 0x8d, 0x50, 0x67, 0xa8, 0x67, 0x85, 0x82, 0x97, 0xa0, 0x94, 0xf7, 0x3a, 0x09, 0x26, 0x58, 0xf2, - 0x7f, 0xaf, 0x92, 0x1d, 0xbe, 0x33, 0x7b, 0x38, 0x49, 0x83, 0x68, 0x91, 0x0a, 0x4d, 0x37, 0x34, - 0x07, 0x05, 0xcb, 0xec, 0x2a, 0x8e, 0x15, 0x68, 0x0d, 0xfa, 0xa1, 0x72, 0x74, 0x3a, 0xf6, 0x21, - 0x09, 0x4a, 0xa1, 0xcb, 0x06, 0x6c, 0xd4, 0x9e, 0x96, 0xc0, 0x19, 0xd8, 0xc7, 0x31, 0xe8, 0x48, - 0x09, 0x49, 0x02, 0xf3, 0xee, 0x41, 0x31, 0xdb, 0xa7, 0x1c, 0x6e, 0x9f, 0x84, 0xf5, 0xf6, 0x59, - 0x50, 0xaf, 0xed, 0xb6, 0x06, 0xad, 0x51, 0x7b, 0xea, 0x34, 0xa3, 0xc6, 0xf0, 0xf2, 0xfc, 0x79, - 0xdd, 0xb7, 0x7e, 0xd6, 0x7d, 0xeb, 0xf3, 0x6d, 0xdc, 0xab, 0xf2, 0x27, 0x68, 0x3c, 0xe3, 0x87, - 0x40, 0x81, 0xef, 0x5d, 0x63, 0x4e, 0x90, 0xd3, 0xf0, 0x95, 0xd9, 0xfd, 0x29, 0x18, 0x5c, 0x40, - 0x1d, 0xba, 0xf9, 0xc5, 0xbf, 0x0d, 0x3d, 0x81, 0x8f, 0xad, 0xcb, 0x36, 0x5b, 0x97, 0x7d, 0x6f, - 0x5d, 0xf6, 0xb2, 0x73, 0xad, 0xcd, 0xce, 0xb5, 0xbe, 0x76, 0xae, 0xf5, 0x78, 0x97, 0x08, 0x9a, - 0x2f, 0x43, 0x2f, 0xc2, 0x8c, 0xdf, 0xd6, 0xb5, 0xde, 0x07, 0xa1, 0xe6, 0x4d, 0xc9, 0xe3, 0x08, - 0x15, 0xec, 0xc3, 0x79, 0x20, 0x72, 0x9e, 0x61, 0xbc, 0x4c, 0x41, 0x57, 0x47, 0x42, 0x2b, 0x09, - 0x3a, 0x3c, 0x2a, 0xaa, 0xbd, 0xf8, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x03, 0x58, 0x94, 0x44, - 0x02, 0x00, 0x00, -} - -func (m *BlacklistEthereumAddressesProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BlacklistEthereumAddressesProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BlacklistEthereumAddressesProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BlacklistAddresses) > 0 { - for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.BlacklistAddresses[iNdEx]) - copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) - i = encodeVarintProposal(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RevokeEthereumBlacklistProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RevokeEthereumBlacklistProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RevokeEthereumBlacklistProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BlacklistAddresses) > 0 { - for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.BlacklistAddresses[iNdEx]) - copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) - i = encodeVarintProposal(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintProposal(dAtA []byte, offset int, v uint64) int { - offset -= sovProposal(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *BlacklistEthereumAddressesProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - if len(m.BlacklistAddresses) > 0 { - for _, s := range m.BlacklistAddresses { - l = len(s) - n += 1 + l + sovProposal(uint64(l)) - } - } - return n -} - -func (m *RevokeEthereumBlacklistProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovProposal(uint64(l)) - } - if len(m.BlacklistAddresses) > 0 { - for _, s := range m.BlacklistAddresses { - l = len(s) - n += 1 + l + sovProposal(uint64(l)) - } - } - return n -} - -func sovProposal(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozProposal(x uint64) (n int) { - return sovProposal(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *BlacklistEthereumAddressesProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BlacklistEthereumAddressesProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BlacklistEthereumAddressesProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProposal(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RevokeEthereumBlacklistProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RevokeEthereumBlacklistProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RevokeEthereumBlacklistProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProposal - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProposal - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProposal - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProposal(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipProposal(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowProposal - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthProposal - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupProposal - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthProposal - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthProposal = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowProposal = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupProposal = fmt.Errorf("proto: unexpected end of group") -) diff --git a/chain/permissions/types/codec.go b/chain/permissions/types/codec.go index a5cc7fea..099707ec 100644 --- a/chain/permissions/types/codec.go +++ b/chain/permissions/types/codec.go @@ -14,10 +14,7 @@ const ModuleName = "permissions" func RegisterCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgUpdateParams{}, "permissions/MsgUpdateParams", nil) cdc.RegisterConcrete(&MsgCreateNamespace{}, "permissions/MsgCreateNamespace", nil) - cdc.RegisterConcrete(&MsgDeleteNamespace{}, "permissions/MsgDeleteNamespace", nil) cdc.RegisterConcrete(&MsgUpdateNamespace{}, "permissions/MsgUpdateNamespace", nil) - cdc.RegisterConcrete(&MsgUpdateNamespaceRoles{}, "permissions/MsgUpdateNamespaceRoles", nil) - cdc.RegisterConcrete(&MsgRevokeNamespaceRoles{}, "permissions/MsgRevokeNamespaceRoles", nil) cdc.RegisterConcrete(&MsgClaimVoucher{}, "permissions/MsgClaimVoucher", nil) } @@ -25,10 +22,7 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgUpdateParams{}, &MsgCreateNamespace{}, - &MsgDeleteNamespace{}, &MsgUpdateNamespace{}, - &MsgUpdateNamespaceRoles{}, - &MsgRevokeNamespaceRoles{}, &MsgClaimVoucher{}, ) diff --git a/chain/permissions/types/errors.go b/chain/permissions/types/errors.go deleted file mode 100644 index f104edaf..00000000 --- a/chain/permissions/types/errors.go +++ /dev/null @@ -1,24 +0,0 @@ -package types - -// DONTCOVER - -import ( - "cosmossdk.io/errors" -) - -// x/tokenfactory module sentinel errors -var ( - ErrDenomNamespaceExists = errors.Register(ModuleName, 2, "attempting to create a namespace for denom that already exists") - ErrUnauthorized = errors.Register(ModuleName, 3, "unauthorized account") - ErrInvalidGenesis = errors.Register(ModuleName, 4, "invalid genesis") - ErrInvalidNamespace = errors.Register(ModuleName, 5, "invalid namespace") - ErrInvalidPermission = errors.Register(ModuleName, 6, "invalid permissions") - ErrUnknownRole = errors.Register(ModuleName, 7, "unknown role") - ErrUnknownWasmHook = errors.Register(ModuleName, 8, "unknown contract address") - ErrRestrictedAction = errors.Register(ModuleName, 9, "restricted action") - ErrInvalidRole = errors.Register(ModuleName, 10, "invalid role") - ErrUnknownDenom = errors.Register(ModuleName, 11, "namespace for denom is not existing") - ErrWasmHookError = errors.Register(ModuleName, 12, "wasm hook query error") - ErrVoucherNotFound = errors.Register(ModuleName, 13, "voucher was not found") - ErrInvalidWasmHook = errors.Register(ModuleName, 14, "invalid wasm hook") -) diff --git a/chain/permissions/types/expected_keepers.go b/chain/permissions/types/expected_keepers.go deleted file mode 100644 index 3fdbb230..00000000 --- a/chain/permissions/types/expected_keepers.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -type BankKeeper interface { - AppendSendRestriction(restriction banktypes.SendRestrictionFn) - PrependSendRestriction(restriction banktypes.SendRestrictionFn) - ClearSendRestriction() - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error -} - -type TokenFactoryKeeper interface { - GetAuthorityMetadata(ctx sdk.Context, denom string) (tftypes.DenomAuthorityMetadata, error) -} - -type WasmKeeper interface { - HasContractInfo(ctx context.Context, contractAddress sdk.AccAddress) bool - QuerySmart(ctx context.Context, contractAddr sdk.AccAddress, req []byte) ([]byte, error) -} diff --git a/chain/permissions/types/genesis.go b/chain/permissions/types/genesis.go deleted file mode 100644 index 4eff5bb7..00000000 --- a/chain/permissions/types/genesis.go +++ /dev/null @@ -1,38 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" -) - -// this line is used by starport scaffolding # genesis/types/import - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -// DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - Namespaces: []Namespace{}, - } -} - -// Validate performs basic genesis state validation returning an error upon any -// failure. -func (gs GenesisState) Validate() error { - err := gs.Params.Validate() - if err != nil { - return err - } - - seenDenoms := map[string]struct{}{} - - for _, ns := range gs.GetNamespaces() { - if _, ok := seenDenoms[ns.GetDenom()]; ok { - return errors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", ns.GetDenom()) - } - seenDenoms[ns.GetDenom()] = struct{}{} - } - - return nil -} diff --git a/chain/permissions/types/genesis.pb.go b/chain/permissions/types/genesis.pb.go index f4b7b7d6..580fd4db 100644 --- a/chain/permissions/types/genesis.pb.go +++ b/chain/permissions/types/genesis.pb.go @@ -26,8 +26,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the permissions module's genesis state. type GenesisState struct { // params defines the parameters of the module. - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` - Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` + Vouchers []*AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -77,6 +78,13 @@ func (m *GenesisState) GetNamespaces() []Namespace { return nil } +func (m *GenesisState) GetVouchers() []*AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.permissions.v1beta1.GenesisState") } @@ -86,24 +94,26 @@ func init() { } var fileDescriptor_5ff1982ce1793022 = []byte{ - // 270 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xce, 0xcc, 0xcb, 0x4a, - 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0x48, 0x2d, 0xca, 0xcd, 0x2c, 0x2e, 0xce, 0xcc, 0xcf, - 0x2b, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, - 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x85, 0x2b, 0xd6, 0x43, 0x52, 0xac, 0x07, - 0x55, 0x2c, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa9, 0x0f, 0x62, 0x41, 0x34, 0x49, 0x69, - 0xe1, 0xb7, 0xa1, 0x20, 0xb1, 0x28, 0x31, 0x17, 0x6a, 0x81, 0x94, 0x3e, 0x01, 0xb5, 0x48, 0x96, - 0x82, 0x35, 0x28, 0x2d, 0x66, 0xe4, 0xe2, 0x71, 0x87, 0xb8, 0x31, 0xb8, 0x24, 0xb1, 0x24, 0x55, - 0xc8, 0x99, 0x8b, 0x0d, 0x62, 0xa2, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0xaa, 0x1e, 0x5e, - 0x37, 0xeb, 0x05, 0x80, 0x15, 0x3b, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x04, 0xd5, 0x2a, 0xe4, - 0xc7, 0xc5, 0x95, 0x97, 0x98, 0x9b, 0x5a, 0x5c, 0x90, 0x98, 0x9c, 0x5a, 0x2c, 0xc1, 0xa4, 0xc0, - 0xac, 0xc1, 0x6d, 0xa4, 0x41, 0xc0, 0x20, 0x3f, 0x98, 0x06, 0xa8, 0x59, 0x48, 0x26, 0x38, 0x65, - 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, - 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x54, 0x60, 0x7a, 0x66, 0x49, 0x46, - 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x27, 0xcc, 0x7c, 0x9f, 0xc4, 0xa4, 0x62, 0x44, 0x48, - 0xe8, 0x26, 0xe7, 0x17, 0xa5, 0x22, 0x73, 0x33, 0x12, 0x33, 0xf3, 0xf4, 0x73, 0xf3, 0x53, 0x4a, - 0x73, 0x52, 0x8b, 0x51, 0x82, 0xa9, 0xa4, 0xb2, 0x20, 0xb5, 0x38, 0x89, 0x0d, 0x1c, 0x32, 0xc6, - 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x0c, 0xe9, 0xc0, 0xda, 0x01, 0x00, 0x00, + // 299 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x14, 0x80, 0x1b, 0x27, 0x43, 0x32, 0x4f, 0xc5, 0xc3, 0x18, 0x18, 0x87, 0x20, 0x0c, 0x65, 0x09, + 0x9b, 0xbf, 0xc0, 0x79, 0x90, 0x81, 0x0c, 0x9d, 0xe0, 0xc1, 0x5b, 0xda, 0x3d, 0xba, 0xa8, 0x6d, + 0x4a, 0x5e, 0x5a, 0xf0, 0x5f, 0xf8, 0xb3, 0x76, 0xdc, 0xd1, 0x93, 0x48, 0x7b, 0xf7, 0x37, 0x88, + 0x6d, 0x37, 0xeb, 0x65, 0xbd, 0x25, 0xf0, 0x7d, 0xdf, 0x7b, 0x3c, 0x7a, 0xa1, 0xa2, 0x67, 0xf0, + 0xad, 0x4a, 0x41, 0xc4, 0x60, 0x42, 0x85, 0xa8, 0x74, 0x84, 0x22, 0x1d, 0x79, 0x60, 0xe5, 0x48, + 0x04, 0x10, 0x01, 0x2a, 0xe4, 0xb1, 0xd1, 0x56, 0xbb, 0xc7, 0x5b, 0x98, 0xd7, 0x60, 0x5e, 0xc1, + 0xbd, 0xa3, 0x40, 0x07, 0xba, 0x20, 0xc5, 0xef, 0xab, 0x94, 0x7a, 0xe7, 0xbb, 0x27, 0xc4, 0xd2, + 0xc8, 0xb0, 0x1a, 0xd0, 0x13, 0x0d, 0x6c, 0x6d, 0x68, 0x21, 0x9c, 0x7e, 0x13, 0x7a, 0x78, 0x53, + 0xee, 0xf8, 0x60, 0xa5, 0x05, 0xf7, 0x9a, 0xb6, 0xcb, 0x62, 0x97, 0xf4, 0xc9, 0xa0, 0x33, 0x3e, + 0xe3, 0x3b, 0x77, 0xe6, 0x77, 0x05, 0x3c, 0xd9, 0x5f, 0x7d, 0x9e, 0x38, 0xf3, 0x4a, 0x75, 0x67, + 0x94, 0x46, 0x32, 0x04, 0x8c, 0xa5, 0x0f, 0xd8, 0xdd, 0xeb, 0xb7, 0x06, 0x9d, 0xf1, 0xa0, 0x21, + 0x34, 0xdb, 0x08, 0x55, 0xab, 0x56, 0x70, 0xa7, 0xf4, 0x20, 0xd5, 0x89, 0xbf, 0x04, 0x83, 0xdd, + 0x56, 0x51, 0x1b, 0x36, 0xd4, 0xae, 0x16, 0x0b, 0x03, 0x88, 0x8f, 0xa5, 0x35, 0xdf, 0xea, 0x93, + 0x97, 0x55, 0xc6, 0xc8, 0x3a, 0x63, 0xe4, 0x2b, 0x63, 0xe4, 0x3d, 0x67, 0xce, 0x3a, 0x67, 0xce, + 0x47, 0xce, 0x9c, 0xa7, 0xfb, 0x40, 0xd9, 0x65, 0xe2, 0x71, 0x5f, 0x87, 0x62, 0xba, 0x89, 0xdf, + 0x4a, 0x0f, 0xff, 0x8e, 0x3a, 0xf4, 0xb5, 0x81, 0xfa, 0x77, 0x29, 0x55, 0x24, 0x42, 0xbd, 0x48, + 0x5e, 0x01, 0xff, 0x5d, 0xdc, 0xbe, 0xc5, 0x80, 0x5e, 0xbb, 0x38, 0xf2, 0xe5, 0x4f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x83, 0x97, 0x25, 0xeb, 0x25, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -126,6 +136,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } if len(m.Namespaces) > 0 { for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { { @@ -178,6 +202,12 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -283,6 +313,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/permissions/types/msgs.go b/chain/permissions/types/msgs.go deleted file mode 100644 index e9b762b1..00000000 --- a/chain/permissions/types/msgs.go +++ /dev/null @@ -1,227 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -// constants -const ( - // RouterKey is the message route for slashing - routerKey = ModuleName - - TypeMsgUpdateParams = "update_params" - TypeMsgCreateNamespace = "create_namespace" - TypeMsgDeleteNamespace = "delete_namespace" - TypeUpdateNamespace = "update_namespace" - TypeMsgUpdateNamespaceRoles = "update_namespace_roles" - TypeMsgRevokeNamespaceRoles = "revoke_namespace_roles" - TypeMsgClaimVoucher = "claim_voucher" -) - -var ( - _ sdk.Msg = &MsgUpdateParams{} - _ sdk.Msg = &MsgCreateNamespace{} - _ sdk.Msg = &MsgDeleteNamespace{} - _ sdk.Msg = &MsgUpdateNamespace{} - _ sdk.Msg = &MsgUpdateNamespaceRoles{} - _ sdk.Msg = &MsgRevokeNamespaceRoles{} - _ sdk.Msg = &MsgClaimVoucher{} -) - -func (m MsgUpdateParams) Route() string { return routerKey } - -func (m MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -func (m MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return err - } - - if err := m.Params.Validate(); err != nil { - return err - } - return nil -} - -func (m *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Authority) - return []sdk.AccAddress{addr} -} - -func (m MsgCreateNamespace) Route() string { return routerKey } - -func (m MsgCreateNamespace) Type() string { return TypeMsgCreateNamespace } - -func (msg MsgCreateNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if err := msg.Namespace.Validate(); err != nil { - return err - } - return nil -} - -func (m *MsgCreateNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgCreateNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgDeleteNamespace) Route() string { return routerKey } - -func (m MsgDeleteNamespace) Type() string { return TypeMsgDeleteNamespace } - -func (m MsgDeleteNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return err - } - - if _, _, err := tftypes.DeconstructDenom(m.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - return nil -} - -func (m *MsgDeleteNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgDeleteNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgUpdateNamespace) Route() string { return routerKey } - -func (m MsgUpdateNamespace) Type() string { return TypeUpdateNamespace } - -func (m MsgUpdateNamespace) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { - return err - } - - if m.WasmHook != nil { - if _, err := sdk.AccAddressFromBech32(m.WasmHook.NewValue); err != nil { - return ErrInvalidWasmHook - } - } - return nil -} - -func (m *MsgUpdateNamespace) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateNamespace) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgUpdateNamespaceRoles) Route() string { return routerKey } - -func (m MsgUpdateNamespaceRoles) Type() string { return TypeMsgUpdateNamespaceRoles } - -func (msg MsgUpdateNamespaceRoles) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - for _, role := range msg.AddressRoles { - if _, err := sdk.AccAddressFromBech32(role.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", role.Address) - } - } - - return nil -} - -func (m *MsgUpdateNamespaceRoles) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateNamespaceRoles) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgRevokeNamespaceRoles) Route() string { return routerKey } - -func (m MsgRevokeNamespaceRoles) Type() string { return TypeMsgRevokeNamespaceRoles } - -func (msg MsgRevokeNamespaceRoles) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - // address_roles - foundAddresses := make(map[string]struct{}, len(msg.AddressRolesToRevoke)) - for _, addrRoles := range msg.AddressRolesToRevoke { - if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", addrRoles.Address) - } - if _, ok := foundAddresses[addrRoles.Address]; ok { - return errors.Wrapf(ErrInvalidRole, "address %s - revoking roles multiple times?", addrRoles.Address) - } - for _, role := range addrRoles.Roles { - if role == EVERYONE { - return errors.Wrapf(ErrInvalidRole, "role %s can not be set / revoked", EVERYONE) - } - } - foundAddresses[addrRoles.Address] = struct{}{} - } - return nil -} - -func (m *MsgRevokeNamespaceRoles) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgRevokeNamespaceRoles) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} - -func (m MsgClaimVoucher) Route() string { return routerKey } - -func (m MsgClaimVoucher) Type() string { return TypeMsgClaimVoucher } - -func (msg MsgClaimVoucher) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return err - } - - if msg.Denom == "" { - return fmt.Errorf("invalid denom") - } - return nil -} - -func (m *MsgClaimVoucher) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgClaimVoucher) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{addr} -} diff --git a/chain/permissions/types/params.go b/chain/permissions/types/params.go deleted file mode 100644 index c8ff643e..00000000 --- a/chain/permissions/types/params.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" -) - -// ParamTable -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -func NewParams(wasmHookQueryMaxGas uint64) Params { - return Params{ - WasmHookQueryMaxGas: wasmHookQueryMaxGas, - } -} - -// default module parameters. -func DefaultParams() Params { - return Params{ - WasmHookQueryMaxGas: 200_000, - } -} - -// validate params. -func (p Params) Validate() error { - return nil -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{} -} diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index 8dac3cbb..c642dda9 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -29,24 +29,52 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type Action int32 const ( + // 0 is reserved for ACTION_UNSPECIFIED Action_UNSPECIFIED Action = 0 - Action_MINT Action = 1 - Action_RECEIVE Action = 2 - Action_BURN Action = 4 + // 1 is reserved for MINT + Action_MINT Action = 1 + // 2 is reserved for RECEIVE + Action_RECEIVE Action = 2 + // 4 is reserved for BURN + Action_BURN Action = 4 + // 8 is reserved for SEND + Action_SEND Action = 8 + // 16 is reserved for SUPER_BURN + Action_SUPER_BURN Action = 16 + // 134217728 is reserved for MODIFY_POLICY_MANAGERS + Action_MODIFY_POLICY_MANAGERS Action = 134217728 + // 268435456 is reserved for MODIFY_CONTRACT_HOOK + Action_MODIFY_CONTRACT_HOOK Action = 268435456 + // 536870912 is reserved for MODIFY_ROLE_PERMISSIONS + Action_MODIFY_ROLE_PERMISSIONS Action = 536870912 + // 1073741824 is reserved for MODIFY_ROLE_MANAGERS + Action_MODIFY_ROLE_MANAGERS Action = 1073741824 ) var Action_name = map[int32]string{ - 0: "UNSPECIFIED", - 1: "MINT", - 2: "RECEIVE", - 4: "BURN", + 0: "UNSPECIFIED", + 1: "MINT", + 2: "RECEIVE", + 4: "BURN", + 8: "SEND", + 16: "SUPER_BURN", + 134217728: "MODIFY_POLICY_MANAGERS", + 268435456: "MODIFY_CONTRACT_HOOK", + 536870912: "MODIFY_ROLE_PERMISSIONS", + 1073741824: "MODIFY_ROLE_MANAGERS", } var Action_value = map[string]int32{ - "UNSPECIFIED": 0, - "MINT": 1, - "RECEIVE": 2, - "BURN": 4, + "UNSPECIFIED": 0, + "MINT": 1, + "RECEIVE": 2, + "BURN": 4, + "SEND": 8, + "SUPER_BURN": 16, + "MODIFY_POLICY_MANAGERS": 134217728, + "MODIFY_CONTRACT_HOOK": 268435456, + "MODIFY_ROLE_PERMISSIONS": 536870912, + "MODIFY_ROLE_MANAGERS": 1073741824, } func (x Action) String() string { @@ -59,13 +87,13 @@ func (Action) EnumDescriptor() ([]byte, []int) { // Namespace defines a permissions namespace type Namespace struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - WasmHook string `protobuf:"bytes,2,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` - MintsPaused bool `protobuf:"varint,3,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` - SendsPaused bool `protobuf:"varint,4,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` - BurnsPaused bool `protobuf:"varint,5,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` - RolePermissions []*Role `protobuf:"bytes,6,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - AddressRoles []*AddressRoles `protobuf:"bytes,7,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + ContractHook string `protobuf:"bytes,2,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + ActorRoles []*ActorRoles `protobuf:"bytes,4,rep,name=actor_roles,json=actorRoles,proto3" json:"actor_roles,omitempty"` + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } func (m *Namespace) Reset() { *m = Namespace{} } @@ -108,65 +136,66 @@ func (m *Namespace) GetDenom() string { return "" } -func (m *Namespace) GetWasmHook() string { +func (m *Namespace) GetContractHook() string { if m != nil { - return m.WasmHook + return m.ContractHook } return "" } -func (m *Namespace) GetMintsPaused() bool { +func (m *Namespace) GetRolePermissions() []*Role { if m != nil { - return m.MintsPaused + return m.RolePermissions } - return false + return nil } -func (m *Namespace) GetSendsPaused() bool { +func (m *Namespace) GetActorRoles() []*ActorRoles { if m != nil { - return m.SendsPaused + return m.ActorRoles } - return false + return nil } -func (m *Namespace) GetBurnsPaused() bool { +func (m *Namespace) GetRoleManagers() []*RoleManager { if m != nil { - return m.BurnsPaused + return m.RoleManagers } - return false + return nil } -func (m *Namespace) GetRolePermissions() []*Role { +func (m *Namespace) GetPolicyStatuses() []*PolicyStatus { if m != nil { - return m.RolePermissions + return m.PolicyStatuses } return nil } -func (m *Namespace) GetAddressRoles() []*AddressRoles { +func (m *Namespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability { if m != nil { - return m.AddressRoles + return m.PolicyManagerCapabilities } return nil } -type AddressRoles struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` +// AddressRoles defines roles for an actor +type ActorRoles struct { + Actor string `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *AddressRoles) Reset() { *m = AddressRoles{} } -func (m *AddressRoles) String() string { return proto.CompactTextString(m) } -func (*AddressRoles) ProtoMessage() {} -func (*AddressRoles) Descriptor() ([]byte, []int) { +func (m *ActorRoles) Reset() { *m = ActorRoles{} } +func (m *ActorRoles) String() string { return proto.CompactTextString(m) } +func (*ActorRoles) ProtoMessage() {} +func (*ActorRoles) Descriptor() ([]byte, []int) { return fileDescriptor_6d25f3ecf3806c6c, []int{1} } -func (m *AddressRoles) XXX_Unmarshal(b []byte) error { +func (m *ActorRoles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *AddressRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ActorRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_AddressRoles.Marshal(b, m, deterministic) + return xxx_messageInfo_ActorRoles.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -176,43 +205,211 @@ func (m *AddressRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) return b[:n], nil } } -func (m *AddressRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddressRoles.Merge(m, src) +func (m *ActorRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActorRoles.Merge(m, src) } -func (m *AddressRoles) XXX_Size() int { +func (m *ActorRoles) XXX_Size() int { return m.Size() } -func (m *AddressRoles) XXX_DiscardUnknown() { - xxx_messageInfo_AddressRoles.DiscardUnknown(m) +func (m *ActorRoles) XXX_DiscardUnknown() { + xxx_messageInfo_ActorRoles.DiscardUnknown(m) } -var xxx_messageInfo_AddressRoles proto.InternalMessageInfo +var xxx_messageInfo_ActorRoles proto.InternalMessageInfo -func (m *AddressRoles) GetAddress() string { +func (m *ActorRoles) GetActor() string { if m != nil { - return m.Address + return m.Actor + } + return "" +} + +func (m *ActorRoles) GetRoles() []string { + if m != nil { + return m.Roles + } + return nil +} + +// RoleActors defines actors for a role +type RoleActors struct { + Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + Actors []string `protobuf:"bytes,2,rep,name=actors,proto3" json:"actors,omitempty"` +} + +func (m *RoleActors) Reset() { *m = RoleActors{} } +func (m *RoleActors) String() string { return proto.CompactTextString(m) } +func (*RoleActors) ProtoMessage() {} +func (*RoleActors) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{2} +} +func (m *RoleActors) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RoleActors) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RoleActors.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RoleActors) XXX_Merge(src proto.Message) { + xxx_messageInfo_RoleActors.Merge(m, src) +} +func (m *RoleActors) XXX_Size() int { + return m.Size() +} +func (m *RoleActors) XXX_DiscardUnknown() { + xxx_messageInfo_RoleActors.DiscardUnknown(m) +} + +var xxx_messageInfo_RoleActors proto.InternalMessageInfo + +func (m *RoleActors) GetRole() string { + if m != nil { + return m.Role + } + return "" +} + +func (m *RoleActors) GetActors() []string { + if m != nil { + return m.Actors + } + return nil +} + +// RoleManager defines roles for a manager address +type RoleManager struct { + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` +} + +func (m *RoleManager) Reset() { *m = RoleManager{} } +func (m *RoleManager) String() string { return proto.CompactTextString(m) } +func (*RoleManager) ProtoMessage() {} +func (*RoleManager) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{3} +} +func (m *RoleManager) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RoleManager) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RoleManager.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RoleManager) XXX_Merge(src proto.Message) { + xxx_messageInfo_RoleManager.Merge(m, src) +} +func (m *RoleManager) XXX_Size() int { + return m.Size() +} +func (m *RoleManager) XXX_DiscardUnknown() { + xxx_messageInfo_RoleManager.DiscardUnknown(m) +} + +var xxx_messageInfo_RoleManager proto.InternalMessageInfo + +func (m *RoleManager) GetManager() string { + if m != nil { + return m.Manager } return "" } -func (m *AddressRoles) GetRoles() []string { +func (m *RoleManager) GetRoles() []string { if m != nil { return m.Roles } return nil } +// PolicyStatus defines the status of a policy +type PolicyStatus struct { + Action Action `protobuf:"varint,1,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + IsDisabled bool `protobuf:"varint,2,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"` + IsSealed bool `protobuf:"varint,3,opt,name=is_sealed,json=isSealed,proto3" json:"is_sealed,omitempty"` +} + +func (m *PolicyStatus) Reset() { *m = PolicyStatus{} } +func (m *PolicyStatus) String() string { return proto.CompactTextString(m) } +func (*PolicyStatus) ProtoMessage() {} +func (*PolicyStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{4} +} +func (m *PolicyStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PolicyStatus.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PolicyStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyStatus.Merge(m, src) +} +func (m *PolicyStatus) XXX_Size() int { + return m.Size() +} +func (m *PolicyStatus) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyStatus proto.InternalMessageInfo + +func (m *PolicyStatus) GetAction() Action { + if m != nil { + return m.Action + } + return Action_UNSPECIFIED +} + +func (m *PolicyStatus) GetIsDisabled() bool { + if m != nil { + return m.IsDisabled + } + return false +} + +func (m *PolicyStatus) GetIsSealed() bool { + if m != nil { + return m.IsSealed + } + return false +} + // Role is only used for storage type Role struct { - Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` - Permissions uint32 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + RoleId uint32 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` + Permissions uint32 `protobuf:"varint,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } func (m *Role) Reset() { *m = Role{} } func (m *Role) String() string { return proto.CompactTextString(m) } func (*Role) ProtoMessage() {} func (*Role) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{2} + return fileDescriptor_6d25f3ecf3806c6c, []int{5} } func (m *Role) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -241,13 +438,20 @@ func (m *Role) XXX_DiscardUnknown() { var xxx_messageInfo_Role proto.InternalMessageInfo -func (m *Role) GetRole() string { +func (m *Role) GetName() string { if m != nil { - return m.Role + return m.Name } return "" } +func (m *Role) GetRoleId() uint32 { + if m != nil { + return m.RoleId + } + return 0 +} + func (m *Role) GetPermissions() uint32 { if m != nil { return m.Permissions @@ -255,6 +459,75 @@ func (m *Role) GetPermissions() uint32 { return 0 } +// PolicyManagerCapability defines the capabilities of a manager for a policy +type PolicyManagerCapability struct { + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + CanDisable bool `protobuf:"varint,3,opt,name=can_disable,json=canDisable,proto3" json:"can_disable,omitempty"` + CanSeal bool `protobuf:"varint,4,opt,name=can_seal,json=canSeal,proto3" json:"can_seal,omitempty"` +} + +func (m *PolicyManagerCapability) Reset() { *m = PolicyManagerCapability{} } +func (m *PolicyManagerCapability) String() string { return proto.CompactTextString(m) } +func (*PolicyManagerCapability) ProtoMessage() {} +func (*PolicyManagerCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{6} +} +func (m *PolicyManagerCapability) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PolicyManagerCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PolicyManagerCapability.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PolicyManagerCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyManagerCapability.Merge(m, src) +} +func (m *PolicyManagerCapability) XXX_Size() int { + return m.Size() +} +func (m *PolicyManagerCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyManagerCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyManagerCapability proto.InternalMessageInfo + +func (m *PolicyManagerCapability) GetManager() string { + if m != nil { + return m.Manager + } + return "" +} + +func (m *PolicyManagerCapability) GetAction() Action { + if m != nil { + return m.Action + } + return Action_UNSPECIFIED +} + +func (m *PolicyManagerCapability) GetCanDisable() bool { + if m != nil { + return m.CanDisable + } + return false +} + +func (m *PolicyManagerCapability) GetCanSeal() bool { + if m != nil { + return m.CanSeal + } + return false +} + // used in storage type RoleIDs struct { RoleIds []uint32 `protobuf:"varint,1,rep,packed,name=role_ids,json=roleIds,proto3" json:"role_ids,omitempty"` @@ -264,7 +537,7 @@ func (m *RoleIDs) Reset() { *m = RoleIDs{} } func (m *RoleIDs) String() string { return proto.CompactTextString(m) } func (*RoleIDs) ProtoMessage() {} func (*RoleIDs) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{3} + return fileDescriptor_6d25f3ecf3806c6c, []int{7} } func (m *RoleIDs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -300,6 +573,7 @@ func (m *RoleIDs) GetRoleIds() []uint32 { return nil } +// Voucher is used to represent a voucher type Voucher struct { Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` } @@ -308,7 +582,7 @@ func (m *Voucher) Reset() { *m = Voucher{} } func (m *Voucher) String() string { return proto.CompactTextString(m) } func (*Voucher) ProtoMessage() {} func (*Voucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{4} + return fileDescriptor_6d25f3ecf3806c6c, []int{8} } func (m *Voucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -344,16 +618,17 @@ func (m *Voucher) GetCoins() github_com_cosmos_cosmos_sdk_types.Coins { return nil } +// AddressVoucher is used to represent a voucher for a specific address type AddressVoucher struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Voucher *Voucher `protobuf:"bytes,2,opt,name=voucher,proto3" json:"voucher,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } func (m *AddressVoucher) Reset() { *m = AddressVoucher{} } func (m *AddressVoucher) String() string { return proto.CompactTextString(m) } func (*AddressVoucher) ProtoMessage() {} func (*AddressVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{5} + return fileDescriptor_6d25f3ecf3806c6c, []int{9} } func (m *AddressVoucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -389,18 +664,15 @@ func (m *AddressVoucher) GetAddress() string { return "" } -func (m *AddressVoucher) GetVoucher() *Voucher { - if m != nil { - return m.Voucher - } - return nil -} - func init() { proto.RegisterEnum("injective.permissions.v1beta1.Action", Action_name, Action_value) proto.RegisterType((*Namespace)(nil), "injective.permissions.v1beta1.Namespace") - proto.RegisterType((*AddressRoles)(nil), "injective.permissions.v1beta1.AddressRoles") + proto.RegisterType((*ActorRoles)(nil), "injective.permissions.v1beta1.ActorRoles") + proto.RegisterType((*RoleActors)(nil), "injective.permissions.v1beta1.RoleActors") + proto.RegisterType((*RoleManager)(nil), "injective.permissions.v1beta1.RoleManager") + proto.RegisterType((*PolicyStatus)(nil), "injective.permissions.v1beta1.PolicyStatus") proto.RegisterType((*Role)(nil), "injective.permissions.v1beta1.Role") + proto.RegisterType((*PolicyManagerCapability)(nil), "injective.permissions.v1beta1.PolicyManagerCapability") proto.RegisterType((*RoleIDs)(nil), "injective.permissions.v1beta1.RoleIDs") proto.RegisterType((*Voucher)(nil), "injective.permissions.v1beta1.Voucher") proto.RegisterType((*AddressVoucher)(nil), "injective.permissions.v1beta1.AddressVoucher") @@ -411,43 +683,64 @@ func init() { } var fileDescriptor_6d25f3ecf3806c6c = []byte{ - // 567 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x53, 0x4d, 0x8f, 0xd2, 0x4e, - 0x18, 0xa7, 0xbc, 0x15, 0xa6, 0xf0, 0x5f, 0x32, 0xd9, 0x43, 0x77, 0xff, 0xb1, 0x8b, 0xd5, 0x18, - 0xa2, 0xd9, 0xd6, 0xc5, 0x9b, 0x31, 0xc6, 0x85, 0xc5, 0xd8, 0x44, 0x09, 0x56, 0x77, 0x0f, 0x5e, - 0x48, 0x5f, 0x26, 0x30, 0x42, 0x3b, 0xa4, 0x4f, 0xc1, 0xf8, 0x2d, 0xfc, 0x1c, 0x7e, 0x92, 0xf5, - 0xb6, 0x47, 0x4f, 0x6a, 0xe0, 0x8b, 0x98, 0x99, 0x29, 0x50, 0x0f, 0xba, 0x27, 0xfa, 0xfc, 0x5e, - 0x9e, 0xe1, 0xf9, 0xcd, 0x33, 0xc8, 0xa6, 0xf1, 0x47, 0x12, 0xa4, 0x74, 0x45, 0xec, 0x05, 0x49, - 0x22, 0x0a, 0x40, 0x59, 0x0c, 0xf6, 0xea, 0xcc, 0x27, 0xa9, 0x77, 0x96, 0xc7, 0xac, 0x45, 0xc2, - 0x52, 0x86, 0xef, 0xec, 0x0c, 0x56, 0x9e, 0xcc, 0x0c, 0xc7, 0x87, 0x13, 0x36, 0x61, 0x42, 0x69, - 0xf3, 0x2f, 0x69, 0x3a, 0x36, 0x02, 0x06, 0x11, 0x03, 0xdb, 0xf7, 0x80, 0xec, 0x7a, 0x07, 0x8c, - 0xc6, 0x92, 0x37, 0xbf, 0x15, 0x51, 0x7d, 0xe8, 0x45, 0x04, 0x16, 0x5e, 0x40, 0xf0, 0x21, 0xaa, - 0x84, 0x24, 0x66, 0x91, 0xae, 0xb4, 0x95, 0x4e, 0xdd, 0x95, 0x05, 0xfe, 0x1f, 0xd5, 0x3f, 0x79, - 0x10, 0x8d, 0xa7, 0x8c, 0xcd, 0xf4, 0xa2, 0x60, 0x6a, 0x1c, 0x78, 0xc5, 0xd8, 0x0c, 0xdf, 0x45, - 0x8d, 0x88, 0xc6, 0x29, 0x8c, 0x17, 0xde, 0x12, 0x48, 0xa8, 0x97, 0xda, 0x4a, 0xa7, 0xe6, 0x6a, - 0x02, 0x1b, 0x09, 0x88, 0x4b, 0x80, 0xc4, 0xe1, 0x4e, 0x52, 0x96, 0x12, 0x81, 0xed, 0x25, 0xfe, - 0x32, 0x89, 0x77, 0x92, 0x8a, 0x94, 0x08, 0x2c, 0x93, 0x0c, 0x51, 0x2b, 0x61, 0x73, 0x32, 0xce, - 0xcd, 0xae, 0x57, 0xdb, 0xa5, 0x8e, 0xd6, 0xbd, 0x67, 0xfd, 0x33, 0x19, 0xcb, 0x65, 0x73, 0xe2, - 0x1e, 0x70, 0xf3, 0x68, 0xcf, 0xe2, 0x11, 0x6a, 0x7a, 0x61, 0x98, 0x10, 0x80, 0x31, 0xa7, 0x40, - 0x57, 0x45, 0xb3, 0x47, 0xb7, 0x34, 0x3b, 0x97, 0x1e, 0xde, 0x13, 0xdc, 0x86, 0x97, 0xab, 0xcc, - 0xe7, 0xa8, 0x91, 0x67, 0xb1, 0x8e, 0xd4, 0x8c, 0xcf, 0xf2, 0xdc, 0x96, 0x3c, 0x67, 0x79, 0x66, - 0xb1, 0x5d, 0xe2, 0x39, 0x8b, 0xc2, 0x7c, 0x86, 0xca, 0xdc, 0x88, 0x31, 0x2a, 0x73, 0x20, 0x33, - 0x89, 0x6f, 0xdc, 0x46, 0x5a, 0x7e, 0x70, 0x7e, 0x0b, 0x4d, 0x37, 0x0f, 0x99, 0xf7, 0x91, 0xca, - 0xdd, 0xce, 0x05, 0xe0, 0x23, 0x54, 0x13, 0x51, 0xd1, 0x90, 0x9f, 0x5c, 0xea, 0x34, 0x5d, 0x95, - 0xd7, 0x4e, 0x08, 0xe6, 0x1c, 0xa9, 0x57, 0x6c, 0x19, 0x4c, 0x49, 0x82, 0x3d, 0x54, 0xe1, 0x8b, - 0x20, 0x25, 0x5a, 0xf7, 0xc8, 0x92, 0xab, 0x62, 0xf1, 0x55, 0xd9, 0x8d, 0xdb, 0x67, 0x34, 0xee, - 0x3d, 0xbe, 0xfe, 0x71, 0x52, 0xf8, 0xfa, 0xf3, 0xa4, 0x33, 0xa1, 0xe9, 0x74, 0xe9, 0x5b, 0x01, - 0x8b, 0xec, 0x6c, 0xaf, 0xe4, 0xcf, 0x29, 0x84, 0x33, 0x3b, 0xfd, 0xbc, 0x20, 0x20, 0x0c, 0xe0, - 0xca, 0xce, 0xe6, 0x1c, 0xfd, 0x97, 0x25, 0xb2, 0x3d, 0xf4, 0xef, 0x99, 0xbc, 0x40, 0xea, 0x4a, - 0x8a, 0xc4, 0x74, 0x5a, 0xf7, 0xc1, 0x2d, 0x37, 0x91, 0xb5, 0x74, 0xb7, 0xb6, 0x87, 0x4f, 0x51, - 0xf5, 0x3c, 0x48, 0x29, 0x8b, 0xf1, 0x01, 0xd2, 0x2e, 0x87, 0xef, 0x46, 0x83, 0xbe, 0xf3, 0xd2, - 0x19, 0x5c, 0xb4, 0x0a, 0xb8, 0x86, 0xca, 0x6f, 0x9c, 0xe1, 0xfb, 0x96, 0x82, 0x35, 0xa4, 0xba, - 0x83, 0xfe, 0xc0, 0xb9, 0x1a, 0xb4, 0x8a, 0x1c, 0xee, 0x5d, 0xba, 0xc3, 0x56, 0xb9, 0x37, 0xbb, - 0x5e, 0x1b, 0xca, 0xcd, 0xda, 0x50, 0x7e, 0xad, 0x0d, 0xe5, 0xcb, 0xc6, 0x28, 0xdc, 0x6c, 0x8c, - 0xc2, 0xf7, 0x8d, 0x51, 0xf8, 0xf0, 0x36, 0x37, 0xb4, 0xb3, 0xfd, 0x43, 0xaf, 0x3d, 0x1f, 0xf6, - 0x0f, 0xf8, 0x34, 0x60, 0x09, 0xc9, 0x97, 0x53, 0x8f, 0xc6, 0x76, 0xc4, 0xc2, 0xe5, 0x9c, 0xc0, - 0x1f, 0xaf, 0x5b, 0x64, 0xe4, 0x57, 0xc5, 0xdb, 0x7b, 0xf2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xf3, - 0xf2, 0xce, 0xa8, 0x03, 0x04, 0x00, 0x00, + // 901 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xda, 0x8e, 0xd7, 0x79, 0xce, 0x0f, 0x33, 0x8a, 0x9a, 0x4d, 0x4b, 0x6d, 0xcb, 0x05, + 0x11, 0x0a, 0xb5, 0x69, 0x90, 0x10, 0x97, 0x4a, 0x38, 0xf6, 0x96, 0x2e, 0xc4, 0x3f, 0x18, 0x27, + 0x95, 0xca, 0x65, 0x35, 0x5e, 0x8f, 0x92, 0x21, 0xde, 0x1d, 0x6b, 0x67, 0x13, 0xc9, 0x37, 0x73, + 0xe6, 0xc2, 0x3f, 0xc1, 0x85, 0x03, 0x7f, 0x47, 0x8f, 0x39, 0x22, 0x0e, 0x01, 0x25, 0x37, 0xfe, + 0x0a, 0x34, 0xb3, 0xb3, 0xf6, 0x56, 0x22, 0x3f, 0xd4, 0x93, 0xe7, 0xbd, 0x6f, 0xbe, 0xef, 0xbd, + 0xf9, 0xf6, 0x79, 0x06, 0x9a, 0x2c, 0xf8, 0x89, 0x7a, 0x11, 0x3b, 0xa7, 0xcd, 0x29, 0x0d, 0x7d, + 0x26, 0x04, 0xe3, 0x81, 0x68, 0x9e, 0x3f, 0x1f, 0xd1, 0x88, 0x3c, 0x4f, 0xe7, 0x1a, 0xd3, 0x90, + 0x47, 0x1c, 0x3d, 0x5e, 0x10, 0x1a, 0x69, 0x50, 0x13, 0x1e, 0x56, 0x3c, 0x2e, 0x7c, 0x2e, 0x9a, + 0x23, 0x22, 0xe8, 0x42, 0xc5, 0xe3, 0x2c, 0x88, 0xe9, 0x0f, 0xb7, 0x8e, 0xf9, 0x31, 0x57, 0xcb, + 0xa6, 0x5c, 0xc5, 0xd9, 0xfa, 0xcf, 0x79, 0x58, 0xed, 0x11, 0x9f, 0x8a, 0x29, 0xf1, 0x28, 0xda, + 0x82, 0x95, 0x31, 0x0d, 0xb8, 0x6f, 0x19, 0x35, 0x63, 0x77, 0x15, 0xc7, 0x01, 0x7a, 0x02, 0xeb, + 0x1e, 0x0f, 0xa2, 0x90, 0x78, 0x91, 0x7b, 0xc2, 0xf9, 0xa9, 0x95, 0x55, 0xe8, 0x5a, 0x92, 0x7c, + 0xc5, 0xf9, 0x29, 0xea, 0x41, 0x39, 0xe4, 0x13, 0xea, 0xa6, 0x5a, 0xb3, 0x72, 0xb5, 0xdc, 0x6e, + 0x69, 0xef, 0x49, 0xe3, 0xd6, 0xc6, 0x1b, 0x98, 0x4f, 0x28, 0xde, 0x94, 0xe4, 0xc1, 0x12, 0x45, + 0xdf, 0x41, 0x89, 0x78, 0x11, 0x0f, 0x5d, 0x09, 0x08, 0x2b, 0xaf, 0xa4, 0x3e, 0xbd, 0x43, 0xaa, + 0x25, 0x19, 0x52, 0x4f, 0x60, 0x20, 0x8b, 0x35, 0xea, 0xc3, 0xba, 0xea, 0xcd, 0x27, 0x01, 0x39, + 0xa6, 0xa1, 0xb0, 0x56, 0x94, 0xda, 0xd3, 0x7b, 0x34, 0xd6, 0x8d, 0x29, 0x78, 0x2d, 0x5c, 0x06, + 0x02, 0x1d, 0xc2, 0xe6, 0x94, 0x4f, 0x98, 0x37, 0x73, 0x45, 0x44, 0xa2, 0x33, 0x41, 0x85, 0x55, + 0x50, 0x92, 0x9f, 0xdd, 0x21, 0x39, 0x50, 0xac, 0xa1, 0x22, 0xe1, 0x8d, 0x69, 0x2a, 0xa2, 0x02, + 0x9d, 0xc3, 0x23, 0xad, 0xaa, 0x1b, 0x75, 0x3d, 0x32, 0x25, 0x23, 0x36, 0x61, 0x11, 0xa3, 0xc2, + 0x32, 0x55, 0x85, 0xaf, 0xee, 0x55, 0x41, 0x77, 0xda, 0x4e, 0xf8, 0x33, 0xbc, 0x33, 0xfd, 0x5f, + 0x80, 0x51, 0x51, 0xff, 0x1a, 0x60, 0x69, 0x9c, 0x9c, 0x01, 0x65, 0x5d, 0x32, 0x03, 0x2a, 0x90, + 0xd9, 0xf8, 0x43, 0x64, 0x6b, 0x39, 0x99, 0x55, 0x81, 0x64, 0x4a, 0x92, 0x62, 0x0b, 0x84, 0x20, + 0x2f, 0xd3, 0x9a, 0xa8, 0xd6, 0xe8, 0x01, 0x14, 0x94, 0x40, 0x42, 0xd4, 0x51, 0xfd, 0x05, 0x94, + 0x52, 0xf6, 0x22, 0x0b, 0x4c, 0x7d, 0x66, 0xcd, 0x4e, 0xc2, 0x1b, 0x0a, 0xff, 0x62, 0xc0, 0x5a, + 0xda, 0x4b, 0xf4, 0x42, 0xd5, 0x61, 0x3c, 0x50, 0xfc, 0x8d, 0xbd, 0x8f, 0xef, 0x9e, 0x14, 0xc6, + 0x03, 0xac, 0x49, 0xa8, 0x0a, 0x25, 0x26, 0xdc, 0x31, 0x13, 0x64, 0x34, 0xa1, 0x63, 0x35, 0xe0, + 0x45, 0x0c, 0x4c, 0x74, 0x74, 0x06, 0x3d, 0x82, 0x55, 0x26, 0x5c, 0x41, 0x89, 0x84, 0x73, 0x0a, + 0x2e, 0x32, 0x31, 0x54, 0x71, 0xfd, 0x08, 0xf2, 0xf2, 0x30, 0xd2, 0x80, 0x80, 0xf8, 0x0b, 0x03, + 0xe4, 0x1a, 0x6d, 0x83, 0xa9, 0x66, 0x8f, 0xc5, 0xaa, 0xeb, 0xb8, 0x20, 0x43, 0x67, 0x8c, 0x6a, + 0x50, 0x7a, 0xf7, 0xbf, 0x22, 0xc1, 0x74, 0xaa, 0xfe, 0x87, 0x01, 0xdb, 0x37, 0x7c, 0xce, 0x5b, + 0x0c, 0x5b, 0x3a, 0x91, 0x7d, 0x4f, 0x27, 0x3c, 0x12, 0x24, 0x56, 0xe8, 0xa3, 0x82, 0x47, 0x02, + 0x6d, 0x05, 0xda, 0x81, 0xa2, 0xdc, 0x20, 0xad, 0xb0, 0xf2, 0x0a, 0x35, 0x3d, 0x12, 0x48, 0x27, + 0xea, 0x1f, 0x81, 0x29, 0x7d, 0x70, 0x3a, 0x42, 0xee, 0xd2, 0xc7, 0x16, 0x96, 0x51, 0xcb, 0xed, + 0xae, 0x63, 0x33, 0x3e, 0xb7, 0xa8, 0x4f, 0xc0, 0x7c, 0xcd, 0xcf, 0xbc, 0x13, 0x1a, 0x22, 0x02, + 0x2b, 0xf2, 0x86, 0x8a, 0xb7, 0x94, 0xf6, 0x76, 0x1a, 0xf1, 0x1d, 0xd6, 0x90, 0x77, 0xd8, 0xa2, + 0xc1, 0x36, 0x67, 0xc1, 0xfe, 0x17, 0x6f, 0x2f, 0xab, 0x99, 0xdf, 0xff, 0xae, 0xee, 0x1e, 0xb3, + 0xe8, 0xe4, 0x6c, 0xd4, 0xf0, 0xb8, 0xdf, 0xd4, 0x17, 0x5e, 0xfc, 0xf3, 0x4c, 0x8c, 0x4f, 0x9b, + 0xd1, 0x6c, 0x4a, 0x85, 0x22, 0x08, 0x1c, 0x2b, 0xd7, 0x7f, 0x33, 0x60, 0xa3, 0x35, 0x1e, 0x87, + 0x54, 0x88, 0xa4, 0xaa, 0x05, 0x26, 0x89, 0x33, 0x89, 0x77, 0x3a, 0x44, 0x33, 0x30, 0xcf, 0xe3, + 0x4d, 0xca, 0xbc, 0x5b, 0x3b, 0xea, 0xc8, 0x8e, 0xfe, 0xba, 0xac, 0x7e, 0x72, 0xcf, 0x8e, 0xfe, + 0xbd, 0xac, 0x7e, 0xa0, 0xc5, 0x3f, 0xe7, 0x3e, 0x8b, 0xa8, 0x3f, 0x8d, 0x66, 0x38, 0xa9, 0xf7, + 0xf4, 0xc2, 0x80, 0x42, 0xfc, 0x29, 0xd0, 0x26, 0x94, 0x8e, 0x7a, 0xc3, 0x81, 0xdd, 0x76, 0x5e, + 0x3a, 0x76, 0xa7, 0x9c, 0x41, 0x45, 0xc8, 0x77, 0x9d, 0xde, 0x61, 0xd9, 0x40, 0x25, 0x30, 0xb1, + 0xdd, 0xb6, 0x9d, 0xd7, 0x76, 0x39, 0x2b, 0xd3, 0xfb, 0x47, 0xb8, 0x57, 0xce, 0xcb, 0xd5, 0xd0, + 0xee, 0x75, 0xca, 0x45, 0xb4, 0x01, 0x30, 0x3c, 0x1a, 0xd8, 0xd8, 0x55, 0x48, 0x19, 0x3d, 0x86, + 0x07, 0xdd, 0x7e, 0xc7, 0x79, 0xf9, 0xc6, 0x1d, 0xf4, 0x0f, 0x9c, 0xf6, 0x1b, 0xb7, 0xdb, 0xea, + 0xb5, 0xbe, 0xb5, 0xf1, 0xb0, 0x3c, 0x9f, 0xcf, 0xbf, 0x41, 0x1f, 0xc2, 0x96, 0x86, 0xdb, 0xfd, + 0xde, 0x21, 0x6e, 0xb5, 0x0f, 0xdd, 0x57, 0xfd, 0xfe, 0xf7, 0x12, 0x9c, 0x1b, 0xa8, 0x0a, 0xdb, + 0x1a, 0xc5, 0xfd, 0x03, 0xdb, 0x1d, 0xd8, 0xb8, 0xeb, 0x0c, 0x87, 0x4e, 0xbf, 0xa7, 0xd8, 0xf3, + 0x6c, 0x8a, 0xae, 0x36, 0xa4, 0xb5, 0xe7, 0xf9, 0xfd, 0xd3, 0xb7, 0x57, 0x15, 0xe3, 0xe2, 0xaa, + 0x62, 0xfc, 0x73, 0x55, 0x31, 0x7e, 0xbd, 0xae, 0x64, 0x2e, 0xae, 0x2b, 0x99, 0x3f, 0xaf, 0x2b, + 0x99, 0x1f, 0x7f, 0x48, 0x79, 0xe6, 0x24, 0xd3, 0x79, 0x40, 0x46, 0x62, 0xf9, 0x28, 0x3e, 0xf3, + 0x78, 0x48, 0xd3, 0xe1, 0x09, 0x61, 0x41, 0xd3, 0xe7, 0xe3, 0xb3, 0x09, 0x15, 0xef, 0xbc, 0x98, + 0xca, 0xe2, 0x51, 0x41, 0xbd, 0x67, 0x5f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xcd, 0x22, + 0x33, 0x57, 0x07, 0x00, 0x00, } func (m *Namespace) Marshal() (dAtA []byte, err error) { @@ -470,10 +763,10 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.AddressRoles) > 0 { - for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -484,10 +777,10 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x3a } } - if len(m.RolePermissions) > 0 { - for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -498,40 +791,52 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x32 } } - if m.BurnsPaused { - i-- - if m.BurnsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x28 } - if m.SendsPaused { - i-- - if m.SendsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.ActorRoles) > 0 { + for iNdEx := len(m.ActorRoles) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ActorRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 } - i-- - dAtA[i] = 0x20 } - if m.MintsPaused { - i-- - if m.MintsPaused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x18 } - if len(m.WasmHook) > 0 { - i -= len(m.WasmHook) - copy(dAtA[i:], m.WasmHook) - i = encodeVarintPermissions(dAtA, i, uint64(len(m.WasmHook))) + if len(m.ContractHook) > 0 { + i -= len(m.ContractHook) + copy(dAtA[i:], m.ContractHook) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.ContractHook))) i-- dAtA[i] = 0x12 } @@ -545,7 +850,7 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AddressRoles) Marshal() (dAtA []byte, err error) { +func (m *ActorRoles) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -555,12 +860,12 @@ func (m *AddressRoles) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *AddressRoles) MarshalTo(dAtA []byte) (int, error) { +func (m *ActorRoles) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *AddressRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ActorRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -574,17 +879,17 @@ func (m *AddressRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintPermissions(dAtA, i, uint64(len(m.Address))) + if len(m.Actor) > 0 { + i -= len(m.Actor) + copy(dAtA[i:], m.Actor) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Actor))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Role) Marshal() (dAtA []byte, err error) { +func (m *RoleActors) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -594,20 +899,24 @@ func (m *Role) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Role) MarshalTo(dAtA []byte) (int, error) { +func (m *RoleActors) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RoleActors) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.Permissions != 0 { - i = encodeVarintPermissions(dAtA, i, uint64(m.Permissions)) - i-- - dAtA[i] = 0x10 + if len(m.Actors) > 0 { + for iNdEx := len(m.Actors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Actors[iNdEx]) + copy(dAtA[i:], m.Actors[iNdEx]) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Actors[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } if len(m.Role) > 0 { i -= len(m.Role) @@ -619,7 +928,7 @@ func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *RoleIDs) Marshal() (dAtA []byte, err error) { +func (m *RoleManager) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -629,31 +938,213 @@ func (m *RoleIDs) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RoleIDs) MarshalTo(dAtA []byte) (int, error) { +func (m *RoleManager) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RoleManager) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.RoleIds) > 0 { - dAtA2 := make([]byte, len(m.RoleIds)*10) - var j1 int - for _, num := range m.RoleIds { - for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA2[j1] = uint8(num) - j1++ + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0x12 } - i -= j1 - copy(dAtA[i:], dAtA2[:j1]) - i = encodeVarintPermissions(dAtA, i, uint64(j1)) + } + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PolicyStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsSealed { + i-- + if m.IsSealed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.IsDisabled { + i-- + if m.IsDisabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Action != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Action)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Role) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Role) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Permissions != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Permissions)) + i-- + dAtA[i] = 0x18 + } + if m.RoleId != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.RoleId)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PolicyManagerCapability) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyManagerCapability) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PolicyManagerCapability) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.CanSeal { + i-- + if m.CanSeal { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.CanDisable { + i-- + if m.CanDisable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Action != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Action)) + i-- + dAtA[i] = 0x10 + } + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RoleIDs) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleIDs) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RoleIds) > 0 { + dAtA2 := make([]byte, len(m.RoleIds)*10) + var j1 int + for _, num := range m.RoleIds { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintPermissions(dAtA, i, uint64(j1)) i-- dAtA[i] = 0xa } @@ -717,18 +1208,16 @@ func (m *AddressVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Voucher != nil { - { - size, err := m.Voucher.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPermissions(dAtA, i, uint64(size)) + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err } - i-- - dAtA[i] = 0x12 + i = encodeVarintPermissions(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x12 if len(m.Address) > 0 { i -= len(m.Address) copy(dAtA[i:], m.Address) @@ -760,27 +1249,36 @@ func (m *Namespace) Size() (n int) { if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } - l = len(m.WasmHook) + l = len(m.ContractHook) if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } - if m.MintsPaused { - n += 2 + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if m.SendsPaused { - n += 2 + if len(m.ActorRoles) > 0 { + for _, e := range m.ActorRoles { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if m.BurnsPaused { - n += 2 + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } } - if len(m.RolePermissions) > 0 { - for _, e := range m.RolePermissions { + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { l = e.Size() n += 1 + l + sovPermissions(uint64(l)) } } - if len(m.AddressRoles) > 0 { - for _, e := range m.AddressRoles { + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { l = e.Size() n += 1 + l + sovPermissions(uint64(l)) } @@ -788,13 +1286,13 @@ func (m *Namespace) Size() (n int) { return n } -func (m *AddressRoles) Size() (n int) { +func (m *ActorRoles) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Address) + l = len(m.Actor) if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } @@ -807,7 +1305,7 @@ func (m *AddressRoles) Size() (n int) { return n } -func (m *Role) Size() (n int) { +func (m *RoleActors) Size() (n int) { if m == nil { return 0 } @@ -817,12 +1315,93 @@ func (m *Role) Size() (n int) { if l > 0 { n += 1 + l + sovPermissions(uint64(l)) } + if len(m.Actors) > 0 { + for _, s := range m.Actors { + l = len(s) + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *RoleManager) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *PolicyStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Action != 0 { + n += 1 + sovPermissions(uint64(m.Action)) + } + if m.IsDisabled { + n += 2 + } + if m.IsSealed { + n += 2 + } + return n +} + +func (m *Role) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.RoleId != 0 { + n += 1 + sovPermissions(uint64(m.RoleId)) + } if m.Permissions != 0 { n += 1 + sovPermissions(uint64(m.Permissions)) } return n } +func (m *PolicyManagerCapability) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.Action != 0 { + n += 1 + sovPermissions(uint64(m.Action)) + } + if m.CanDisable { + n += 2 + } + if m.CanSeal { + n += 2 + } + return n +} + func (m *RoleIDs) Size() (n int) { if m == nil { return 0 @@ -851,33 +1430,543 @@ func (m *Voucher) Size() (n int) { n += 1 + l + sovPermissions(uint64(l)) } } - return n -} + return n +} + +func (m *AddressVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + l = m.Voucher.Size() + n += 1 + l + sovPermissions(uint64(l)) + return n +} + +func sovPermissions(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozPermissions(x uint64) (n int) { + return sovPermissions(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Namespace) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Namespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Namespace: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractHook = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RolePermissions = append(m.RolePermissions, &Role{}) + if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActorRoles", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActorRoles = append(m.ActorRoles, &ActorRoles{}) + if err := m.ActorRoles[len(m.ActorRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActorRoles) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActorRoles: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActorRoles: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actor", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actor = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleActors) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleActors: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleActors: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actors = append(m.Actors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func (m *AddressVoucher) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovPermissions(uint64(l)) - } - if m.Voucher != nil { - l = m.Voucher.Size() - n += 1 + l + sovPermissions(uint64(l)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} - -func sovPermissions(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozPermissions(x uint64) (n int) { - return sovPermissions(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *Namespace) Unmarshal(dAtA []byte) error { +func (m *RoleManager) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -900,15 +1989,15 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Namespace: wiretype end group for non-group") + return fmt.Errorf("proto: RoleManager: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Namespace: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RoleManager: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -936,11 +2025,11 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denom = string(dAtA[iNdEx:postIndex]) + m.Manager = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -968,13 +2057,63 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.WasmHook = string(dAtA[iNdEx:postIndex]) + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipPermissions(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermissions + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PolicyStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PolicyStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PolicyStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) } - var v int + m.Action = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -984,15 +2123,14 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.Action |= Action(b&0x7F) << shift if b < 0x80 { break } } - m.MintsPaused = bool(v != 0) - case 4: + case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsDisabled", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -1009,10 +2147,10 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { break } } - m.SendsPaused = bool(v != 0) - case 5: + m.IsDisabled = bool(v != 0) + case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsSealed", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -1029,75 +2167,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { break } } - m.BurnsPaused = bool(v != 0) - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RolePermissions = append(m.RolePermissions, &Role{}) - if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) - if err := m.AddressRoles[len(m.AddressRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.IsSealed = bool(v != 0) default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1119,7 +2189,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { } return nil } -func (m *AddressRoles) Unmarshal(dAtA []byte) error { +func (m *Role) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1142,15 +2212,15 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AddressRoles: wiretype end group for non-group") + return fmt.Errorf("proto: Role: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AddressRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1178,13 +2248,13 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Address = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleId", wireType) } - var stringLen uint64 + m.RoleId = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -1194,24 +2264,30 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.RoleId |= uint32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPermissions + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) } - if postIndex > l { - return io.ErrUnexpectedEOF + m.Permissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Permissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } } - m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1233,7 +2309,7 @@ func (m *AddressRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *Role) Unmarshal(dAtA []byte) error { +func (m *PolicyManagerCapability) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1256,15 +2332,15 @@ func (m *Role) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Role: wiretype end group for non-group") + return fmt.Errorf("proto: PolicyManagerCapability: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PolicyManagerCapability: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1292,13 +2368,13 @@ func (m *Role) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Role = string(dAtA[iNdEx:postIndex]) + m.Manager = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) } - m.Permissions = 0 + m.Action = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowPermissions @@ -1308,11 +2384,51 @@ func (m *Role) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Permissions |= uint32(b&0x7F) << shift + m.Action |= Action(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanDisable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CanDisable = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CanSeal", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.CanSeal = bool(v != 0) default: iNdEx = preIndex skippy, err := skipPermissions(dAtA[iNdEx:]) @@ -1634,9 +2750,6 @@ func (m *AddressVoucher) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Voucher == nil { - m.Voucher = &Voucher{} - } if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/chain/permissions/types/query.pb.go b/chain/permissions/types/query.pb.go index 78206717..6fe5e1e4 100644 --- a/chain/permissions/types/query.pb.go +++ b/chain/permissions/types/query.pb.go @@ -6,8 +6,8 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -115,23 +115,23 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } -// QueryAllNamespacesRequest is the request type for the Query/AllNamespaces RPC +// QueryNamespaceDenomsRequest is the request type for the Query/NamespaceDenoms RPC // method. -type QueryAllNamespacesRequest struct { +type QueryNamespaceDenomsRequest struct { } -func (m *QueryAllNamespacesRequest) Reset() { *m = QueryAllNamespacesRequest{} } -func (m *QueryAllNamespacesRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAllNamespacesRequest) ProtoMessage() {} -func (*QueryAllNamespacesRequest) Descriptor() ([]byte, []int) { +func (m *QueryNamespaceDenomsRequest) Reset() { *m = QueryNamespaceDenomsRequest{} } +func (m *QueryNamespaceDenomsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceDenomsRequest) ProtoMessage() {} +func (*QueryNamespaceDenomsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{2} } -func (m *QueryAllNamespacesRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceDenomsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAllNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceDenomsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAllNamespacesRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceDenomsRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -141,36 +141,36 @@ func (m *QueryAllNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryAllNamespacesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAllNamespacesRequest.Merge(m, src) +func (m *QueryNamespaceDenomsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceDenomsRequest.Merge(m, src) } -func (m *QueryAllNamespacesRequest) XXX_Size() int { +func (m *QueryNamespaceDenomsRequest) XXX_Size() int { return m.Size() } -func (m *QueryAllNamespacesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAllNamespacesRequest.DiscardUnknown(m) +func (m *QueryNamespaceDenomsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceDenomsRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAllNamespacesRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceDenomsRequest proto.InternalMessageInfo -// QueryAllNamespacesResponse is the response type for the Query/AllNamespaces +// QueryNamespaceDenomsResponse is the response type for the Query/NamespaceDenoms // RPC method. -type QueryAllNamespacesResponse struct { - Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +type QueryNamespaceDenomsResponse struct { + Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty"` } -func (m *QueryAllNamespacesResponse) Reset() { *m = QueryAllNamespacesResponse{} } -func (m *QueryAllNamespacesResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAllNamespacesResponse) ProtoMessage() {} -func (*QueryAllNamespacesResponse) Descriptor() ([]byte, []int) { +func (m *QueryNamespaceDenomsResponse) Reset() { *m = QueryNamespaceDenomsResponse{} } +func (m *QueryNamespaceDenomsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceDenomsResponse) ProtoMessage() {} +func (*QueryNamespaceDenomsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{3} } -func (m *QueryAllNamespacesResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceDenomsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAllNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceDenomsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAllNamespacesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceDenomsResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -180,44 +180,81 @@ func (m *QueryAllNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ( return b[:n], nil } } -func (m *QueryAllNamespacesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAllNamespacesResponse.Merge(m, src) +func (m *QueryNamespaceDenomsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceDenomsResponse.Merge(m, src) } -func (m *QueryAllNamespacesResponse) XXX_Size() int { +func (m *QueryNamespaceDenomsResponse) XXX_Size() int { return m.Size() } -func (m *QueryAllNamespacesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAllNamespacesResponse.DiscardUnknown(m) +func (m *QueryNamespaceDenomsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceDenomsResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAllNamespacesResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceDenomsResponse proto.InternalMessageInfo -func (m *QueryAllNamespacesResponse) GetNamespaces() []*Namespace { +func (m *QueryNamespaceDenomsResponse) GetDenoms() []string { if m != nil { - return m.Namespaces + return m.Denoms } return nil } -// QueryNamespaceByDenomRequest is the request type for the -// Query/NamespaceByDenom RPC method. -type QueryNamespaceByDenomRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - IncludeRoles bool `protobuf:"varint,2,opt,name=include_roles,json=includeRoles,proto3" json:"include_roles,omitempty"` +// QueryNamespacesRequest is the request type for the Query/Namespaces RPC +// method. +type QueryNamespacesRequest struct { } -func (m *QueryNamespaceByDenomRequest) Reset() { *m = QueryNamespaceByDenomRequest{} } -func (m *QueryNamespaceByDenomRequest) String() string { return proto.CompactTextString(m) } -func (*QueryNamespaceByDenomRequest) ProtoMessage() {} -func (*QueryNamespaceByDenomRequest) Descriptor() ([]byte, []int) { +func (m *QueryNamespacesRequest) Reset() { *m = QueryNamespacesRequest{} } +func (m *QueryNamespacesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespacesRequest) ProtoMessage() {} +func (*QueryNamespacesRequest) Descriptor() ([]byte, []int) { return fileDescriptor_e0ae50f1018498b3, []int{4} } -func (m *QueryNamespaceByDenomRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespacesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespacesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespacesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespacesRequest.Merge(m, src) +} +func (m *QueryNamespacesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespacesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespacesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespacesRequest proto.InternalMessageInfo + +// QueryNamespacesResponse is the response type for the Query/Namespaces +// RPC method. +type QueryNamespacesResponse struct { + Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +} + +func (m *QueryNamespacesResponse) Reset() { *m = QueryNamespacesResponse{} } +func (m *QueryNamespacesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespacesResponse) ProtoMessage() {} +func (*QueryNamespacesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{5} +} +func (m *QueryNamespacesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryNamespaceByDenomRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryNamespaceByDenomRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespacesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -227,50 +264,89 @@ func (m *QueryNamespaceByDenomRequest) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryNamespaceByDenomRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryNamespaceByDenomRequest.Merge(m, src) +func (m *QueryNamespacesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespacesResponse.Merge(m, src) } -func (m *QueryNamespaceByDenomRequest) XXX_Size() int { +func (m *QueryNamespacesResponse) XXX_Size() int { return m.Size() } -func (m *QueryNamespaceByDenomRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryNamespaceByDenomRequest.DiscardUnknown(m) +func (m *QueryNamespacesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespacesResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryNamespaceByDenomRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespacesResponse proto.InternalMessageInfo -func (m *QueryNamespaceByDenomRequest) GetDenom() string { +func (m *QueryNamespacesResponse) GetNamespaces() []*Namespace { if m != nil { - return m.Denom + return m.Namespaces } - return "" + return nil } -func (m *QueryNamespaceByDenomRequest) GetIncludeRoles() bool { +// QueryNamespaceRequest is the request type for the +// Query/Namespace RPC method. +type QueryNamespaceRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *QueryNamespaceRequest) Reset() { *m = QueryNamespaceRequest{} } +func (m *QueryNamespaceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceRequest) ProtoMessage() {} +func (*QueryNamespaceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{6} +} +func (m *QueryNamespaceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespaceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespaceRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespaceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceRequest.Merge(m, src) +} +func (m *QueryNamespaceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespaceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespaceRequest proto.InternalMessageInfo + +func (m *QueryNamespaceRequest) GetDenom() string { if m != nil { - return m.IncludeRoles + return m.Denom } - return false + return "" } -// QueryNamespaceByDenomResponse is the response type for the +// QueryNamespaceResponse is the response type for the // Query/NamespaceByDenom RPC method. -type QueryNamespaceByDenomResponse struct { +type QueryNamespaceResponse struct { Namespace *Namespace `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` } -func (m *QueryNamespaceByDenomResponse) Reset() { *m = QueryNamespaceByDenomResponse{} } -func (m *QueryNamespaceByDenomResponse) String() string { return proto.CompactTextString(m) } -func (*QueryNamespaceByDenomResponse) ProtoMessage() {} -func (*QueryNamespaceByDenomResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{5} +func (m *QueryNamespaceResponse) Reset() { *m = QueryNamespaceResponse{} } +func (m *QueryNamespaceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceResponse) ProtoMessage() {} +func (*QueryNamespaceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{7} } -func (m *QueryNamespaceByDenomResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryNamespaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryNamespaceByDenomResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryNamespaceByDenomResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryNamespaceResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -280,19 +356,19 @@ func (m *QueryNamespaceByDenomResponse) XXX_Marshal(b []byte, deterministic bool return b[:n], nil } } -func (m *QueryNamespaceByDenomResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryNamespaceByDenomResponse.Merge(m, src) +func (m *QueryNamespaceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceResponse.Merge(m, src) } -func (m *QueryNamespaceByDenomResponse) XXX_Size() int { +func (m *QueryNamespaceResponse) XXX_Size() int { return m.Size() } -func (m *QueryNamespaceByDenomResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryNamespaceByDenomResponse.DiscardUnknown(m) +func (m *QueryNamespaceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryNamespaceByDenomResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryNamespaceResponse proto.InternalMessageInfo -func (m *QueryNamespaceByDenomResponse) GetNamespace() *Namespace { +func (m *QueryNamespaceResponse) GetNamespace() *Namespace { if m != nil { return m.Namespace } @@ -301,23 +377,23 @@ func (m *QueryNamespaceByDenomResponse) GetNamespace() *Namespace { // QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole // RPC method. -type QueryAddressesByRoleRequest struct { +type QueryActorsByRoleRequest struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } -func (m *QueryAddressesByRoleRequest) Reset() { *m = QueryAddressesByRoleRequest{} } -func (m *QueryAddressesByRoleRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAddressesByRoleRequest) ProtoMessage() {} -func (*QueryAddressesByRoleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{6} +func (m *QueryActorsByRoleRequest) Reset() { *m = QueryActorsByRoleRequest{} } +func (m *QueryActorsByRoleRequest) String() string { return proto.CompactTextString(m) } +func (*QueryActorsByRoleRequest) ProtoMessage() {} +func (*QueryActorsByRoleRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{8} } -func (m *QueryAddressesByRoleRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryActorsByRoleRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressesByRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryActorsByRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressesByRoleRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryActorsByRoleRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -327,26 +403,26 @@ func (m *QueryAddressesByRoleRequest) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryAddressesByRoleRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressesByRoleRequest.Merge(m, src) +func (m *QueryActorsByRoleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActorsByRoleRequest.Merge(m, src) } -func (m *QueryAddressesByRoleRequest) XXX_Size() int { +func (m *QueryActorsByRoleRequest) XXX_Size() int { return m.Size() } -func (m *QueryAddressesByRoleRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressesByRoleRequest.DiscardUnknown(m) +func (m *QueryActorsByRoleRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActorsByRoleRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressesByRoleRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryActorsByRoleRequest proto.InternalMessageInfo -func (m *QueryAddressesByRoleRequest) GetDenom() string { +func (m *QueryActorsByRoleRequest) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *QueryAddressesByRoleRequest) GetRole() string { +func (m *QueryActorsByRoleRequest) GetRole() string { if m != nil { return m.Role } @@ -355,22 +431,22 @@ func (m *QueryAddressesByRoleRequest) GetRole() string { // QueryAddressesByRoleResponse is the response type for the // Query/AddressesByRole RPC method. -type QueryAddressesByRoleResponse struct { - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +type QueryActorsByRoleResponse struct { + Actors []string `protobuf:"bytes,1,rep,name=actors,proto3" json:"actors,omitempty"` } -func (m *QueryAddressesByRoleResponse) Reset() { *m = QueryAddressesByRoleResponse{} } -func (m *QueryAddressesByRoleResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAddressesByRoleResponse) ProtoMessage() {} -func (*QueryAddressesByRoleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{7} +func (m *QueryActorsByRoleResponse) Reset() { *m = QueryActorsByRoleResponse{} } +func (m *QueryActorsByRoleResponse) String() string { return proto.CompactTextString(m) } +func (*QueryActorsByRoleResponse) ProtoMessage() {} +func (*QueryActorsByRoleResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{9} } -func (m *QueryAddressesByRoleResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryActorsByRoleResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressesByRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryActorsByRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressesByRoleResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryActorsByRoleResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -380,42 +456,44 @@ func (m *QueryAddressesByRoleResponse) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *QueryAddressesByRoleResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressesByRoleResponse.Merge(m, src) +func (m *QueryActorsByRoleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActorsByRoleResponse.Merge(m, src) } -func (m *QueryAddressesByRoleResponse) XXX_Size() int { +func (m *QueryActorsByRoleResponse) XXX_Size() int { return m.Size() } -func (m *QueryAddressesByRoleResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressesByRoleResponse.DiscardUnknown(m) +func (m *QueryActorsByRoleResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActorsByRoleResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressesByRoleResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryActorsByRoleResponse proto.InternalMessageInfo -func (m *QueryAddressesByRoleResponse) GetAddresses() []string { +func (m *QueryActorsByRoleResponse) GetActors() []string { if m != nil { - return m.Addresses + return m.Actors } return nil } -type QueryAddressRolesRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +// QueryRolesByActorRequest is the request type for the +// Query/RolesByActor RPC method. +type QueryRolesByActorRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Actor string `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"` } -func (m *QueryAddressRolesRequest) Reset() { *m = QueryAddressRolesRequest{} } -func (m *QueryAddressRolesRequest) String() string { return proto.CompactTextString(m) } -func (*QueryAddressRolesRequest) ProtoMessage() {} -func (*QueryAddressRolesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{8} +func (m *QueryRolesByActorRequest) Reset() { *m = QueryRolesByActorRequest{} } +func (m *QueryRolesByActorRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRolesByActorRequest) ProtoMessage() {} +func (*QueryRolesByActorRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{10} } -func (m *QueryAddressRolesRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryRolesByActorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRolesByActorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressRolesRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRolesByActorRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -425,48 +503,50 @@ func (m *QueryAddressRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *QueryAddressRolesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressRolesRequest.Merge(m, src) +func (m *QueryRolesByActorRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRolesByActorRequest.Merge(m, src) } -func (m *QueryAddressRolesRequest) XXX_Size() int { +func (m *QueryRolesByActorRequest) XXX_Size() int { return m.Size() } -func (m *QueryAddressRolesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressRolesRequest.DiscardUnknown(m) +func (m *QueryRolesByActorRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRolesByActorRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressRolesRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryRolesByActorRequest proto.InternalMessageInfo -func (m *QueryAddressRolesRequest) GetDenom() string { +func (m *QueryRolesByActorRequest) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *QueryAddressRolesRequest) GetAddress() string { +func (m *QueryRolesByActorRequest) GetActor() string { if m != nil { - return m.Address + return m.Actor } return "" } -type QueryAddressRolesResponse struct { +// QueryRolesByActorResponse is the response type for the +// Query/RolesByActor RPC method. +type QueryRolesByActorResponse struct { Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } -func (m *QueryAddressRolesResponse) Reset() { *m = QueryAddressRolesResponse{} } -func (m *QueryAddressRolesResponse) String() string { return proto.CompactTextString(m) } -func (*QueryAddressRolesResponse) ProtoMessage() {} -func (*QueryAddressRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{9} +func (m *QueryRolesByActorResponse) Reset() { *m = QueryRolesByActorResponse{} } +func (m *QueryRolesByActorResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRolesByActorResponse) ProtoMessage() {} +func (*QueryRolesByActorResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{11} } -func (m *QueryAddressRolesResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryRolesByActorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryAddressRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRolesByActorResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryAddressRolesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRolesByActorResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -476,41 +556,43 @@ func (m *QueryAddressRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryAddressRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryAddressRolesResponse.Merge(m, src) +func (m *QueryRolesByActorResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRolesByActorResponse.Merge(m, src) } -func (m *QueryAddressRolesResponse) XXX_Size() int { +func (m *QueryRolesByActorResponse) XXX_Size() int { return m.Size() } -func (m *QueryAddressRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryAddressRolesResponse.DiscardUnknown(m) +func (m *QueryRolesByActorResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRolesByActorResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryAddressRolesResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryRolesByActorResponse proto.InternalMessageInfo -func (m *QueryAddressRolesResponse) GetRoles() []string { +func (m *QueryRolesByActorResponse) GetRoles() []string { if m != nil { return m.Roles } return nil } -type QueryVouchersForAddressRequest struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +// QueryRoleManagersRequest is the request type for the Query/RoleManagers +// RPC method. +type QueryRoleManagersRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *QueryVouchersForAddressRequest) Reset() { *m = QueryVouchersForAddressRequest{} } -func (m *QueryVouchersForAddressRequest) String() string { return proto.CompactTextString(m) } -func (*QueryVouchersForAddressRequest) ProtoMessage() {} -func (*QueryVouchersForAddressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{10} +func (m *QueryRoleManagersRequest) Reset() { *m = QueryRoleManagersRequest{} } +func (m *QueryRoleManagersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagersRequest) ProtoMessage() {} +func (*QueryRoleManagersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{12} } -func (m *QueryVouchersForAddressRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryRoleManagersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryVouchersForAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRoleManagersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryVouchersForAddressRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRoleManagersRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -520,41 +602,43 @@ func (m *QueryVouchersForAddressRequest) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *QueryVouchersForAddressRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryVouchersForAddressRequest.Merge(m, src) +func (m *QueryRoleManagersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagersRequest.Merge(m, src) } -func (m *QueryVouchersForAddressRequest) XXX_Size() int { +func (m *QueryRoleManagersRequest) XXX_Size() int { return m.Size() } -func (m *QueryVouchersForAddressRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryVouchersForAddressRequest.DiscardUnknown(m) +func (m *QueryRoleManagersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagersRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryVouchersForAddressRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryRoleManagersRequest proto.InternalMessageInfo -func (m *QueryVouchersForAddressRequest) GetAddress() string { +func (m *QueryRoleManagersRequest) GetDenom() string { if m != nil { - return m.Address + return m.Denom } return "" } -type QueryVouchersForAddressResponse struct { - Vouchers github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=vouchers,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"vouchers,omitempty"` +// QueryRoleManagersResponse is the response type for the +// Query/RoleManagers RPC method. +type QueryRoleManagersResponse struct { + RoleManagers []*RoleManager `protobuf:"bytes,1,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` } -func (m *QueryVouchersForAddressResponse) Reset() { *m = QueryVouchersForAddressResponse{} } -func (m *QueryVouchersForAddressResponse) String() string { return proto.CompactTextString(m) } -func (*QueryVouchersForAddressResponse) ProtoMessage() {} -func (*QueryVouchersForAddressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e0ae50f1018498b3, []int{11} +func (m *QueryRoleManagersResponse) Reset() { *m = QueryRoleManagersResponse{} } +func (m *QueryRoleManagersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagersResponse) ProtoMessage() {} +func (*QueryRoleManagersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{13} } -func (m *QueryVouchersForAddressResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryRoleManagersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryVouchersForAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryRoleManagersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryVouchersForAddressResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryRoleManagersResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -564,964 +648,3567 @@ func (m *QueryVouchersForAddressResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryVouchersForAddressResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryVouchersForAddressResponse.Merge(m, src) +func (m *QueryRoleManagersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagersResponse.Merge(m, src) } -func (m *QueryVouchersForAddressResponse) XXX_Size() int { +func (m *QueryRoleManagersResponse) XXX_Size() int { return m.Size() } -func (m *QueryVouchersForAddressResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryVouchersForAddressResponse.DiscardUnknown(m) +func (m *QueryRoleManagersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagersResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryVouchersForAddressResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryRoleManagersResponse proto.InternalMessageInfo -func (m *QueryVouchersForAddressResponse) GetVouchers() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *QueryRoleManagersResponse) GetRoleManagers() []*RoleManager { if m != nil { - return m.Vouchers + return m.RoleManagers } return nil } -func init() { - proto.RegisterType((*QueryParamsRequest)(nil), "injective.permissions.v1beta1.QueryParamsRequest") - proto.RegisterType((*QueryParamsResponse)(nil), "injective.permissions.v1beta1.QueryParamsResponse") - proto.RegisterType((*QueryAllNamespacesRequest)(nil), "injective.permissions.v1beta1.QueryAllNamespacesRequest") - proto.RegisterType((*QueryAllNamespacesResponse)(nil), "injective.permissions.v1beta1.QueryAllNamespacesResponse") - proto.RegisterType((*QueryNamespaceByDenomRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomRequest") - proto.RegisterType((*QueryNamespaceByDenomResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomResponse") - proto.RegisterType((*QueryAddressesByRoleRequest)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleRequest") - proto.RegisterType((*QueryAddressesByRoleResponse)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleResponse") - proto.RegisterType((*QueryAddressRolesRequest)(nil), "injective.permissions.v1beta1.QueryAddressRolesRequest") - proto.RegisterType((*QueryAddressRolesResponse)(nil), "injective.permissions.v1beta1.QueryAddressRolesResponse") - proto.RegisterType((*QueryVouchersForAddressRequest)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressRequest") - proto.RegisterType((*QueryVouchersForAddressResponse)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressResponse") +// QueryRoleManagerRequest is the request type for the Query/RoleManager +// RPC method. +type QueryRoleManagerRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Manager string `protobuf:"bytes,2,opt,name=manager,proto3" json:"manager,omitempty"` } -func init() { - proto.RegisterFile("injective/permissions/v1beta1/query.proto", fileDescriptor_e0ae50f1018498b3) +func (m *QueryRoleManagerRequest) Reset() { *m = QueryRoleManagerRequest{} } +func (m *QueryRoleManagerRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagerRequest) ProtoMessage() {} +func (*QueryRoleManagerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{14} } - -var fileDescriptor_e0ae50f1018498b3 = []byte{ - // 816 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4d, 0x4f, 0xdb, 0x4a, - 0x14, 0xcd, 0xf0, 0x80, 0x47, 0x06, 0xd0, 0x7b, 0x9a, 0x66, 0x11, 0x0c, 0x38, 0xc8, 0x15, 0x6a, - 0xfa, 0x11, 0xbb, 0x09, 0x42, 0xe5, 0xab, 0x95, 0x1a, 0x2a, 0xfa, 0xa1, 0xaa, 0x2a, 0x5e, 0x54, - 0x2a, 0x9b, 0xc8, 0x71, 0x06, 0xe3, 0x62, 0x7b, 0x8c, 0xc7, 0x41, 0xca, 0xa2, 0x9b, 0xee, 0xba, - 0xab, 0xd4, 0x7d, 0xd5, 0x75, 0xff, 0x02, 0xdb, 0x2e, 0x58, 0x22, 0x75, 0xd3, 0x15, 0xad, 0xa0, - 0xab, 0xfe, 0x8a, 0xca, 0xe3, 0xb1, 0xe3, 0x10, 0x12, 0x87, 0x74, 0x45, 0x66, 0xee, 0x3d, 0xf7, - 0x9e, 0x73, 0x3d, 0xf7, 0x08, 0x78, 0xd3, 0x74, 0xde, 0x60, 0xdd, 0x37, 0x0f, 0xb1, 0xe2, 0x62, - 0xcf, 0x36, 0x29, 0x35, 0x89, 0x43, 0x95, 0xc3, 0x72, 0x1d, 0xfb, 0x5a, 0x59, 0x39, 0x68, 0x62, - 0xaf, 0x25, 0xbb, 0x1e, 0xf1, 0x09, 0x9a, 0x8f, 0x53, 0xe5, 0x44, 0xaa, 0xcc, 0x53, 0x85, 0x9c, - 0x41, 0x0c, 0xc2, 0x32, 0x95, 0xe0, 0x57, 0x08, 0x12, 0xe6, 0x0c, 0x42, 0x0c, 0x0b, 0x2b, 0x9a, - 0x6b, 0x2a, 0x9a, 0xe3, 0x10, 0x5f, 0xf3, 0x19, 0x2a, 0x8c, 0x8a, 0x3a, 0xa1, 0x36, 0xa1, 0x4a, - 0x5d, 0xa3, 0x38, 0xee, 0xa9, 0x13, 0xd3, 0xe1, 0xf1, 0x5b, 0xc9, 0x38, 0xe3, 0x12, 0x67, 0xb9, - 0x9a, 0x61, 0x3a, 0xac, 0x58, 0x94, 0xdb, 0x5f, 0x89, 0xab, 0x79, 0x9a, 0x1d, 0xf5, 0xbd, 0xdd, - 0x3f, 0xd7, 0xc0, 0x0e, 0xa6, 0x66, 0x94, 0xac, 0xa4, 0x14, 0x4e, 0xcc, 0x82, 0x01, 0xa4, 0x1c, - 0x44, 0xdb, 0x01, 0xd7, 0x97, 0xac, 0xa5, 0x8a, 0x0f, 0x9a, 0x98, 0xfa, 0xd2, 0x0e, 0xbc, 0xd6, - 0x71, 0x4b, 0x5d, 0xe2, 0x50, 0x8c, 0x36, 0xe1, 0x78, 0x48, 0x2d, 0x0f, 0x16, 0x40, 0x71, 0xb2, - 0xb2, 0x28, 0xf7, 0x1d, 0xb3, 0x1c, 0xc2, 0xab, 0xa3, 0xc7, 0xa7, 0x85, 0x8c, 0xca, 0xa1, 0xd2, - 0x2c, 0x9c, 0x61, 0xb5, 0x1f, 0x5a, 0xd6, 0x0b, 0xcd, 0xc6, 0xd4, 0xd5, 0x74, 0x1c, 0x37, 0xde, - 0x85, 0xc2, 0x65, 0x41, 0xde, 0xff, 0x09, 0x84, 0x4e, 0x7c, 0x9b, 0x07, 0x0b, 0xff, 0x14, 0x27, - 0x2b, 0xc5, 0x14, 0x0e, 0x71, 0x19, 0x35, 0x81, 0x95, 0x5e, 0xc3, 0x39, 0xd6, 0x27, 0x8e, 0x56, - 0x5b, 0x8f, 0xb0, 0x43, 0x6c, 0xce, 0x03, 0xe5, 0xe0, 0x58, 0x23, 0x38, 0x33, 0xa1, 0x59, 0x35, - 0x3c, 0xa0, 0xeb, 0x70, 0xda, 0x74, 0x74, 0xab, 0xd9, 0xc0, 0x35, 0x8f, 0x58, 0x98, 0xe6, 0x47, - 0x16, 0x40, 0x71, 0x42, 0x9d, 0xe2, 0x97, 0x6a, 0x70, 0x27, 0x19, 0x70, 0xbe, 0x47, 0x69, 0xae, - 0x62, 0x0b, 0x66, 0x63, 0x26, 0x7c, 0x90, 0x83, 0x8b, 0x68, 0x43, 0xa5, 0xc7, 0x70, 0x36, 0x9c, - 0x55, 0xa3, 0xe1, 0x61, 0x4a, 0x31, 0xad, 0xb6, 0x02, 0x06, 0xfd, 0x25, 0x20, 0x38, 0x1a, 0x50, - 0x67, 0xcc, 0xb3, 0x2a, 0xfb, 0x2d, 0x6d, 0xf0, 0x61, 0x74, 0x15, 0xe2, 0x84, 0xe7, 0x60, 0x56, - 0x8b, 0x42, 0x6c, 0xea, 0x59, 0xb5, 0x7d, 0x21, 0x3d, 0x83, 0xf9, 0x24, 0x9a, 0x0d, 0xa1, 0x3f, - 0x87, 0x3c, 0xfc, 0x97, 0xc3, 0x39, 0x8d, 0xe8, 0x28, 0x95, 0xa3, 0xb7, 0xd1, 0x51, 0x8b, 0xd3, - 0xc8, 0xc1, 0xb1, 0x70, 0xea, 0x21, 0x85, 0xf0, 0x20, 0xad, 0x41, 0x91, 0x41, 0x5e, 0x91, 0xa6, - 0xbe, 0x87, 0x3d, 0xba, 0x45, 0xbc, 0x08, 0xcd, 0x49, 0x24, 0xda, 0x81, 0xce, 0x76, 0x9f, 0x01, - 0x2c, 0xf4, 0x04, 0xf3, 0xae, 0x6f, 0xe1, 0xc4, 0x21, 0x8f, 0xf2, 0x17, 0x37, 0x23, 0x87, 0x9b, - 0x2e, 0x07, 0x9b, 0x1e, 0x7f, 0xa2, 0x4d, 0x62, 0x3a, 0xd5, 0xad, 0xe0, 0xa5, 0xff, 0x3e, 0x2d, - 0xa0, 0x08, 0x72, 0x87, 0xd8, 0xa6, 0x8f, 0x6d, 0xd7, 0x6f, 0x7d, 0xf9, 0x51, 0x28, 0x1a, 0xa6, - 0xbf, 0xd7, 0xac, 0xcb, 0x3a, 0xb1, 0x15, 0x6e, 0x16, 0xe1, 0x9f, 0x12, 0x6d, 0xec, 0x2b, 0x7e, - 0xcb, 0xc5, 0x94, 0x95, 0xa1, 0x6a, 0xdc, 0xb2, 0xf2, 0x3e, 0x0b, 0xc7, 0x18, 0x45, 0xf4, 0x09, - 0xc0, 0xf1, 0x70, 0xa1, 0x50, 0x39, 0xe5, 0xb9, 0x74, 0x6f, 0xb4, 0x50, 0xb9, 0x0a, 0x24, 0x94, - 0x2e, 0x95, 0xde, 0x7d, 0xfb, 0xf5, 0x71, 0xe4, 0x06, 0x5a, 0x54, 0x06, 0xb1, 0x2b, 0x74, 0x04, - 0xe0, 0x74, 0xc7, 0xde, 0xa2, 0x95, 0x41, 0x9a, 0x5e, 0xe6, 0x03, 0xc2, 0xea, 0x10, 0x48, 0xce, - 0x7a, 0x99, 0xb1, 0x56, 0x50, 0x29, 0x85, 0xb5, 0x66, 0x59, 0xb5, 0xb6, 0x23, 0xa0, 0x63, 0x00, - 0xff, 0xbf, 0xb8, 0xb2, 0x68, 0x7d, 0x10, 0x1a, 0x3d, 0x3c, 0x44, 0xd8, 0x18, 0x0e, 0xcc, 0x65, - 0xac, 0x32, 0x19, 0x4b, 0xa8, 0x9c, 0x22, 0x23, 0x96, 0x50, 0xab, 0xb7, 0x6a, 0xe1, 0x7e, 0x1d, - 0x01, 0x38, 0x95, 0xdc, 0x20, 0x74, 0x6f, 0xa0, 0x69, 0x76, 0xef, 0xaf, 0xb0, 0x72, 0x75, 0x20, - 0xa7, 0xbf, 0xc2, 0xe8, 0x57, 0xd0, 0xdd, 0xb4, 0xaf, 0x10, 0xf9, 0x48, 0x40, 0x3f, 0xd8, 0x68, - 0xf4, 0x15, 0xc0, 0xff, 0x2e, 0x38, 0x11, 0x5a, 0xbb, 0x02, 0x8f, 0x0b, 0x3e, 0x28, 0xac, 0x0f, - 0x85, 0xfd, 0x6b, 0x19, 0x27, 0x00, 0xa2, 0x6e, 0x5b, 0x41, 0xf7, 0x07, 0x61, 0xd3, 0xd3, 0xcb, - 0x84, 0x07, 0xc3, 0xc2, 0xb9, 0x9e, 0x75, 0xa6, 0x67, 0x19, 0x2d, 0xa5, 0xe8, 0x89, 0xfc, 0xa7, - 0xb6, 0x4b, 0xbc, 0x1a, 0x17, 0x57, 0xdd, 0x3f, 0x3e, 0x13, 0xc1, 0xc9, 0x99, 0x08, 0x7e, 0x9e, - 0x89, 0xe0, 0xc3, 0xb9, 0x98, 0x39, 0x39, 0x17, 0x33, 0xdf, 0xcf, 0xc5, 0xcc, 0xce, 0x76, 0xc2, - 0xd9, 0x9e, 0x46, 0x85, 0x9f, 0x6b, 0x75, 0xda, 0x6e, 0x53, 0xd2, 0x89, 0x87, 0x93, 0xc7, 0x3d, - 0xcd, 0x74, 0x14, 0x9b, 0x34, 0x9a, 0x16, 0xa6, 0x1d, 0x1c, 0x98, 0x11, 0xd6, 0xc7, 0xd9, 0xff, - 0x27, 0x4b, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x50, 0xbf, 0x64, 0x1e, 0xf5, 0x09, 0x00, 0x00, +func (m *QueryRoleManagerRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRoleManagerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRoleManagerRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryRoleManagerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagerRequest.Merge(m, src) +} +func (m *QueryRoleManagerRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryRoleManagerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagerRequest.DiscardUnknown(m) } -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 +var xxx_messageInfo_QueryRoleManagerRequest proto.InternalMessageInfo -// QueryClient is the client API for Query service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type QueryClient interface { - // Params defines a gRPC query method that returns the permissions module's - // parameters. - Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) - // AllNamespaces defines a gRPC query method that returns the permissions - // module's created namespaces. - AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) - // NamespaceByDenom defines a gRPC query method that returns the permissions - // module's namespace associated with the provided denom. - NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) - // AddressRoles defines a gRPC query method that returns address roles in the - // namespace - AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) - // AddressesByRole defines a gRPC query method that returns a namespace's - // roles associated with the provided address. - AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) - // VouchersForAddress defines a gRPC query method that returns a map of - // vouchers that are held by permissions module for this address, keyed by the - // originator address - VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) +func (m *QueryRoleManagerRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" } -type queryClient struct { - cc grpc1.ClientConn +func (m *QueryRoleManagerRequest) GetManager() string { + if m != nil { + return m.Manager + } + return "" } -func NewQueryClient(cc grpc1.ClientConn) QueryClient { - return &queryClient{cc} +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +type QueryRoleManagerResponse struct { + RoleManager *RoleManager `protobuf:"bytes,1,opt,name=role_manager,json=roleManager,proto3" json:"role_manager,omitempty"` } -func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { - out := new(QueryParamsResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Params", in, out, opts...) - if err != nil { - return nil, err +func (m *QueryRoleManagerResponse) Reset() { *m = QueryRoleManagerResponse{} } +func (m *QueryRoleManagerResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRoleManagerResponse) ProtoMessage() {} +func (*QueryRoleManagerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{15} +} +func (m *QueryRoleManagerResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRoleManagerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRoleManagerResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryRoleManagerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRoleManagerResponse.Merge(m, src) +} +func (m *QueryRoleManagerResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryRoleManagerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRoleManagerResponse.DiscardUnknown(m) } -func (c *queryClient) AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) { - out := new(QueryAllNamespacesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AllNamespaces", in, out, opts...) - if err != nil { - return nil, err +var xxx_messageInfo_QueryRoleManagerResponse proto.InternalMessageInfo + +func (m *QueryRoleManagerResponse) GetRoleManager() *RoleManager { + if m != nil { + return m.RoleManager } - return out, nil + return nil } -func (c *queryClient) NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) { - out := new(QueryNamespaceByDenomResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/NamespaceByDenom", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil +// QueryPolicyStatusesRequest is the request type for the Query/PolicyStatuses +// RPC method. +type QueryPolicyStatusesRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (c *queryClient) AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) { - out := new(QueryAddressRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressRoles", in, out, opts...) - if err != nil { - return nil, err +func (m *QueryPolicyStatusesRequest) Reset() { *m = QueryPolicyStatusesRequest{} } +func (m *QueryPolicyStatusesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyStatusesRequest) ProtoMessage() {} +func (*QueryPolicyStatusesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{16} +} +func (m *QueryPolicyStatusesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyStatusesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyStatusesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryPolicyStatusesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyStatusesRequest.Merge(m, src) +} +func (m *QueryPolicyStatusesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyStatusesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyStatusesRequest.DiscardUnknown(m) } -func (c *queryClient) AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) { - out := new(QueryAddressesByRoleResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressesByRole", in, out, opts...) - if err != nil { - return nil, err +var xxx_messageInfo_QueryPolicyStatusesRequest proto.InternalMessageInfo + +func (m *QueryPolicyStatusesRequest) GetDenom() string { + if m != nil { + return m.Denom } - return out, nil + return "" } -func (c *queryClient) VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) { - out := new(QueryVouchersForAddressResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/VouchersForAddress", in, out, opts...) - if err != nil { - return nil, err +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +type QueryPolicyStatusesResponse struct { + PolicyStatuses []*PolicyStatus `protobuf:"bytes,1,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` +} + +func (m *QueryPolicyStatusesResponse) Reset() { *m = QueryPolicyStatusesResponse{} } +func (m *QueryPolicyStatusesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyStatusesResponse) ProtoMessage() {} +func (*QueryPolicyStatusesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{17} +} +func (m *QueryPolicyStatusesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyStatusesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyStatusesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return out, nil +} +func (m *QueryPolicyStatusesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyStatusesResponse.Merge(m, src) +} +func (m *QueryPolicyStatusesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyStatusesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyStatusesResponse.DiscardUnknown(m) } -// QueryServer is the server API for Query service. -type QueryServer interface { - // Params defines a gRPC query method that returns the permissions module's - // parameters. - Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) - // AllNamespaces defines a gRPC query method that returns the permissions - // module's created namespaces. - AllNamespaces(context.Context, *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) - // NamespaceByDenom defines a gRPC query method that returns the permissions - // module's namespace associated with the provided denom. - NamespaceByDenom(context.Context, *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) - // AddressRoles defines a gRPC query method that returns address roles in the - // namespace - AddressRoles(context.Context, *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) - // AddressesByRole defines a gRPC query method that returns a namespace's - // roles associated with the provided address. - AddressesByRole(context.Context, *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) - // VouchersForAddress defines a gRPC query method that returns a map of - // vouchers that are held by permissions module for this address, keyed by the - // originator address - VouchersForAddress(context.Context, *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) +var xxx_messageInfo_QueryPolicyStatusesResponse proto.InternalMessageInfo + +func (m *QueryPolicyStatusesResponse) GetPolicyStatuses() []*PolicyStatus { + if m != nil { + return m.PolicyStatuses + } + return nil } -// UnimplementedQueryServer can be embedded to have forward compatible implementations. -type UnimplementedQueryServer struct { +// QueryPolicyManagerCapabilitiesRequest is the request type for the Query/PolicyManagerCapabilities +// RPC method. +type QueryPolicyManagerCapabilitiesRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) Reset() { *m = QueryPolicyManagerCapabilitiesRequest{} } +func (m *QueryPolicyManagerCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyManagerCapabilitiesRequest) ProtoMessage() {} +func (*QueryPolicyManagerCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{18} } -func (*UnimplementedQueryServer) AllNamespaces(ctx context.Context, req *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AllNamespaces not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) } -func (*UnimplementedQueryServer) NamespaceByDenom(ctx context.Context, req *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NamespaceByDenom not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } } -func (*UnimplementedQueryServer) AddressRoles(ctx context.Context, req *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddressRoles not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.Merge(m, src) } -func (*UnimplementedQueryServer) AddressesByRole(ctx context.Context, req *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddressesByRole not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_Size() int { + return m.Size() } -func (*UnimplementedQueryServer) VouchersForAddress(ctx context.Context, req *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VouchersForAddress not implemented") +func (m *QueryPolicyManagerCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest.DiscardUnknown(m) } -func RegisterQueryServer(s grpc1.Server, srv QueryServer) { - s.RegisterService(&_Query_serviceDesc, srv) -} +var xxx_messageInfo_QueryPolicyManagerCapabilitiesRequest proto.InternalMessageInfo -func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryParamsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).Params(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/Params", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) +func (m *QueryPolicyManagerCapabilitiesRequest) GetDenom() string { + if m != nil { + return m.Denom } - return interceptor(ctx, in, info, handler) + return "" } -func _Query_AllNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAllNamespacesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AllNamespaces(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AllNamespaces", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AllNamespaces(ctx, req.(*QueryAllNamespacesRequest)) - } - return interceptor(ctx, in, info, handler) +// QueryPolicyManagerCapabilitiesResponse is the response type for the +// Query/PolicyManagerCapabilities RPC method. +type QueryPolicyManagerCapabilitiesResponse struct { + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,1,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } -func _Query_NamespaceByDenom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryNamespaceByDenomRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).NamespaceByDenom(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/NamespaceByDenom", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).NamespaceByDenom(ctx, req.(*QueryNamespaceByDenomRequest)) - } - return interceptor(ctx, in, info, handler) +func (m *QueryPolicyManagerCapabilitiesResponse) Reset() { + *m = QueryPolicyManagerCapabilitiesResponse{} } - -func _Query_AddressRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAddressRolesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AddressRoles(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AddressRoles", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AddressRoles(ctx, req.(*QueryAddressRolesRequest)) - } - return interceptor(ctx, in, info, handler) +func (m *QueryPolicyManagerCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryPolicyManagerCapabilitiesResponse) ProtoMessage() {} +func (*QueryPolicyManagerCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{19} } - -func _Query_AddressesByRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryAddressesByRoleRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).AddressesByRole(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/AddressesByRole", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).AddressesByRole(ctx, req.(*QueryAddressesByRoleRequest)) +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return interceptor(ctx, in, info, handler) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.Merge(m, src) +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryPolicyManagerCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse.DiscardUnknown(m) } -func _Query_VouchersForAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryVouchersForAddressRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).VouchersForAddress(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Query/VouchersForAddress", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).VouchersForAddress(ctx, req.(*QueryVouchersForAddressRequest)) +var xxx_messageInfo_QueryPolicyManagerCapabilitiesResponse proto.InternalMessageInfo + +func (m *QueryPolicyManagerCapabilitiesResponse) GetPolicyManagerCapabilities() []*PolicyManagerCapability { + if m != nil { + return m.PolicyManagerCapabilities } - return interceptor(ctx, in, info, handler) + return nil } -var _Query_serviceDesc = grpc.ServiceDesc{ - ServiceName: "injective.permissions.v1beta1.Query", - HandlerType: (*QueryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, - { - MethodName: "AllNamespaces", - Handler: _Query_AllNamespaces_Handler, - }, - { - MethodName: "NamespaceByDenom", - Handler: _Query_NamespaceByDenom_Handler, - }, - { - MethodName: "AddressRoles", - Handler: _Query_AddressRoles_Handler, - }, - { - MethodName: "AddressesByRole", - Handler: _Query_AddressesByRole_Handler, - }, - { - MethodName: "VouchersForAddress", - Handler: _Query_VouchersForAddress_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "injective/permissions/v1beta1/query.proto", +type QueryVouchersRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVouchersRequest) Reset() { *m = QueryVouchersRequest{} } +func (m *QueryVouchersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersRequest) ProtoMessage() {} +func (*QueryVouchersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{20} +} +func (m *QueryVouchersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil } - -func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryVouchersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersRequest.Merge(m, src) } - -func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil +func (m *QueryVouchersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersRequest.DiscardUnknown(m) } -func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVouchersRequest proto.InternalMessageInfo + +func (m *QueryVouchersRequest) GetDenom() string { + if m != nil { + return m.Denom } - return dAtA[:n], nil + return "" } -func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVouchersResponse struct { + Vouchers []*AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } -func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) +func (m *QueryVouchersResponse) Reset() { *m = QueryVouchersResponse{} } +func (m *QueryVouchersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersResponse) ProtoMessage() {} +func (*QueryVouchersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{21} +} +func (m *QueryVouchersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) if err != nil { - return 0, err + return nil, err } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + return b[:n], nil } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil +} +func (m *QueryVouchersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersResponse.Merge(m, src) +} +func (m *QueryVouchersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersResponse.DiscardUnknown(m) } -func (m *QueryAllNamespacesRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVouchersResponse proto.InternalMessageInfo + +func (m *QueryVouchersResponse) GetVouchers() []*AddressVoucher { + if m != nil { + return m.Vouchers } - return dAtA[:n], nil + return nil } -func (m *QueryAllNamespacesRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVoucherRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } -func (m *QueryAllNamespacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil +func (m *QueryVoucherRequest) Reset() { *m = QueryVoucherRequest{} } +func (m *QueryVoucherRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherRequest) ProtoMessage() {} +func (*QueryVoucherRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{22} } - -func (m *QueryAllNamespacesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVoucherRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil } - -func (m *QueryAllNamespacesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (m *QueryVoucherRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherRequest.Merge(m, src) +} +func (m *QueryVoucherRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherRequest.DiscardUnknown(m) } -func (m *QueryAllNamespacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Namespaces) > 0 { - for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } +var xxx_messageInfo_QueryVoucherRequest proto.InternalMessageInfo + +func (m *QueryVoucherRequest) GetDenom() string { + if m != nil { + return m.Denom } - return len(dAtA) - i, nil + return "" } -func (m *QueryNamespaceByDenomRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +func (m *QueryVoucherRequest) GetAddress() string { + if m != nil { + return m.Address } - return dAtA[:n], nil + return "" } -func (m *QueryNamespaceByDenomRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +type QueryVoucherResponse struct { + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } -func (m *QueryNamespaceByDenomRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.IncludeRoles { - i-- - if m.IncludeRoles { - dAtA[i] = 1 - } else { - dAtA[i] = 0 +func (m *QueryVoucherResponse) Reset() { *m = QueryVoucherResponse{} } +func (m *QueryVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherResponse) ProtoMessage() {} +func (*QueryVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{23} +} +func (m *QueryVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0x10 + return b[:n], nil } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil +} +func (m *QueryVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherResponse.Merge(m, src) +} +func (m *QueryVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherResponse.DiscardUnknown(m) } -func (m *QueryNamespaceByDenomResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryVoucherResponse proto.InternalMessageInfo + +// QueryModuleStateRequest is the request type for the Query/PermissionsModuleState +// RPC method. +type QueryModuleStateRequest struct { +} + +func (m *QueryModuleStateRequest) Reset() { *m = QueryModuleStateRequest{} } +func (m *QueryModuleStateRequest) String() string { return proto.CompactTextString(m) } +func (*QueryModuleStateRequest) ProtoMessage() {} +func (*QueryModuleStateRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{24} +} +func (m *QueryModuleStateRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryModuleStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryModuleStateRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return dAtA[:n], nil +} +func (m *QueryModuleStateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryModuleStateRequest.Merge(m, src) +} +func (m *QueryModuleStateRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryModuleStateRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryModuleStateRequest.DiscardUnknown(m) } -func (m *QueryNamespaceByDenomResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +var xxx_messageInfo_QueryModuleStateRequest proto.InternalMessageInfo + +// QueryModuleStateResponse is the response type for the Query/PermissionsModuleState +// RPC method. +type QueryModuleStateResponse struct { + State *GenesisState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` } -func (m *QueryNamespaceByDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Namespace != nil { - { - size, err := m.Namespace.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) +func (m *QueryModuleStateResponse) Reset() { *m = QueryModuleStateResponse{} } +func (m *QueryModuleStateResponse) String() string { return proto.CompactTextString(m) } +func (*QueryModuleStateResponse) ProtoMessage() {} +func (*QueryModuleStateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{25} +} +func (m *QueryModuleStateResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryModuleStateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryModuleStateResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err } - i-- - dAtA[i] = 0xa + return b[:n], nil } - return len(dAtA) - i, nil +} +func (m *QueryModuleStateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryModuleStateResponse.Merge(m, src) +} +func (m *QueryModuleStateResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryModuleStateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryModuleStateResponse.DiscardUnknown(m) } -func (m *QueryAddressesByRoleRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err +var xxx_messageInfo_QueryModuleStateResponse proto.InternalMessageInfo + +func (m *QueryModuleStateResponse) GetState() *GenesisState { + if m != nil { + return m.State } - return dAtA[:n], nil + return nil } -func (m *QueryAddressesByRoleRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func init() { + proto.RegisterType((*QueryParamsRequest)(nil), "injective.permissions.v1beta1.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "injective.permissions.v1beta1.QueryParamsResponse") + proto.RegisterType((*QueryNamespaceDenomsRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceDenomsRequest") + proto.RegisterType((*QueryNamespaceDenomsResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceDenomsResponse") + proto.RegisterType((*QueryNamespacesRequest)(nil), "injective.permissions.v1beta1.QueryNamespacesRequest") + proto.RegisterType((*QueryNamespacesResponse)(nil), "injective.permissions.v1beta1.QueryNamespacesResponse") + proto.RegisterType((*QueryNamespaceRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceRequest") + proto.RegisterType((*QueryNamespaceResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceResponse") + proto.RegisterType((*QueryActorsByRoleRequest)(nil), "injective.permissions.v1beta1.QueryActorsByRoleRequest") + proto.RegisterType((*QueryActorsByRoleResponse)(nil), "injective.permissions.v1beta1.QueryActorsByRoleResponse") + proto.RegisterType((*QueryRolesByActorRequest)(nil), "injective.permissions.v1beta1.QueryRolesByActorRequest") + proto.RegisterType((*QueryRolesByActorResponse)(nil), "injective.permissions.v1beta1.QueryRolesByActorResponse") + proto.RegisterType((*QueryRoleManagersRequest)(nil), "injective.permissions.v1beta1.QueryRoleManagersRequest") + proto.RegisterType((*QueryRoleManagersResponse)(nil), "injective.permissions.v1beta1.QueryRoleManagersResponse") + proto.RegisterType((*QueryRoleManagerRequest)(nil), "injective.permissions.v1beta1.QueryRoleManagerRequest") + proto.RegisterType((*QueryRoleManagerResponse)(nil), "injective.permissions.v1beta1.QueryRoleManagerResponse") + proto.RegisterType((*QueryPolicyStatusesRequest)(nil), "injective.permissions.v1beta1.QueryPolicyStatusesRequest") + proto.RegisterType((*QueryPolicyStatusesResponse)(nil), "injective.permissions.v1beta1.QueryPolicyStatusesResponse") + proto.RegisterType((*QueryPolicyManagerCapabilitiesRequest)(nil), "injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesRequest") + proto.RegisterType((*QueryPolicyManagerCapabilitiesResponse)(nil), "injective.permissions.v1beta1.QueryPolicyManagerCapabilitiesResponse") + proto.RegisterType((*QueryVouchersRequest)(nil), "injective.permissions.v1beta1.QueryVouchersRequest") + proto.RegisterType((*QueryVouchersResponse)(nil), "injective.permissions.v1beta1.QueryVouchersResponse") + proto.RegisterType((*QueryVoucherRequest)(nil), "injective.permissions.v1beta1.QueryVoucherRequest") + proto.RegisterType((*QueryVoucherResponse)(nil), "injective.permissions.v1beta1.QueryVoucherResponse") + proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.permissions.v1beta1.QueryModuleStateRequest") + proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.permissions.v1beta1.QueryModuleStateResponse") } -func (m *QueryAddressesByRoleRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Role) > 0 { - i -= len(m.Role) - copy(dAtA[i:], m.Role) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Role))) - i-- - dAtA[i] = 0x12 - } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil +func init() { + proto.RegisterFile("injective/permissions/v1beta1/query.proto", fileDescriptor_e0ae50f1018498b3) } -func (m *QueryAddressesByRoleResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil +var fileDescriptor_e0ae50f1018498b3 = []byte{ + // 1263 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0x4f, 0x6f, 0x1b, 0xc5, + 0x1b, 0xc7, 0xb3, 0xfd, 0x35, 0x49, 0xf3, 0x24, 0xbf, 0x56, 0x4c, 0x4d, 0x70, 0xdc, 0xd6, 0xa9, + 0x46, 0x0a, 0x4d, 0x9b, 0xda, 0x5b, 0x3b, 0xa9, 0x13, 0x42, 0x5b, 0x88, 0xe3, 0x14, 0x82, 0x08, + 0xb4, 0x0b, 0xe2, 0x50, 0x09, 0x99, 0xf5, 0x7a, 0xe4, 0x2c, 0xb5, 0x77, 0xb6, 0x9e, 0x75, 0x24, + 0xab, 0xca, 0x85, 0x57, 0x00, 0xe2, 0x8e, 0x78, 0x05, 0x3d, 0x20, 0xce, 0x70, 0x40, 0x88, 0x1c, + 0x2b, 0x71, 0x41, 0x48, 0x44, 0x28, 0xe1, 0xc4, 0x99, 0x17, 0x80, 0x76, 0xf6, 0xd9, 0xf5, 0xda, + 0x71, 0xbc, 0xbb, 0xe1, 0x14, 0xcf, 0x9f, 0xe7, 0xfb, 0x7c, 0x9e, 0x99, 0xd9, 0x99, 0xaf, 0x02, + 0x37, 0x4d, 0xeb, 0x73, 0x66, 0x38, 0xe6, 0x1e, 0x53, 0x6d, 0xd6, 0x6e, 0x99, 0x42, 0x98, 0xdc, + 0x12, 0xea, 0x5e, 0xa1, 0xc6, 0x1c, 0xbd, 0xa0, 0x3e, 0xeb, 0xb0, 0x76, 0x37, 0x6f, 0xb7, 0xb9, + 0xc3, 0xc9, 0xb5, 0x60, 0x6a, 0x3e, 0x34, 0x35, 0x8f, 0x53, 0x33, 0xa9, 0x06, 0x6f, 0x70, 0x39, + 0x53, 0x75, 0x7f, 0x79, 0x41, 0x99, 0xab, 0x0d, 0xce, 0x1b, 0x4d, 0xa6, 0xea, 0xb6, 0xa9, 0xea, + 0x96, 0xc5, 0x1d, 0xdd, 0x91, 0x51, 0xde, 0x68, 0xd6, 0xe0, 0xa2, 0xc5, 0x85, 0x5a, 0xd3, 0x05, + 0x0b, 0x72, 0x1a, 0xdc, 0xb4, 0x70, 0xfc, 0x56, 0x78, 0x5c, 0xb2, 0x04, 0xb3, 0x6c, 0xbd, 0x61, + 0x5a, 0x52, 0xcc, 0x9f, 0x3b, 0xba, 0x12, 0x5b, 0x6f, 0xeb, 0x2d, 0x3f, 0xef, 0xd2, 0xe8, 0xb9, + 0x0d, 0x66, 0x31, 0x61, 0xfa, 0x93, 0xd5, 0x08, 0xe1, 0xd0, 0x5a, 0xc8, 0x00, 0x9a, 0x02, 0xf2, + 0xd8, 0x65, 0x7d, 0x24, 0x53, 0x6a, 0xec, 0x59, 0x87, 0x09, 0x87, 0x3e, 0x81, 0xcb, 0x7d, 0xbd, + 0xc2, 0xe6, 0x96, 0x60, 0x64, 0x13, 0x26, 0x3c, 0xb4, 0xb4, 0x72, 0x5d, 0x59, 0x9c, 0x2e, 0x2e, + 0xe4, 0x47, 0x2e, 0x73, 0xde, 0x0b, 0x2f, 0x9f, 0x3f, 0x38, 0x9c, 0x1f, 0xd3, 0x30, 0x94, 0x5e, + 0x83, 0x2b, 0x52, 0xfb, 0x03, 0xbd, 0xc5, 0x84, 0xad, 0x1b, 0xac, 0xc2, 0x2c, 0xde, 0x4b, 0x5d, + 0x82, 0xab, 0xc3, 0x87, 0x91, 0x61, 0x16, 0x26, 0xea, 0xb2, 0x27, 0xad, 0x5c, 0xff, 0xdf, 0xe2, + 0x94, 0x86, 0x2d, 0x9a, 0x86, 0xd9, 0xfe, 0xb8, 0x40, 0xd1, 0x80, 0xd7, 0x4e, 0x8c, 0xa0, 0xd8, + 0xbb, 0x00, 0x56, 0xd0, 0x2b, 0x05, 0xa7, 0x8b, 0x8b, 0x11, 0x45, 0x05, 0x32, 0x5a, 0x28, 0x96, + 0xe6, 0xe0, 0xd5, 0xfe, 0x24, 0x98, 0x9d, 0xa4, 0x60, 0x5c, 0x12, 0xca, 0x25, 0x9b, 0xd2, 0xbc, + 0x06, 0xfd, 0x6c, 0x90, 0x36, 0x40, 0x7a, 0x08, 0x53, 0x81, 0x2c, 0x2e, 0x73, 0x7c, 0xa2, 0x5e, + 0x28, 0xad, 0x40, 0x5a, 0x66, 0xd8, 0x30, 0x1c, 0xde, 0x16, 0xe5, 0xae, 0xc6, 0x9b, 0xa3, 0x99, + 0x08, 0x81, 0xf3, 0x6d, 0xde, 0x64, 0xe9, 0x73, 0xb2, 0x53, 0xfe, 0xa6, 0xcb, 0x30, 0x37, 0x44, + 0xa5, 0xb7, 0x15, 0xba, 0xec, 0xf7, 0xb7, 0xc2, 0x6b, 0xd1, 0x87, 0x98, 0xda, 0x9d, 0x2c, 0xca, + 0x5e, 0xec, 0xe8, 0xd4, 0x29, 0x18, 0x97, 0xb1, 0x98, 0xdb, 0x6b, 0xd0, 0x02, 0x26, 0xef, 0xd7, + 0xc1, 0xe4, 0x29, 0x18, 0x77, 0x09, 0xfd, 0xdc, 0x5e, 0x83, 0xde, 0x09, 0xa5, 0xde, 0xd1, 0x2d, + 0xbd, 0xc1, 0xda, 0x62, 0xf4, 0x4e, 0x34, 0x43, 0x49, 0x7a, 0x11, 0x98, 0xe4, 0x43, 0xf8, 0xbf, + 0xab, 0x5b, 0x6d, 0xe1, 0x00, 0x1e, 0x91, 0x5b, 0x11, 0x1b, 0x12, 0xd2, 0xd2, 0x66, 0xda, 0x21, + 0x61, 0xba, 0x8d, 0x67, 0x31, 0x3c, 0x63, 0xe4, 0xca, 0xa4, 0x61, 0x12, 0x93, 0xe3, 0xda, 0xf8, + 0x4d, 0x6a, 0x9e, 0x2c, 0x35, 0xe0, 0xde, 0x81, 0x99, 0x30, 0x37, 0x9e, 0xa3, 0x24, 0xd8, 0xd3, + 0x21, 0x6c, 0x5a, 0x84, 0x8c, 0x77, 0x1d, 0xf0, 0xa6, 0x69, 0x74, 0x3f, 0x72, 0x74, 0xa7, 0x23, + 0x58, 0xc4, 0xba, 0x0a, 0xfc, 0xcc, 0x07, 0x63, 0x90, 0xf0, 0x63, 0xb8, 0x64, 0xcb, 0x91, 0xaa, + 0xc0, 0x21, 0x5c, 0xdb, 0xa5, 0xa8, 0x3b, 0x25, 0xa4, 0xa7, 0x5d, 0xb4, 0xfb, 0xd4, 0xe9, 0x7d, + 0x58, 0x08, 0x25, 0x45, 0xfc, 0x4d, 0xdd, 0xd6, 0x6b, 0x66, 0xd3, 0x74, 0xcc, 0x28, 0xe6, 0x6f, + 0x15, 0x78, 0x3d, 0x2a, 0x1e, 0xf9, 0xf7, 0xe0, 0x0a, 0xf2, 0xe3, 0x1a, 0x57, 0x8d, 0xd0, 0x34, + 0xac, 0xa5, 0x14, 0xab, 0x96, 0xc1, 0x34, 0x5d, 0x6d, 0xce, 0x3e, 0x2d, 0x3f, 0xbd, 0x0d, 0x29, + 0x49, 0xf8, 0x09, 0xef, 0x18, 0xbb, 0x91, 0x87, 0xbb, 0x86, 0xb7, 0x52, 0x6f, 0x36, 0xe2, 0x6f, + 0xc3, 0x85, 0x3d, 0xec, 0x43, 0xd6, 0x5c, 0x04, 0xeb, 0x46, 0xbd, 0xde, 0x66, 0x42, 0xa0, 0x92, + 0x16, 0x84, 0xd3, 0x2d, 0x7c, 0x2b, 0xfc, 0x91, 0xa8, 0xe3, 0xac, 0x7b, 0x42, 0xfe, 0x71, 0xc6, + 0x26, 0xfd, 0x4a, 0xe9, 0xaf, 0x2c, 0x40, 0xed, 0xc2, 0x24, 0xe6, 0xc2, 0x63, 0x3c, 0x97, 0xf7, + 0x5e, 0xda, 0xbc, 0xfb, 0xd2, 0x06, 0x7c, 0x9b, 0xdc, 0xb4, 0xca, 0x15, 0xf7, 0xa5, 0xf9, 0xfd, + 0x70, 0xfe, 0x46, 0xc3, 0x74, 0x76, 0x3b, 0xb5, 0xbc, 0xc1, 0x5b, 0x2a, 0x3e, 0xcb, 0xde, 0x9f, + 0x9c, 0xa8, 0x3f, 0x55, 0x9d, 0xae, 0xcd, 0x84, 0x0c, 0xf8, 0xfb, 0x70, 0xfe, 0x15, 0x14, 0xbf, + 0xcd, 0x5b, 0xa6, 0xc3, 0x5a, 0xb6, 0xd3, 0xd5, 0xfc, 0x7c, 0x74, 0x0e, 0xbf, 0xd6, 0x1d, 0x5e, + 0xef, 0x34, 0x99, 0x7b, 0xca, 0xfc, 0x2b, 0x94, 0x7e, 0x8a, 0x5f, 0x5f, 0xdf, 0x10, 0x12, 0x6f, + 0xc0, 0xb8, 0x7b, 0xa8, 0xfd, 0xeb, 0x3b, 0xea, 0x44, 0xbf, 0xe3, 0xbd, 0xe0, 0x9e, 0x86, 0x17, + 0x59, 0xfc, 0xe3, 0x32, 0x8c, 0x4b, 0x7d, 0xf2, 0x8d, 0x02, 0x13, 0xde, 0x3b, 0x4a, 0x0a, 0x11, + 0x42, 0x27, 0x1f, 0xf2, 0x4c, 0x31, 0x49, 0x88, 0x87, 0x4f, 0x73, 0x5f, 0xfc, 0xfa, 0xd7, 0xd7, + 0xe7, 0x6e, 0x90, 0x05, 0x35, 0x8e, 0x4b, 0x21, 0x3f, 0x29, 0x70, 0x69, 0xe0, 0xb1, 0x26, 0xeb, + 0x71, 0xd2, 0x0e, 0x37, 0x00, 0x99, 0x37, 0xcf, 0x14, 0x8b, 0xec, 0xab, 0x92, 0xbd, 0x40, 0xd4, + 0x08, 0xf6, 0xe0, 0x9d, 0xac, 0x7a, 0xf6, 0x81, 0xbc, 0x50, 0x00, 0x7a, 0x06, 0x81, 0xdc, 0x4d, + 0x04, 0x11, 0xb0, 0x97, 0x92, 0x86, 0x21, 0x76, 0x41, 0x62, 0x2f, 0x91, 0x9b, 0x71, 0xb1, 0x05, + 0xf9, 0x4e, 0x81, 0xa9, 0x40, 0x89, 0xac, 0x24, 0x4a, 0xec, 0xe3, 0xde, 0x4d, 0x18, 0x85, 0xb4, + 0x6b, 0x92, 0xb6, 0x48, 0xee, 0xc4, 0xa5, 0x55, 0x9f, 0xcb, 0x55, 0xde, 0x27, 0x07, 0x0a, 0xcc, + 0x84, 0x5f, 0x73, 0xb2, 0x1a, 0x87, 0x60, 0x88, 0x8f, 0xc8, 0xac, 0x25, 0x0f, 0x44, 0xfa, 0x2d, + 0x49, 0xff, 0x16, 0xb9, 0x1f, 0x41, 0x2f, 0x0d, 0x45, 0xb5, 0xd6, 0xad, 0x4a, 0x33, 0xe2, 0x97, + 0xa0, 0x3e, 0x97, 0xcd, 0x7d, 0xf2, 0x8b, 0x02, 0x33, 0x61, 0x57, 0x14, 0xaf, 0x94, 0x21, 0x6e, + 0x2c, 0x5e, 0x29, 0xc3, 0x0c, 0x18, 0xad, 0xc8, 0x52, 0x1e, 0x90, 0x7b, 0x11, 0xa5, 0x78, 0xbe, + 0xcc, 0xad, 0xc5, 0x2d, 0xaa, 0x57, 0x8a, 0xdb, 0xda, 0x27, 0x3f, 0xe2, 0xa6, 0xf8, 0x26, 0x25, + 0xfe, 0xa6, 0x0c, 0x38, 0xac, 0xf8, 0x9b, 0x32, 0x68, 0xb4, 0xe8, 0x3d, 0x59, 0x49, 0x89, 0xac, + 0xc4, 0xd8, 0x94, 0xc0, 0x8d, 0x05, 0xc7, 0xea, 0x67, 0x05, 0xa6, 0x43, 0xb2, 0xa4, 0x94, 0x90, + 0xc3, 0xe7, 0x5f, 0x4d, 0x1c, 0x77, 0x86, 0x33, 0xe5, 0xe3, 0xf7, 0xb6, 0x01, 0x3b, 0xe4, 0x99, + 0xba, 0xd8, 0xef, 0x97, 0xc8, 0x1b, 0xb1, 0x2e, 0xf0, 0x61, 0xbe, 0x2c, 0xb3, 0x7e, 0x96, 0x50, + 0x2c, 0xe8, 0x81, 0x2c, 0x68, 0x8d, 0x94, 0xa2, 0xde, 0x80, 0x7e, 0x0f, 0x17, 0xec, 0xc8, 0x3f, + 0x0a, 0xcc, 0x9d, 0x6a, 0xa2, 0x48, 0x25, 0x3e, 0xd9, 0xe9, 0x1e, 0x2e, 0xb3, 0xf5, 0x1f, 0x55, + 0xb0, 0xd4, 0xf7, 0x64, 0xa9, 0x15, 0x52, 0x8e, 0x57, 0xea, 0x30, 0xbb, 0x17, 0x94, 0xfd, 0x42, + 0x81, 0x0b, 0xbe, 0xd7, 0x22, 0xcb, 0x71, 0xf8, 0x06, 0x7c, 0x5c, 0x66, 0x25, 0x59, 0x50, 0xc2, + 0x67, 0xcf, 0x37, 0x6d, 0x01, 0xf0, 0xf7, 0x0a, 0x4c, 0xa2, 0x1a, 0x29, 0x26, 0x48, 0xed, 0xe3, + 0x2e, 0x27, 0x8a, 0x41, 0xda, 0xb7, 0x25, 0xed, 0x3a, 0x59, 0x8b, 0x47, 0x1b, 0xba, 0x7a, 0x3d, + 0xaf, 0xb8, 0x4f, 0x7e, 0x50, 0x60, 0xf6, 0x51, 0x2f, 0x22, 0x64, 0xc2, 0xe2, 0x7d, 0xfb, 0x27, + 0x0d, 0x5d, 0xbc, 0x6f, 0x7f, 0x88, 0xdb, 0xa3, 0xcb, 0xb2, 0x9a, 0x1c, 0x59, 0x8a, 0xa8, 0xa6, + 0x25, 0x63, 0xe5, 0xa7, 0xc2, 0xca, 0x4f, 0x0f, 0x8e, 0xb2, 0xca, 0xcb, 0xa3, 0xac, 0xf2, 0xe7, + 0x51, 0x56, 0xf9, 0xf2, 0x38, 0x3b, 0xf6, 0xf2, 0x38, 0x3b, 0xf6, 0xdb, 0x71, 0x76, 0xec, 0xc9, + 0xe3, 0x90, 0x75, 0xdd, 0xf6, 0x05, 0xdf, 0xd7, 0x6b, 0xa2, 0x27, 0x9f, 0x33, 0x78, 0x9b, 0x85, + 0x9b, 0xbb, 0xba, 0x69, 0xa1, 0xbe, 0xe8, 0xcb, 0x2d, 0x9d, 0x6e, 0x6d, 0x42, 0xfe, 0xab, 0x67, + 0xf9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x36, 0x6c, 0x4e, 0x0d, 0x40, 0x13, 0x00, 0x00, } -func (m *QueryAddressesByRoleResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QueryClient interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + NamespaceDenoms(ctx context.Context, in *QueryNamespaceDenomsRequest, opts ...grpc.CallOption) (*QueryNamespaceDenomsResponse, error) + // Namespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + Namespaces(ctx context.Context, in *QueryNamespacesRequest, opts ...grpc.CallOption) (*QueryNamespacesResponse, error) + // Namespace defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + Namespace(ctx context.Context, in *QueryNamespaceRequest, opts ...grpc.CallOption) (*QueryNamespaceResponse, error) + // RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + RolesByActor(ctx context.Context, in *QueryRolesByActorRequest, opts ...grpc.CallOption) (*QueryRolesByActorResponse, error) + // ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + ActorsByRole(ctx context.Context, in *QueryActorsByRoleRequest, opts ...grpc.CallOption) (*QueryActorsByRoleResponse, error) + // RoleManagers defines a gRPC query method that returns a namespace's role managers + RoleManagers(ctx context.Context, in *QueryRoleManagersRequest, opts ...grpc.CallOption) (*QueryRoleManagersResponse, error) + // RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + RoleManager(ctx context.Context, in *QueryRoleManagerRequest, opts ...grpc.CallOption) (*QueryRoleManagerResponse, error) + // PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + PolicyStatuses(ctx context.Context, in *QueryPolicyStatusesRequest, opts ...grpc.CallOption) (*QueryPolicyStatusesResponse, error) + // PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + PolicyManagerCapabilities(ctx context.Context, in *QueryPolicyManagerCapabilitiesRequest, opts ...grpc.CallOption) (*QueryPolicyManagerCapabilitiesResponse, error) + // Vouchers defines a gRPC query method for the vouchers for a given denom + Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) + // Voucher defines a gRPC query method for the vouchers for a given denom and address + Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) + // Retrieves the entire permissions module's state + PermissionsModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) } -func (m *QueryAddressesByRoleResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Addresses) > 0 { - for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Addresses[iNdEx]) - copy(dAtA[i:], m.Addresses[iNdEx]) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Addresses[iNdEx]))) - i-- - dAtA[i] = 0xa - } +type queryClient struct { + cc grpc1.ClientConn +} + +func NewQueryClient(cc grpc1.ClientConn) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Params", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryAddressRolesRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) NamespaceDenoms(ctx context.Context, in *QueryNamespaceDenomsRequest, opts ...grpc.CallOption) (*QueryNamespaceDenomsResponse, error) { + out := new(QueryNamespaceDenomsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/NamespaceDenoms", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryAddressRolesRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) Namespaces(ctx context.Context, in *QueryNamespacesRequest, opts ...grpc.CallOption) (*QueryNamespacesResponse, error) { + out := new(QueryNamespacesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Namespaces", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryAddressRolesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0x12 +func (c *queryClient) Namespace(ctx context.Context, in *QueryNamespaceRequest, opts ...grpc.CallOption) (*QueryNamespaceResponse, error) { + out := new(QueryNamespaceResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Namespace", in, out, opts...) + if err != nil { + return nil, err } - if len(m.Denom) > 0 { - i -= len(m.Denom) - copy(dAtA[i:], m.Denom) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) - i-- - dAtA[i] = 0xa + return out, nil +} + +func (c *queryClient) RolesByActor(ctx context.Context, in *QueryRolesByActorRequest, opts ...grpc.CallOption) (*QueryRolesByActorResponse, error) { + out := new(QueryRolesByActorResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RolesByActor", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryAddressRolesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) ActorsByRole(ctx context.Context, in *QueryActorsByRoleRequest, opts ...grpc.CallOption) (*QueryActorsByRoleResponse, error) { + out := new(QueryActorsByRoleResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/ActorsByRole", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryAddressRolesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) RoleManagers(ctx context.Context, in *QueryRoleManagersRequest, opts ...grpc.CallOption) (*QueryRoleManagersResponse, error) { + out := new(QueryRoleManagersResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RoleManagers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryAddressRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Roles) > 0 { - for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Roles[iNdEx]) - copy(dAtA[i:], m.Roles[iNdEx]) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Roles[iNdEx]))) - i-- - dAtA[i] = 0xa - } +func (c *queryClient) RoleManager(ctx context.Context, in *QueryRoleManagerRequest, opts ...grpc.CallOption) (*QueryRoleManagerResponse, error) { + out := new(QueryRoleManagerResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/RoleManager", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryVouchersForAddressRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PolicyStatuses(ctx context.Context, in *QueryPolicyStatusesRequest, opts ...grpc.CallOption) (*QueryPolicyStatusesResponse, error) { + out := new(QueryPolicyStatusesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PolicyStatuses", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryVouchersForAddressRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PolicyManagerCapabilities(ctx context.Context, in *QueryPolicyManagerCapabilitiesRequest, opts ...grpc.CallOption) (*QueryPolicyManagerCapabilitiesResponse, error) { + out := new(QueryPolicyManagerCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PolicyManagerCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryVouchersForAddressRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0xa +func (c *queryClient) Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) { + out := new(QueryVouchersResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Vouchers", in, out, opts...) + if err != nil { + return nil, err } - return len(dAtA) - i, nil + return out, nil } -func (m *QueryVouchersForAddressResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) { + out := new(QueryVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Voucher", in, out, opts...) if err != nil { return nil, err } - return dAtA[:n], nil + return out, nil } -func (m *QueryVouchersForAddressResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) +func (c *queryClient) PermissionsModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) { + out := new(QueryModuleStateResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/PermissionsModuleState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil } -func (m *QueryVouchersForAddressResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Vouchers) > 0 { - for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } +// QueryServer is the server API for Query service. +type QueryServer interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + NamespaceDenoms(context.Context, *QueryNamespaceDenomsRequest) (*QueryNamespaceDenomsResponse, error) + // Namespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + Namespaces(context.Context, *QueryNamespacesRequest) (*QueryNamespacesResponse, error) + // Namespace defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + Namespace(context.Context, *QueryNamespaceRequest) (*QueryNamespaceResponse, error) + // RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + RolesByActor(context.Context, *QueryRolesByActorRequest) (*QueryRolesByActorResponse, error) + // ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + ActorsByRole(context.Context, *QueryActorsByRoleRequest) (*QueryActorsByRoleResponse, error) + // RoleManagers defines a gRPC query method that returns a namespace's role managers + RoleManagers(context.Context, *QueryRoleManagersRequest) (*QueryRoleManagersResponse, error) + // RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + RoleManager(context.Context, *QueryRoleManagerRequest) (*QueryRoleManagerResponse, error) + // PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + PolicyStatuses(context.Context, *QueryPolicyStatusesRequest) (*QueryPolicyStatusesResponse, error) + // PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + PolicyManagerCapabilities(context.Context, *QueryPolicyManagerCapabilitiesRequest) (*QueryPolicyManagerCapabilitiesResponse, error) + // Vouchers defines a gRPC query method for the vouchers for a given denom + Vouchers(context.Context, *QueryVouchersRequest) (*QueryVouchersResponse, error) + // Voucher defines a gRPC query method for the vouchers for a given denom and address + Voucher(context.Context, *QueryVoucherRequest) (*QueryVoucherResponse, error) + // Retrieves the entire permissions module's state + PermissionsModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error) +} + +// UnimplementedQueryServer can be embedded to have forward compatible implementations. +type UnimplementedQueryServer struct { +} + +func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (*UnimplementedQueryServer) NamespaceDenoms(ctx context.Context, req *QueryNamespaceDenomsRequest) (*QueryNamespaceDenomsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NamespaceDenoms not implemented") +} +func (*UnimplementedQueryServer) Namespaces(ctx context.Context, req *QueryNamespacesRequest) (*QueryNamespacesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Namespaces not implemented") +} +func (*UnimplementedQueryServer) Namespace(ctx context.Context, req *QueryNamespaceRequest) (*QueryNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Namespace not implemented") +} +func (*UnimplementedQueryServer) RolesByActor(ctx context.Context, req *QueryRolesByActorRequest) (*QueryRolesByActorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RolesByActor not implemented") +} +func (*UnimplementedQueryServer) ActorsByRole(ctx context.Context, req *QueryActorsByRoleRequest) (*QueryActorsByRoleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ActorsByRole not implemented") +} +func (*UnimplementedQueryServer) RoleManagers(ctx context.Context, req *QueryRoleManagersRequest) (*QueryRoleManagersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RoleManagers not implemented") +} +func (*UnimplementedQueryServer) RoleManager(ctx context.Context, req *QueryRoleManagerRequest) (*QueryRoleManagerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RoleManager not implemented") +} +func (*UnimplementedQueryServer) PolicyStatuses(ctx context.Context, req *QueryPolicyStatusesRequest) (*QueryPolicyStatusesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PolicyStatuses not implemented") +} +func (*UnimplementedQueryServer) PolicyManagerCapabilities(ctx context.Context, req *QueryPolicyManagerCapabilitiesRequest) (*QueryPolicyManagerCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PolicyManagerCapabilities not implemented") +} +func (*UnimplementedQueryServer) Vouchers(ctx context.Context, req *QueryVouchersRequest) (*QueryVouchersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Vouchers not implemented") +} +func (*UnimplementedQueryServer) Voucher(ctx context.Context, req *QueryVoucherRequest) (*QueryVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Voucher not implemented") +} +func (*UnimplementedQueryServer) PermissionsModuleState(ctx context.Context, req *QueryModuleStateRequest) (*QueryModuleStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PermissionsModuleState not implemented") +} + +func RegisterQueryServer(s grpc1.Server, srv QueryServer) { + s.RegisterService(&_Query_serviceDesc, srv) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err } - return len(dAtA) - i, nil + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Params", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func _Query_NamespaceDenoms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespaceDenomsRequest) + if err := dec(in); err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + if interceptor == nil { + return srv.(QueryServer).NamespaceDenoms(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/NamespaceDenoms", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NamespaceDenoms(ctx, req.(*QueryNamespaceDenomsRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 + +func _Query_Namespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespacesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - return n + if interceptor == nil { + return srv.(QueryServer).Namespaces(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Namespaces", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Namespaces(ctx, req.(*QueryNamespacesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_Namespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespaceRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + if interceptor == nil { + return srv.(QueryServer).Namespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Namespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Namespace(ctx, req.(*QueryNamespaceRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAllNamespacesRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_RolesByActor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRolesByActorRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - return n + if interceptor == nil { + return srv.(QueryServer).RolesByActor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RolesByActor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RolesByActor(ctx, req.(*QueryRolesByActorRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAllNamespacesResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_ActorsByRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryActorsByRoleRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Namespaces) > 0 { - for _, e := range m.Namespaces { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } + if interceptor == nil { + return srv.(QueryServer).ActorsByRole(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/ActorsByRole", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ActorsByRole(ctx, req.(*QueryActorsByRoleRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryNamespaceByDenomRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_RoleManagers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRoleManagersRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).RoleManagers(ctx, in) } - if m.IncludeRoles { - n += 2 + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RoleManagers", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RoleManagers(ctx, req.(*QueryRoleManagersRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryNamespaceByDenomResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_RoleManager_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryRoleManagerRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if m.Namespace != nil { - l = m.Namespace.Size() - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).RoleManager(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/RoleManager", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).RoleManager(ctx, req.(*QueryRoleManagerRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressesByRoleRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_PolicyStatuses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPolicyStatusesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).PolicyStatuses(ctx, in) } - l = len(m.Role) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PolicyStatuses", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PolicyStatuses(ctx, req.(*QueryPolicyStatusesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressesByRoleResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_PolicyManagerCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPolicyManagerCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Addresses) > 0 { - for _, s := range m.Addresses { - l = len(s) - n += 1 + l + sovQuery(uint64(l)) - } + if interceptor == nil { + return srv.(QueryServer).PolicyManagerCapabilities(ctx, in) } - return n + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PolicyManagerCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PolicyManagerCapabilities(ctx, req.(*QueryPolicyManagerCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressRolesRequest) Size() (n int) { - if m == nil { - return 0 +func _Query_Vouchers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVouchersRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - l = len(m.Denom) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).Vouchers(ctx, in) } - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Vouchers", } - return n + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Vouchers(ctx, req.(*QueryVouchersRequest)) + } + return interceptor(ctx, in, info, handler) } -func (m *QueryAddressRolesResponse) Size() (n int) { - if m == nil { - return 0 +func _Query_Voucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVoucherRequest) + if err := dec(in); err != nil { + return nil, err } - var l int - _ = l - if len(m.Roles) > 0 { - for _, s := range m.Roles { - l = len(s) - n += 1 + l + sovQuery(uint64(l)) + if interceptor == nil { + return srv.(QueryServer).Voucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Voucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Voucher(ctx, req.(*QueryVoucherRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_PermissionsModuleState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryModuleStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).PermissionsModuleState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/PermissionsModuleState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).PermissionsModuleState(ctx, req.(*QueryModuleStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "injective.permissions.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "NamespaceDenoms", + Handler: _Query_NamespaceDenoms_Handler, + }, + { + MethodName: "Namespaces", + Handler: _Query_Namespaces_Handler, + }, + { + MethodName: "Namespace", + Handler: _Query_Namespace_Handler, + }, + { + MethodName: "RolesByActor", + Handler: _Query_RolesByActor_Handler, + }, + { + MethodName: "ActorsByRole", + Handler: _Query_ActorsByRole_Handler, + }, + { + MethodName: "RoleManagers", + Handler: _Query_RoleManagers_Handler, + }, + { + MethodName: "RoleManager", + Handler: _Query_RoleManager_Handler, + }, + { + MethodName: "PolicyStatuses", + Handler: _Query_PolicyStatuses_Handler, + }, + { + MethodName: "PolicyManagerCapabilities", + Handler: _Query_PolicyManagerCapabilities_Handler, + }, + { + MethodName: "Vouchers", + Handler: _Query_Vouchers_Handler, + }, + { + MethodName: "Voucher", + Handler: _Query_Voucher_Handler, + }, + { + MethodName: "PermissionsModuleState", + Handler: _Query_PermissionsModuleState_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "injective/permissions/v1beta1/query.proto", +} + +func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceDenomsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceDenomsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceDenomsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceDenomsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceDenomsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceDenomsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denoms) > 0 { + for iNdEx := len(m.Denoms) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Denoms[iNdEx]) + copy(dAtA[i:], m.Denoms[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denoms[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespacesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespacesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryNamespacesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespacesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryNamespaceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + { + size, err := m.Namespace.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryActorsByRoleRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActorsByRoleRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActorsByRoleRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Role) > 0 { + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Role))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryActorsByRoleResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActorsByRoleResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActorsByRoleResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Actors) > 0 { + for iNdEx := len(m.Actors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Actors[iNdEx]) + copy(dAtA[i:], m.Actors[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Actors[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRolesByActorRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRolesByActorRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRolesByActorRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Actor) > 0 { + i -= len(m.Actor) + copy(dAtA[i:], m.Actor) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Actor))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRolesByActorResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRolesByActorResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRolesByActorResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagerRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Manager) > 0 { + i -= len(m.Manager) + copy(dAtA[i:], m.Manager) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Manager))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRoleManagerResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryRoleManagerResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRoleManagerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RoleManager != nil { + { + size, err := m.RoleManager.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyStatusesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyStatusesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyStatusesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyStatusesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyStatusesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyStatusesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyManagerCapabilitiesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyManagerCapabilitiesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyManagerCapabilitiesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPolicyManagerCapabilitiesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryPolicyManagerCapabilitiesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPolicyManagerCapabilitiesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVoucherRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryModuleStateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryNamespaceDenomsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNamespaceDenomsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Denoms) > 0 { + for _, s := range m.Denoms { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryNamespacesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryNamespacesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Namespaces) > 0 { + for _, e := range m.Namespaces { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryNamespaceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryNamespaceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Namespace != nil { + l = m.Namespace.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryActorsByRoleRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Role) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryActorsByRoleResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Actors) > 0 { + for _, s := range m.Actors { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRolesByActorRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Actor) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRolesByActorResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRoleManagersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRoleManagersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryRoleManagerRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Manager) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryRoleManagerResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RoleManager != nil { + l = m.RoleManager.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyStatusesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyStatusesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryPolicyManagerCapabilitiesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPolicyManagerCapabilitiesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVouchersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVouchersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVoucherRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Voucher.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryModuleStateRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryModuleStateResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.State != nil { + l = m.State.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceDenomsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceDenomsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceDenomsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceDenomsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceDenomsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceDenomsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denoms", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denoms = append(m.Denoms, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespacesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespacesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespacesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespacesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespacesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespaces = append(m.Namespaces, &Namespace{}) + if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryNamespaceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryNamespaceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Namespace == nil { + m.Namespace = &Namespace{} + } + if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryActorsByRoleRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryActorsByRoleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActorsByRoleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryActorsByRoleResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryActorsByRoleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActorsByRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actors = append(m.Actors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRolesByActorRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRolesByActorRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRolesByActorRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Actor", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Actor = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRolesByActorResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRolesByActorResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRolesByActorResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRoleManagersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRoleManagersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRoleManagersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRoleManagersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryRoleManagersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRoleManagersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } - return n -} - -func (m *QueryVouchersForAddressRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - return n -} -func (m *QueryVouchersForAddressResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Vouchers) > 0 { - for _, e := range m.Vouchers { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n -} - -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + return nil } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryRoleManagerRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1544,12 +4231,76 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryRoleManagerRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryRoleManagerRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Manager = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1571,7 +4322,7 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryRoleManagerResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1594,15 +4345,15 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryRoleManagerResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryRoleManagerResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RoleManager", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1629,7 +4380,10 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.RoleManager == nil { + m.RoleManager = &RoleManager{} + } + if err := m.RoleManager.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1654,7 +4408,7 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyStatusesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1677,12 +4431,44 @@ func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAllNamespacesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyStatusesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAllNamespacesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyStatusesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1704,7 +4490,7 @@ func (m *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyStatusesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1727,15 +4513,15 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAllNamespacesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyStatusesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAllNamespacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyStatusesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1762,8 +4548,8 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Namespaces = append(m.Namespaces, &Namespace{}) - if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1788,7 +4574,7 @@ func (m *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyManagerCapabilitiesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1811,10 +4597,10 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryNamespaceByDenomRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryNamespaceByDenomRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1849,26 +4635,6 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { } m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeRoles", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeRoles = bool(v != 0) default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -1890,7 +4656,7 @@ func (m *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPolicyManagerCapabilitiesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1913,15 +4679,15 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryNamespaceByDenomResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryNamespaceByDenomResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPolicyManagerCapabilitiesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1948,10 +4714,8 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Namespace == nil { - m.Namespace = &Namespace{} - } - if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1976,7 +4740,7 @@ func (m *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { +func (m *QueryVouchersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1999,10 +4763,10 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressesByRoleRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVouchersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressesByRoleRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVouchersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -2037,38 +4801,6 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { } m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Role = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -2090,7 +4822,7 @@ func (m *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { +func (m *QueryVouchersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2113,17 +4845,17 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressesByRoleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVouchersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressesByRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVouchersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -2133,23 +4865,25 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex])) + m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2172,7 +4906,7 @@ func (m *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryVoucherRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2195,10 +4929,10 @@ func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressRolesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVoucherRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressRolesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVoucherRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -2286,7 +5020,7 @@ func (m *QueryAddressRolesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryVoucherResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2309,17 +5043,17 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryAddressRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryVoucherResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryAddressRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -2329,23 +5063,24 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -2368,7 +5103,7 @@ func (m *QueryAddressRolesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2391,44 +5126,12 @@ func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryVouchersForAddressRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryVouchersForAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -2450,7 +5153,7 @@ func (m *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -2473,15 +5176,15 @@ func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryVouchersForAddressResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryVouchersForAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2508,8 +5211,10 @@ func (m *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Vouchers = append(m.Vouchers, types.Coin{}) - if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.State == nil { + m.State = &GenesisState{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/permissions/types/tx.pb.go b/chain/permissions/types/tx.pb.go index 7516812d..cdeff028 100644 --- a/chain/permissions/types/tx.pb.go +++ b/chain/permissions/types/tx.pb.go @@ -213,108 +213,21 @@ func (m *MsgCreateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgCreateNamespaceResponse proto.InternalMessageInfo -type MsgDeleteNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` -} - -func (m *MsgDeleteNamespace) Reset() { *m = MsgDeleteNamespace{} } -func (m *MsgDeleteNamespace) String() string { return proto.CompactTextString(m) } -func (*MsgDeleteNamespace) ProtoMessage() {} -func (*MsgDeleteNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{4} -} -func (m *MsgDeleteNamespace) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgDeleteNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgDeleteNamespace.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgDeleteNamespace) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgDeleteNamespace.Merge(m, src) -} -func (m *MsgDeleteNamespace) XXX_Size() int { - return m.Size() -} -func (m *MsgDeleteNamespace) XXX_DiscardUnknown() { - xxx_messageInfo_MsgDeleteNamespace.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgDeleteNamespace proto.InternalMessageInfo - -func (m *MsgDeleteNamespace) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - -func (m *MsgDeleteNamespace) GetNamespaceDenom() string { - if m != nil { - return m.NamespaceDenom - } - return "" -} - -type MsgDeleteNamespaceResponse struct { -} - -func (m *MsgDeleteNamespaceResponse) Reset() { *m = MsgDeleteNamespaceResponse{} } -func (m *MsgDeleteNamespaceResponse) String() string { return proto.CompactTextString(m) } -func (*MsgDeleteNamespaceResponse) ProtoMessage() {} -func (*MsgDeleteNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{5} -} -func (m *MsgDeleteNamespaceResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgDeleteNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgDeleteNamespaceResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgDeleteNamespaceResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgDeleteNamespaceResponse.Merge(m, src) -} -func (m *MsgDeleteNamespaceResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgDeleteNamespaceResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgDeleteNamespaceResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgDeleteNamespaceResponse proto.InternalMessageInfo - type MsgUpdateNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - WasmHook *MsgUpdateNamespace_MsgSetWasmHook `protobuf:"bytes,3,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` - MintsPaused *MsgUpdateNamespace_MsgSetMintsPaused `protobuf:"bytes,4,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` - SendsPaused *MsgUpdateNamespace_MsgSetSendsPaused `protobuf:"bytes,5,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` - BurnsPaused *MsgUpdateNamespace_MsgSetBurnsPaused `protobuf:"bytes,6,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + ContractHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + RolePermissions []*Role `protobuf:"bytes,4,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } func (m *MsgUpdateNamespace) Reset() { *m = MsgUpdateNamespace{} } func (m *MsgUpdateNamespace) String() string { return proto.CompactTextString(m) } func (*MsgUpdateNamespace) ProtoMessage() {} func (*MsgUpdateNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{4} } func (m *MsgUpdateNamespace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -350,189 +263,64 @@ func (m *MsgUpdateNamespace) GetSender() string { return "" } -func (m *MsgUpdateNamespace) GetNamespaceDenom() string { +func (m *MsgUpdateNamespace) GetDenom() string { if m != nil { - return m.NamespaceDenom + return m.Denom } return "" } -func (m *MsgUpdateNamespace) GetWasmHook() *MsgUpdateNamespace_MsgSetWasmHook { +func (m *MsgUpdateNamespace) GetContractHook() *MsgUpdateNamespace_SetContractHook { if m != nil { - return m.WasmHook + return m.ContractHook } return nil } -func (m *MsgUpdateNamespace) GetMintsPaused() *MsgUpdateNamespace_MsgSetMintsPaused { +func (m *MsgUpdateNamespace) GetRolePermissions() []*Role { if m != nil { - return m.MintsPaused + return m.RolePermissions } return nil } -func (m *MsgUpdateNamespace) GetSendsPaused() *MsgUpdateNamespace_MsgSetSendsPaused { +func (m *MsgUpdateNamespace) GetRoleManagers() []*RoleManager { if m != nil { - return m.SendsPaused + return m.RoleManagers } return nil } -func (m *MsgUpdateNamespace) GetBurnsPaused() *MsgUpdateNamespace_MsgSetBurnsPaused { +func (m *MsgUpdateNamespace) GetPolicyStatuses() []*PolicyStatus { if m != nil { - return m.BurnsPaused + return m.PolicyStatuses } return nil } -type MsgUpdateNamespace_MsgSetWasmHook struct { - NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetWasmHook) Reset() { *m = MsgUpdateNamespace_MsgSetWasmHook{} } -func (m *MsgUpdateNamespace_MsgSetWasmHook) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetWasmHook) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetWasmHook) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 0} -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetWasmHook) GetNewValue() string { - if m != nil { - return m.NewValue - } - return "" -} - -type MsgUpdateNamespace_MsgSetMintsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetMintsPaused{} } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetMintsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetMintsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 1} -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) GetNewValue() bool { - if m != nil { - return m.NewValue - } - return false -} - -type MsgUpdateNamespace_MsgSetSendsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetSendsPaused{} } -func (m *MsgUpdateNamespace_MsgSetSendsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetSendsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetSendsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 2} -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Merge(m, src) -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused proto.InternalMessageInfo - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) GetNewValue() bool { +func (m *MsgUpdateNamespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability { if m != nil { - return m.NewValue + return m.PolicyManagerCapabilities } - return false + return nil } -type MsgUpdateNamespace_MsgSetBurnsPaused struct { - NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +type MsgUpdateNamespace_SetContractHook struct { + NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetBurnsPaused{} } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespace_MsgSetBurnsPaused) ProtoMessage() {} -func (*MsgUpdateNamespace_MsgSetBurnsPaused) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 3} +func (m *MsgUpdateNamespace_SetContractHook) Reset() { *m = MsgUpdateNamespace_SetContractHook{} } +func (m *MsgUpdateNamespace_SetContractHook) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_SetContractHook) ProtoMessage() {} +func (*MsgUpdateNamespace_SetContractHook) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{4, 0} } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateNamespace_SetContractHook.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -542,23 +330,23 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Marshal(b []byte, determinist return b[:n], nil } } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Merge(m, src) +func (m *MsgUpdateNamespace_SetContractHook) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_SetContractHook.Merge(m, src) } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Size() int { +func (m *MsgUpdateNamespace_SetContractHook) XXX_Size() int { return m.Size() } -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.DiscardUnknown(m) +func (m *MsgUpdateNamespace_SetContractHook) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_SetContractHook.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateNamespace_SetContractHook proto.InternalMessageInfo -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) GetNewValue() bool { +func (m *MsgUpdateNamespace_SetContractHook) GetNewValue() string { if m != nil { return m.NewValue } - return false + return "" } type MsgUpdateNamespaceResponse struct { @@ -568,7 +356,7 @@ func (m *MsgUpdateNamespaceResponse) Reset() { *m = MsgUpdateNamespaceRe func (m *MsgUpdateNamespaceResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateNamespaceResponse) ProtoMessage() {} func (*MsgUpdateNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{7} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{5} } func (m *MsgUpdateNamespaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -597,25 +385,25 @@ func (m *MsgUpdateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateNamespaceResponse proto.InternalMessageInfo -type MsgUpdateNamespaceRoles struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - AddressRoles []*AddressRoles `protobuf:"bytes,4,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` +type MsgUpdateActorRoles struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + RoleActorsToAdd []*RoleActors `protobuf:"bytes,3,rep,name=role_actors_to_add,json=roleActorsToAdd,proto3" json:"role_actors_to_add,omitempty"` + RoleActorsToRevoke []*RoleActors `protobuf:"bytes,5,rep,name=role_actors_to_revoke,json=roleActorsToRevoke,proto3" json:"role_actors_to_revoke,omitempty"` } -func (m *MsgUpdateNamespaceRoles) Reset() { *m = MsgUpdateNamespaceRoles{} } -func (m *MsgUpdateNamespaceRoles) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespaceRoles) ProtoMessage() {} -func (*MsgUpdateNamespaceRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{8} +func (m *MsgUpdateActorRoles) Reset() { *m = MsgUpdateActorRoles{} } +func (m *MsgUpdateActorRoles) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateActorRoles) ProtoMessage() {} +func (*MsgUpdateActorRoles) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6} } -func (m *MsgUpdateNamespaceRoles) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateActorRoles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateActorRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateNamespaceRoles.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateActorRoles.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -625,157 +413,61 @@ func (m *MsgUpdateNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]b return b[:n], nil } } -func (m *MsgUpdateNamespaceRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespaceRoles.Merge(m, src) +func (m *MsgUpdateActorRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateActorRoles.Merge(m, src) } -func (m *MsgUpdateNamespaceRoles) XXX_Size() int { +func (m *MsgUpdateActorRoles) XXX_Size() int { return m.Size() } -func (m *MsgUpdateNamespaceRoles) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespaceRoles.DiscardUnknown(m) +func (m *MsgUpdateActorRoles) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateActorRoles.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateNamespaceRoles proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateActorRoles proto.InternalMessageInfo -func (m *MsgUpdateNamespaceRoles) GetSender() string { +func (m *MsgUpdateActorRoles) GetSender() string { if m != nil { return m.Sender } return "" } -func (m *MsgUpdateNamespaceRoles) GetNamespaceDenom() string { +func (m *MsgUpdateActorRoles) GetDenom() string { if m != nil { - return m.NamespaceDenom + return m.Denom } return "" } -func (m *MsgUpdateNamespaceRoles) GetRolePermissions() []*Role { - if m != nil { - return m.RolePermissions - } - return nil -} - -func (m *MsgUpdateNamespaceRoles) GetAddressRoles() []*AddressRoles { +func (m *MsgUpdateActorRoles) GetRoleActorsToAdd() []*RoleActors { if m != nil { - return m.AddressRoles + return m.RoleActorsToAdd } return nil } -type MsgUpdateNamespaceRolesResponse struct { -} - -func (m *MsgUpdateNamespaceRolesResponse) Reset() { *m = MsgUpdateNamespaceRolesResponse{} } -func (m *MsgUpdateNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateNamespaceRolesResponse) ProtoMessage() {} -func (*MsgUpdateNamespaceRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{9} -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Merge(m, src) -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgUpdateNamespaceRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateNamespaceRolesResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgUpdateNamespaceRolesResponse proto.InternalMessageInfo - -type MsgRevokeNamespaceRoles struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` - AddressRolesToRevoke []*AddressRoles `protobuf:"bytes,3,rep,name=address_roles_to_revoke,json=addressRolesToRevoke,proto3" json:"address_roles_to_revoke,omitempty"` -} - -func (m *MsgRevokeNamespaceRoles) Reset() { *m = MsgRevokeNamespaceRoles{} } -func (m *MsgRevokeNamespaceRoles) String() string { return proto.CompactTextString(m) } -func (*MsgRevokeNamespaceRoles) ProtoMessage() {} -func (*MsgRevokeNamespaceRoles) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{10} -} -func (m *MsgRevokeNamespaceRoles) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgRevokeNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgRevokeNamespaceRoles.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgRevokeNamespaceRoles) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgRevokeNamespaceRoles.Merge(m, src) -} -func (m *MsgRevokeNamespaceRoles) XXX_Size() int { - return m.Size() -} -func (m *MsgRevokeNamespaceRoles) XXX_DiscardUnknown() { - xxx_messageInfo_MsgRevokeNamespaceRoles.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgRevokeNamespaceRoles proto.InternalMessageInfo - -func (m *MsgRevokeNamespaceRoles) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - -func (m *MsgRevokeNamespaceRoles) GetNamespaceDenom() string { - if m != nil { - return m.NamespaceDenom - } - return "" -} - -func (m *MsgRevokeNamespaceRoles) GetAddressRolesToRevoke() []*AddressRoles { +func (m *MsgUpdateActorRoles) GetRoleActorsToRevoke() []*RoleActors { if m != nil { - return m.AddressRolesToRevoke + return m.RoleActorsToRevoke } return nil } -type MsgRevokeNamespaceRolesResponse struct { +type MsgUpdateActorRolesResponse struct { } -func (m *MsgRevokeNamespaceRolesResponse) Reset() { *m = MsgRevokeNamespaceRolesResponse{} } -func (m *MsgRevokeNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } -func (*MsgRevokeNamespaceRolesResponse) ProtoMessage() {} -func (*MsgRevokeNamespaceRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{11} +func (m *MsgUpdateActorRolesResponse) Reset() { *m = MsgUpdateActorRolesResponse{} } +func (m *MsgUpdateActorRolesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateActorRolesResponse) ProtoMessage() {} +func (*MsgUpdateActorRolesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{7} } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateActorRolesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateActorRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateActorRolesResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -785,17 +477,17 @@ func (m *MsgRevokeNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Merge(m, src) +func (m *MsgUpdateActorRolesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateActorRolesResponse.Merge(m, src) } -func (m *MsgRevokeNamespaceRolesResponse) XXX_Size() int { +func (m *MsgUpdateActorRolesResponse) XXX_Size() int { return m.Size() } -func (m *MsgRevokeNamespaceRolesResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgRevokeNamespaceRolesResponse.DiscardUnknown(m) +func (m *MsgUpdateActorRolesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateActorRolesResponse.DiscardUnknown(m) } -var xxx_messageInfo_MsgRevokeNamespaceRolesResponse proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateActorRolesResponse proto.InternalMessageInfo type MsgClaimVoucher struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` @@ -806,7 +498,7 @@ func (m *MsgClaimVoucher) Reset() { *m = MsgClaimVoucher{} } func (m *MsgClaimVoucher) String() string { return proto.CompactTextString(m) } func (*MsgClaimVoucher) ProtoMessage() {} func (*MsgClaimVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{12} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{8} } func (m *MsgClaimVoucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -856,7 +548,7 @@ func (m *MsgClaimVoucherResponse) Reset() { *m = MsgClaimVoucherResponse func (m *MsgClaimVoucherResponse) String() string { return proto.CompactTextString(m) } func (*MsgClaimVoucherResponse) ProtoMessage() {} func (*MsgClaimVoucherResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ab9bfdcab1d9b6fa, []int{13} + return fileDescriptor_ab9bfdcab1d9b6fa, []int{9} } func (m *MsgClaimVoucherResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -890,18 +582,11 @@ func init() { proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.permissions.v1beta1.MsgUpdateParamsResponse") proto.RegisterType((*MsgCreateNamespace)(nil), "injective.permissions.v1beta1.MsgCreateNamespace") proto.RegisterType((*MsgCreateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgCreateNamespaceResponse") - proto.RegisterType((*MsgDeleteNamespace)(nil), "injective.permissions.v1beta1.MsgDeleteNamespace") - proto.RegisterType((*MsgDeleteNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgDeleteNamespaceResponse") proto.RegisterType((*MsgUpdateNamespace)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace") - proto.RegisterType((*MsgUpdateNamespace_MsgSetWasmHook)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetWasmHook") - proto.RegisterType((*MsgUpdateNamespace_MsgSetMintsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetMintsPaused") - proto.RegisterType((*MsgUpdateNamespace_MsgSetSendsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetSendsPaused") - proto.RegisterType((*MsgUpdateNamespace_MsgSetBurnsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetBurnsPaused") + proto.RegisterType((*MsgUpdateNamespace_SetContractHook)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.SetContractHook") proto.RegisterType((*MsgUpdateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceResponse") - proto.RegisterType((*MsgUpdateNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRoles") - proto.RegisterType((*MsgUpdateNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRolesResponse") - proto.RegisterType((*MsgRevokeNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRoles") - proto.RegisterType((*MsgRevokeNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRolesResponse") + proto.RegisterType((*MsgUpdateActorRoles)(nil), "injective.permissions.v1beta1.MsgUpdateActorRoles") + proto.RegisterType((*MsgUpdateActorRolesResponse)(nil), "injective.permissions.v1beta1.MsgUpdateActorRolesResponse") proto.RegisterType((*MsgClaimVoucher)(nil), "injective.permissions.v1beta1.MsgClaimVoucher") proto.RegisterType((*MsgClaimVoucherResponse)(nil), "injective.permissions.v1beta1.MsgClaimVoucherResponse") } @@ -911,68 +596,63 @@ func init() { } var fileDescriptor_ab9bfdcab1d9b6fa = []byte{ - // 961 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4d, 0x6f, 0xe3, 0x44, - 0x18, 0xae, 0xb7, 0x1f, 0x34, 0xd3, 0xee, 0x96, 0x5a, 0x91, 0x9a, 0xf5, 0x82, 0x5b, 0xb2, 0x02, - 0x42, 0x56, 0xb5, 0x49, 0x57, 0xaa, 0x44, 0x0e, 0x08, 0x92, 0x3d, 0x80, 0xb4, 0x59, 0x05, 0x17, - 0x16, 0x09, 0x09, 0x59, 0xe3, 0x64, 0x70, 0x4c, 0x62, 0x8f, 0xe5, 0x71, 0x12, 0x7a, 0x5a, 0xc4, - 0x81, 0x03, 0x07, 0xc4, 0x91, 0x2b, 0xff, 0xa0, 0x07, 0xae, 0x70, 0xe2, 0xb0, 0xc7, 0x15, 0x27, - 0x4e, 0x2b, 0xd4, 0x1e, 0x7a, 0x47, 0xfc, 0x00, 0x34, 0x9e, 0x89, 0xed, 0x4c, 0xd2, 0xd8, 0xe9, - 0x6a, 0xb9, 0xb4, 0x79, 0xbf, 0x9f, 0xe7, 0xb1, 0xde, 0x19, 0x1b, 0xbc, 0xe5, 0x78, 0x5f, 0xa3, - 0x4e, 0xe8, 0x8c, 0x90, 0xee, 0xa3, 0xc0, 0x75, 0x08, 0x71, 0xb0, 0x47, 0xf4, 0x51, 0xcd, 0x42, - 0x21, 0xac, 0xe9, 0xe1, 0x37, 0x9a, 0x1f, 0xe0, 0x10, 0xcb, 0xaf, 0xc7, 0x79, 0x5a, 0x2a, 0x4f, - 0xe3, 0x79, 0x4a, 0xd1, 0xc6, 0x36, 0x8e, 0x32, 0x75, 0xfa, 0x8b, 0x15, 0x29, 0x6a, 0x07, 0x13, - 0x17, 0x13, 0xdd, 0x82, 0x04, 0xc5, 0x2d, 0x3b, 0xd8, 0xf1, 0x66, 0xe2, 0x5e, 0x3f, 0x8e, 0x53, - 0x83, 0xc7, 0xf7, 0x78, 0xdc, 0x25, 0xb6, 0x3e, 0xaa, 0xd1, 0x7f, 0x3c, 0x70, 0x9b, 0x05, 0x4c, - 0x36, 0x91, 0x19, 0x3c, 0x54, 0x5d, 0x4c, 0xc8, 0x87, 0x01, 0x74, 0x27, 0xb9, 0x7a, 0x46, 0x6e, - 0x8a, 0x28, 0x2b, 0xd8, 0x85, 0xae, 0xe3, 0x61, 0x3d, 0xfa, 0xcb, 0x5c, 0xe5, 0xdf, 0x25, 0xb0, - 0xd3, 0x22, 0xf6, 0x67, 0x7e, 0x17, 0x86, 0xa8, 0x1d, 0x75, 0x97, 0x8f, 0x41, 0x01, 0x0e, 0xc3, - 0x1e, 0x0e, 0x9c, 0xf0, 0xb4, 0x24, 0x1d, 0x48, 0x95, 0x42, 0xa3, 0xf4, 0xe7, 0xaf, 0x87, 0x45, - 0x0e, 0xf4, 0xc3, 0x6e, 0x37, 0x40, 0x84, 0x9c, 0x84, 0x81, 0xe3, 0xd9, 0x46, 0x92, 0x2a, 0x37, - 0xc1, 0x06, 0xc3, 0x57, 0xba, 0x71, 0x20, 0x55, 0xb6, 0x8e, 0xde, 0xd4, 0x16, 0xaa, 0xae, 0xb1, - 0x71, 0x8d, 0xb5, 0xa7, 0xcf, 0xf7, 0x57, 0x0c, 0x5e, 0x5a, 0xd7, 0xbe, 0xbb, 0x3c, 0xab, 0x26, - 0x4d, 0x7f, 0xb8, 0x3c, 0xab, 0xde, 0x49, 0xb3, 0x13, 0xc0, 0x96, 0x6f, 0x83, 0x3d, 0xc1, 0x65, - 0x20, 0xe2, 0x63, 0x8f, 0xa0, 0xf2, 0x6f, 0x12, 0x90, 0x5b, 0xc4, 0x6e, 0x06, 0x08, 0x86, 0xe8, - 0x11, 0x74, 0x11, 0xf1, 0x61, 0x07, 0xc9, 0xef, 0x80, 0x0d, 0x82, 0xbc, 0x2e, 0x0a, 0x38, 0xb7, - 0xdd, 0x7f, 0x9e, 0xef, 0xdf, 0x3c, 0x85, 0xee, 0xa0, 0x5e, 0x66, 0xfe, 0xb2, 0xc1, 0x13, 0xe4, - 0x87, 0xa0, 0xe0, 0x4d, 0xea, 0x38, 0xa9, 0x4a, 0x06, 0xa9, 0x78, 0x0e, 0xe7, 0x95, 0x34, 0x60, - 0xd4, 0x78, 0x6b, 0xca, 0x4b, 0x15, 0x78, 0x09, 0x40, 0xcb, 0xaf, 0x01, 0x65, 0xd6, 0x1b, 0xb3, - 0xfb, 0x99, 0xb1, 0x7b, 0x80, 0x06, 0xe8, 0x9a, 0xec, 0xde, 0x06, 0x3b, 0x31, 0x38, 0xb3, 0x8b, - 0x3c, 0xec, 0x46, 0x1c, 0x0b, 0xc6, 0xad, 0xd8, 0xfd, 0x80, 0x7a, 0x33, 0x81, 0x0b, 0x18, 0x38, - 0x70, 0xc1, 0x1b, 0x03, 0xff, 0x77, 0x3d, 0x02, 0xce, 0x1e, 0xd9, 0x4b, 0x05, 0x2e, 0x7f, 0x09, - 0x0a, 0x63, 0x48, 0x5c, 0xb3, 0x87, 0x71, 0xbf, 0xb4, 0x1a, 0x3d, 0xbf, 0x0f, 0x32, 0x9e, 0xdf, - 0x2c, 0x32, 0xea, 0x3a, 0x41, 0xe1, 0xe7, 0x90, 0xb8, 0x1f, 0x61, 0xdc, 0x37, 0x36, 0xc7, 0xfc, - 0x97, 0xfc, 0x15, 0xd8, 0x76, 0x1d, 0x2f, 0x24, 0xa6, 0x0f, 0x87, 0x04, 0x75, 0x4b, 0x6b, 0xd1, - 0x84, 0xe6, 0x75, 0x27, 0xb4, 0x68, 0xaf, 0x76, 0xd4, 0xca, 0xd8, 0x72, 0x13, 0x83, 0xce, 0xa1, - 0xcc, 0xe3, 0x39, 0xeb, 0x2f, 0x36, 0xe7, 0x84, 0xf6, 0x9a, 0xcc, 0x21, 0x89, 0x41, 0xe7, 0x58, - 0xc3, 0xc0, 0x8b, 0xe7, 0x6c, 0xbc, 0xd8, 0x9c, 0x06, 0xed, 0x35, 0x99, 0x63, 0x25, 0x86, 0x72, - 0x08, 0x6e, 0x4d, 0x6b, 0x2a, 0xdf, 0x01, 0x05, 0x0f, 0x8d, 0xcd, 0x11, 0x1c, 0x0c, 0x11, 0x7b, - 0xfe, 0xc6, 0xa6, 0x87, 0xc6, 0x8f, 0xa9, 0xad, 0xbc, 0x0b, 0x76, 0x67, 0x04, 0x9a, 0xad, 0xd8, - 0x9c, 0x57, 0x91, 0xa2, 0x9a, 0xb3, 0x22, 0x05, 0x7a, 0x61, 0x45, 0xe6, 0x52, 0x08, 0x9a, 0xf0, - 0xa5, 0x10, 0xbc, 0xf1, 0x52, 0xfc, 0x71, 0x23, 0x75, 0x8e, 0x25, 0x61, 0x3c, 0x40, 0xe4, 0xa5, - 0x6c, 0xc6, 0x23, 0xf0, 0x6a, 0x80, 0x07, 0xc8, 0x4c, 0x81, 0x2e, 0xad, 0x1e, 0xac, 0x56, 0xb6, - 0x8e, 0xee, 0x66, 0x3c, 0x6e, 0x8a, 0xc9, 0xd8, 0xa1, 0xc5, 0xed, 0x24, 0x2a, 0xb7, 0xc1, 0x4d, - 0xc8, 0xee, 0x05, 0x93, 0x86, 0x48, 0x69, 0x2d, 0x6a, 0x76, 0x2f, 0xa3, 0x19, 0xbf, 0x4b, 0x22, - 0x9e, 0xc6, 0x36, 0x4c, 0x59, 0xf5, 0xfb, 0x82, 0xbe, 0x77, 0x17, 0xeb, 0x1b, 0x15, 0x95, 0xdf, - 0x00, 0xfb, 0x57, 0x84, 0x62, 0xa5, 0xbf, 0x67, 0x4a, 0x1b, 0x68, 0x84, 0xfb, 0xff, 0x87, 0xd2, - 0x16, 0xd8, 0x9b, 0x52, 0xc6, 0x0c, 0xb1, 0x19, 0x44, 0xc3, 0xb9, 0xe0, 0x4b, 0x69, 0x54, 0x4c, - 0x6b, 0xf4, 0x29, 0x66, 0x2c, 0x32, 0xb5, 0x9a, 0x47, 0x96, 0x6b, 0x35, 0x2f, 0x14, 0x6b, 0xf5, - 0x24, 0x7a, 0x39, 0x68, 0x0e, 0xa0, 0xe3, 0x3e, 0xc6, 0xc3, 0x4e, 0x0f, 0x05, 0xcb, 0x48, 0x54, - 0x04, 0xeb, 0x69, 0x61, 0x98, 0x51, 0xbf, 0x27, 0x60, 0x15, 0x6f, 0xf7, 0xf4, 0x34, 0x7e, 0xbb, - 0xa7, 0x5d, 0x13, 0x6c, 0x47, 0xbf, 0xbc, 0x02, 0x56, 0x5b, 0xc4, 0x96, 0x47, 0x60, 0x7b, 0xea, - 0xed, 0x45, 0xcb, 0x7b, 0x5c, 0xb1, 0x7c, 0xe5, 0x78, 0xb9, 0xfc, 0xc9, 0x7c, 0xf9, 0x09, 0xd8, - 0x11, 0xdf, 0x2c, 0x6a, 0xd9, 0xad, 0x84, 0x12, 0xe5, 0xbd, 0xa5, 0x4b, 0xd2, 0x00, 0xc4, 0xcb, - 0x3f, 0x07, 0x00, 0xa1, 0x24, 0x0f, 0x80, 0x2b, 0x2e, 0x72, 0x0a, 0x40, 0xbc, 0xc4, 0x6b, 0x4b, - 0xdf, 0x15, 0x79, 0x00, 0x5c, 0x71, 0x68, 0xca, 0x3f, 0x4a, 0xa0, 0x38, 0xf7, 0xc4, 0x3c, 0x5e, - 0xbe, 0x27, 0xad, 0x53, 0xde, 0xbf, 0x5e, 0xdd, 0x14, 0xa0, 0xb9, 0x07, 0x4b, 0x0e, 0x40, 0xf3, - 0xea, 0xf2, 0x00, 0x5a, 0xb4, 0xc0, 0x74, 0x39, 0xa6, 0xb6, 0x37, 0xc7, 0x72, 0xa4, 0xf3, 0xf3, - 0x2c, 0xc7, 0xbc, 0xe5, 0x54, 0xd6, 0xbf, 0xbd, 0x3c, 0xab, 0x4a, 0x8d, 0xfe, 0xd3, 0x73, 0x55, - 0x7a, 0x76, 0xae, 0x4a, 0x7f, 0x9f, 0xab, 0xd2, 0x4f, 0x17, 0xea, 0xca, 0xb3, 0x0b, 0x75, 0xe5, - 0xaf, 0x0b, 0x75, 0xe5, 0x8b, 0x4f, 0x6c, 0x27, 0xec, 0x0d, 0x2d, 0xad, 0x83, 0x5d, 0xfd, 0xe3, - 0xc9, 0x88, 0x87, 0xd0, 0x22, 0xc9, 0x47, 0xcd, 0x61, 0x07, 0x07, 0x28, 0x6d, 0xf6, 0xa0, 0xe3, - 0xe9, 0x2e, 0xee, 0x0e, 0x07, 0x88, 0x4c, 0x7d, 0xf1, 0x84, 0xa7, 0x3e, 0x22, 0xd6, 0x46, 0xf4, - 0x45, 0x73, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0x97, 0x38, 0xd1, 0x14, 0x0e, 0x00, - 0x00, + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xce, 0x36, 0x75, 0xc0, 0xd3, 0x04, 0xb7, 0x43, 0x50, 0x37, 0x0e, 0x75, 0x22, 0x23, 0x50, + 0xea, 0xaa, 0xbb, 0x72, 0x90, 0x22, 0xe1, 0x5b, 0xe2, 0x0b, 0x48, 0x4d, 0x29, 0x9b, 0x92, 0x03, + 0x42, 0xb2, 0xc6, 0xbb, 0x8f, 0xf5, 0x60, 0xef, 0xce, 0x6a, 0x66, 0xec, 0xe2, 0x53, 0x51, 0xb9, + 0x21, 0x0e, 0xfc, 0x29, 0x39, 0x70, 0x85, 0x73, 0x8f, 0x15, 0x27, 0x4e, 0x15, 0x4a, 0x0e, 0xb9, + 0xf3, 0x17, 0x20, 0xcf, 0x8c, 0xbd, 0x9b, 0x8d, 0xa9, 0xd7, 0xf4, 0x92, 0xf8, 0xfd, 0xfa, 0xde, + 0xf7, 0xbd, 0x79, 0x3b, 0xbb, 0xe8, 0x13, 0x1a, 0x7f, 0x0f, 0xbe, 0xa4, 0x23, 0x70, 0x13, 0xe0, + 0x11, 0x15, 0x82, 0xb2, 0x58, 0xb8, 0xa3, 0x66, 0x17, 0x24, 0x69, 0xba, 0xf2, 0x07, 0x27, 0xe1, + 0x4c, 0x32, 0x7c, 0x6f, 0x96, 0xe7, 0x64, 0xf2, 0x1c, 0x93, 0x57, 0xdd, 0x0c, 0x59, 0xc8, 0x54, + 0xa6, 0x3b, 0xf9, 0xa5, 0x8b, 0xaa, 0x35, 0x9f, 0x89, 0x88, 0x09, 0xb7, 0x4b, 0x04, 0xcc, 0x20, + 0x7d, 0x46, 0xe3, 0x6b, 0xf1, 0xb8, 0x3f, 0x8b, 0x4f, 0x0c, 0x13, 0xbf, 0x6b, 0xe2, 0x91, 0x08, + 0xdd, 0x51, 0x73, 0xf2, 0xcf, 0x04, 0xb6, 0x74, 0xa0, 0xa3, 0x3b, 0x6a, 0xc3, 0x84, 0x1a, 0x6f, + 0x16, 0x94, 0x10, 0x4e, 0xa2, 0x69, 0xae, 0xbb, 0x20, 0x37, 0x23, 0x54, 0x17, 0xdc, 0x21, 0x11, + 0x8d, 0x99, 0xab, 0xfe, 0x6a, 0x57, 0xfd, 0x0f, 0x0b, 0x55, 0x8e, 0x45, 0xf8, 0x75, 0x12, 0x10, + 0x09, 0x4f, 0x14, 0x3a, 0x3e, 0x40, 0x65, 0x32, 0x94, 0x3d, 0xc6, 0xa9, 0x1c, 0xdb, 0xd6, 0xae, + 0xb5, 0x57, 0x3e, 0xb2, 0xff, 0xfc, 0xed, 0xe1, 0xa6, 0x21, 0x7a, 0x18, 0x04, 0x1c, 0x84, 0x38, + 0x91, 0x9c, 0xc6, 0xa1, 0x97, 0xa6, 0xe2, 0x36, 0x5a, 0xd3, 0xfc, 0xec, 0x1b, 0xbb, 0xd6, 0xde, + 0xad, 0xfd, 0x8f, 0x9d, 0x37, 0x4e, 0xdd, 0xd1, 0xed, 0x8e, 0x6e, 0xbe, 0x7c, 0xbd, 0xb3, 0xe2, + 0x99, 0xd2, 0x96, 0xf3, 0xe2, 0xf2, 0xac, 0x91, 0x82, 0xfe, 0x7c, 0x79, 0xd6, 0xd8, 0xce, 0xaa, + 0xcb, 0x91, 0xad, 0x6f, 0xa1, 0xbb, 0x39, 0x97, 0x07, 0x22, 0x61, 0xb1, 0x80, 0xfa, 0xef, 0x16, + 0xc2, 0xc7, 0x22, 0x6c, 0x73, 0x20, 0x12, 0x1e, 0x93, 0x08, 0x44, 0x42, 0x7c, 0xc0, 0xf7, 0xd1, + 0x9a, 0x80, 0x38, 0x00, 0x6e, 0xb4, 0xdd, 0xf9, 0xe7, 0xf5, 0xce, 0xc6, 0x98, 0x44, 0x83, 0x56, + 0x5d, 0xfb, 0xeb, 0x9e, 0x49, 0xc0, 0x8f, 0x50, 0x39, 0x9e, 0xd6, 0x19, 0x51, 0x7b, 0x0b, 0x44, + 0xcd, 0xfa, 0x18, 0x5d, 0x29, 0x80, 0x96, 0x66, 0xa0, 0x27, 0xba, 0x6a, 0x39, 0x5d, 0x39, 0xa2, + 0xf5, 0x0f, 0x51, 0xf5, 0xba, 0x77, 0xa6, 0xee, 0x97, 0x92, 0x52, 0xa7, 0x95, 0xff, 0x2f, 0x75, + 0x9b, 0xa8, 0x14, 0x40, 0xcc, 0x22, 0xa5, 0xac, 0xec, 0x69, 0x03, 0x7f, 0x87, 0x36, 0x7c, 0x16, + 0x4b, 0x4e, 0x7c, 0xd9, 0xe9, 0x31, 0xd6, 0xb7, 0x57, 0x95, 0xee, 0xc3, 0x05, 0xba, 0xaf, 0x53, + 0x71, 0x4e, 0x40, 0xb6, 0x0d, 0xd2, 0xe7, 0x8c, 0xf5, 0xbd, 0x75, 0x3f, 0x63, 0xe1, 0xc7, 0xe8, + 0x36, 0x67, 0x03, 0xe8, 0x64, 0xc0, 0xec, 0x9b, 0xbb, 0xab, 0x7b, 0xb7, 0xf6, 0x3f, 0x5a, 0xd0, + 0xca, 0x63, 0x03, 0xf0, 0x2a, 0x93, 0xe2, 0x27, 0x69, 0x14, 0x7f, 0x89, 0x36, 0x14, 0x5e, 0x44, + 0x62, 0x12, 0x02, 0x17, 0x76, 0x49, 0x81, 0x35, 0x0a, 0x80, 0x1d, 0xeb, 0x12, 0x6f, 0x9d, 0xa7, + 0x86, 0xc0, 0x4f, 0x51, 0x25, 0x61, 0x03, 0xea, 0x8f, 0x3b, 0x42, 0x12, 0x39, 0x14, 0x20, 0xec, + 0x35, 0x05, 0xf9, 0x60, 0xd1, 0x5e, 0xab, 0xaa, 0x13, 0x55, 0xe4, 0xbd, 0x97, 0x64, 0x2c, 0x10, + 0x78, 0x84, 0xb6, 0x0d, 0xaa, 0x21, 0xda, 0xf1, 0x49, 0x42, 0xba, 0x74, 0x40, 0x25, 0x05, 0x61, + 0xbf, 0xa3, 0x3a, 0x1c, 0x14, 0xea, 0x60, 0x98, 0xb6, 0xa7, 0xf5, 0x63, 0x6f, 0x2b, 0x99, 0x1b, + 0xa0, 0x20, 0xaa, 0x0e, 0xaa, 0xe4, 0xce, 0x03, 0x6f, 0xa3, 0x72, 0x0c, 0xcf, 0x3a, 0x23, 0x32, + 0x18, 0x82, 0xde, 0x16, 0xef, 0xdd, 0x18, 0x9e, 0x9d, 0x4e, 0xec, 0x85, 0xcb, 0x9a, 0x3b, 0x6c, + 0xb3, 0xac, 0x39, 0x6f, 0xfa, 0x28, 0xde, 0x40, 0xef, 0xcf, 0xc2, 0x87, 0xbe, 0x64, 0x7c, 0x32, + 0x77, 0xf1, 0xf6, 0xdb, 0x7a, 0x8a, 0xb0, 0x3a, 0x75, 0x32, 0xc1, 0x14, 0x1d, 0xc9, 0x3a, 0x24, + 0x08, 0xec, 0x55, 0x35, 0xc5, 0xfb, 0x05, 0x8e, 0x5e, 0x71, 0x11, 0x7a, 0x9b, 0xf4, 0xef, 0xa7, + 0xec, 0x30, 0x08, 0xf0, 0xb7, 0xe8, 0x83, 0x1c, 0x2e, 0x87, 0x11, 0xeb, 0x83, 0xd9, 0xaa, 0x25, + 0xa0, 0x71, 0x16, 0xda, 0x53, 0x20, 0x2d, 0x37, 0x37, 0xdc, 0x9d, 0xb9, 0xc3, 0x4d, 0xe7, 0x54, + 0xbf, 0x87, 0xb6, 0xe7, 0xb8, 0x67, 0xe3, 0x7d, 0xae, 0x2e, 0xf1, 0xf6, 0x80, 0xd0, 0xe8, 0x94, + 0x0d, 0xfd, 0x1e, 0xf0, 0xb7, 0x9e, 0x6c, 0xeb, 0x41, 0x8e, 0x63, 0xfe, 0x16, 0xce, 0x76, 0x33, + 0xb7, 0x70, 0xd6, 0x35, 0xe5, 0xb6, 0xff, 0x53, 0x09, 0xad, 0x1e, 0x8b, 0x10, 0x8f, 0xd0, 0xfa, + 0x95, 0xb7, 0x8c, 0x53, 0xf4, 0x42, 0xd1, 0xf9, 0xd5, 0x83, 0xe5, 0xf2, 0xa7, 0xfd, 0xf1, 0x73, + 0x54, 0xc9, 0xbf, 0x01, 0x9a, 0x8b, 0xa1, 0x72, 0x25, 0xd5, 0xcf, 0x96, 0x2e, 0xc9, 0x12, 0xc8, + 0x5f, 0xd2, 0xcd, 0xa5, 0x2f, 0xd3, 0x22, 0x04, 0xfe, 0xe3, 0xe1, 0xc3, 0x2f, 0x2c, 0x74, 0xfb, + 0xda, 0x93, 0xb7, 0x5f, 0x14, 0x2f, 0xad, 0xa9, 0xb6, 0x96, 0xaf, 0x99, 0x91, 0x18, 0xa1, 0xf5, + 0x2b, 0xfb, 0x59, 0xe0, 0xf8, 0xb3, 0xf9, 0x45, 0x8e, 0x7f, 0xde, 0xfa, 0x55, 0x4b, 0x3f, 0x5e, + 0x9e, 0x35, 0xac, 0xa3, 0xfe, 0xcb, 0xf3, 0x9a, 0xf5, 0xea, 0xbc, 0x66, 0xfd, 0x7d, 0x5e, 0xb3, + 0x7e, 0xbd, 0xa8, 0xad, 0xbc, 0xba, 0xa8, 0xad, 0xfc, 0x75, 0x51, 0x5b, 0xf9, 0xe6, 0xab, 0x90, + 0xca, 0xde, 0xb0, 0xeb, 0xf8, 0x2c, 0x72, 0xbf, 0x98, 0xb6, 0x78, 0x44, 0xba, 0x22, 0xfd, 0xbc, + 0x7a, 0xe8, 0x33, 0x0e, 0x59, 0xb3, 0x47, 0x68, 0xec, 0x46, 0x2c, 0x18, 0x0e, 0x40, 0x5c, 0xf9, + 0xf6, 0x92, 0xe3, 0x04, 0x44, 0x77, 0x4d, 0x7d, 0x5b, 0x7d, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x89, 0x70, 0x57, 0xeb, 0x9e, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -989,10 +669,8 @@ const _ = grpc.SupportPackageIsVersion4 type MsgClient interface { UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) CreateNamespace(ctx context.Context, in *MsgCreateNamespace, opts ...grpc.CallOption) (*MsgCreateNamespaceResponse, error) - DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) - UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) - RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) + UpdateActorRoles(ctx context.Context, in *MsgUpdateActorRoles, opts ...grpc.CallOption) (*MsgUpdateActorRolesResponse, error) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) } @@ -1022,15 +700,6 @@ func (c *msgClient) CreateNamespace(ctx context.Context, in *MsgCreateNamespace, return out, nil } -func (c *msgClient) DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) { - out := new(MsgDeleteNamespaceResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/DeleteNamespace", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) { out := new(MsgUpdateNamespaceResponse) err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespace", in, out, opts...) @@ -1040,18 +709,9 @@ func (c *msgClient) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, return out, nil } -func (c *msgClient) UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) { - out := new(MsgUpdateNamespaceRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *msgClient) RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) { - out := new(MsgRevokeNamespaceRolesResponse) - err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", in, out, opts...) +func (c *msgClient) UpdateActorRoles(ctx context.Context, in *MsgUpdateActorRoles, opts ...grpc.CallOption) (*MsgUpdateActorRolesResponse, error) { + out := new(MsgUpdateActorRolesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateActorRoles", in, out, opts...) if err != nil { return nil, err } @@ -1071,10 +731,8 @@ func (c *msgClient) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts type MsgServer interface { UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) CreateNamespace(context.Context, *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) - DeleteNamespace(context.Context, *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) UpdateNamespace(context.Context, *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) - UpdateNamespaceRoles(context.Context, *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) - RevokeNamespaceRoles(context.Context, *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) + UpdateActorRoles(context.Context, *MsgUpdateActorRoles) (*MsgUpdateActorRolesResponse, error) ClaimVoucher(context.Context, *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) } @@ -1088,17 +746,11 @@ func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateP func (*UnimplementedMsgServer) CreateNamespace(ctx context.Context, req *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented") } -func (*UnimplementedMsgServer) DeleteNamespace(ctx context.Context, req *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteNamespace not implemented") -} func (*UnimplementedMsgServer) UpdateNamespace(ctx context.Context, req *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespace not implemented") } -func (*UnimplementedMsgServer) UpdateNamespaceRoles(ctx context.Context, req *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespaceRoles not implemented") -} -func (*UnimplementedMsgServer) RevokeNamespaceRoles(ctx context.Context, req *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RevokeNamespaceRoles not implemented") +func (*UnimplementedMsgServer) UpdateActorRoles(ctx context.Context, req *MsgUpdateActorRoles) (*MsgUpdateActorRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateActorRoles not implemented") } func (*UnimplementedMsgServer) ClaimVoucher(ctx context.Context, req *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ClaimVoucher not implemented") @@ -1144,24 +796,6 @@ func _Msg_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _Msg_DeleteNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgDeleteNamespace) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).DeleteNamespace(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/DeleteNamespace", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).DeleteNamespace(ctx, req.(*MsgDeleteNamespace)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateNamespace) if err := dec(in); err != nil { @@ -1180,38 +814,20 @@ func _Msg_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _Msg_UpdateNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateNamespaceRoles) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).UpdateNamespaceRoles(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateNamespaceRoles(ctx, req.(*MsgUpdateNamespaceRoles)) - } - return interceptor(ctx, in, info, handler) -} - -func _Msg_RevokeNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgRevokeNamespaceRoles) +func _Msg_UpdateActorRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateActorRoles) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).RevokeNamespaceRoles(ctx, in) + return srv.(MsgServer).UpdateActorRoles(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", + FullMethod: "/injective.permissions.v1beta1.Msg/UpdateActorRoles", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).RevokeNamespaceRoles(ctx, req.(*MsgRevokeNamespaceRoles)) + return srv.(MsgServer).UpdateActorRoles(ctx, req.(*MsgUpdateActorRoles)) } return interceptor(ctx, in, info, handler) } @@ -1246,21 +862,13 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "CreateNamespace", Handler: _Msg_CreateNamespace_Handler, }, - { - MethodName: "DeleteNamespace", - Handler: _Msg_DeleteNamespace_Handler, - }, { MethodName: "UpdateNamespace", Handler: _Msg_UpdateNamespace_Handler, }, { - MethodName: "UpdateNamespaceRoles", - Handler: _Msg_UpdateNamespaceRoles_Handler, - }, - { - MethodName: "RevokeNamespaceRoles", - Handler: _Msg_RevokeNamespaceRoles_Handler, + MethodName: "UpdateActorRoles", + Handler: _Msg_UpdateActorRoles_Handler, }, { MethodName: "ClaimVoucher", @@ -1397,7 +1005,7 @@ func (m *MsgCreateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *MsgDeleteNamespace) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateNamespace) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1407,115 +1015,75 @@ func (m *MsgDeleteNamespace) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgDeleteNamespace) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgDeleteNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) - i-- - dAtA[i] = 0x12 - } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgDeleteNamespaceResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgDeleteNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgDeleteNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err + if len(m.PolicyManagerCapabilities) > 0 { + for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyManagerCapabilities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.BurnsPaused != nil { - { - size, err := m.BurnsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.PolicyStatuses) > 0 { + for iNdEx := len(m.PolicyStatuses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PolicyStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 } - i-- - dAtA[i] = 0x32 } - if m.SendsPaused != nil { - { - size, err := m.SendsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RoleManagers) > 0 { + for iNdEx := len(m.RoleManagers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RoleManagers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x2a } - if m.MintsPaused != nil { - { - size, err := m.MintsPaused.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 } - i-- - dAtA[i] = 0x22 } - if m.WasmHook != nil { + if m.ContractHook != nil { { - size, err := m.WasmHook.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ContractHook.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1525,10 +1093,10 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) i-- dAtA[i] = 0x12 } @@ -1542,7 +1110,7 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MsgUpdateNamespace_MsgSetWasmHook) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateNamespace_SetContractHook) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1552,12 +1120,12 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace_SetContractHook) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateNamespace_SetContractHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1572,105 +1140,6 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NewValue { - i-- - if m.NewValue { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - func (m *MsgUpdateNamespaceResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1694,7 +1163,7 @@ func (m *MsgUpdateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } -func (m *MsgUpdateNamespaceRoles) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateActorRoles) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1704,34 +1173,20 @@ func (m *MsgUpdateNamespaceRoles) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRoles) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.AddressRoles) > 0 { - for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if len(m.RolePermissions) > 0 { - for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + if len(m.RoleActorsToRevoke) > 0 { + for iNdEx := len(m.RoleActorsToRevoke) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RoleActorsToRevoke[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1739,73 +1194,13 @@ func (m *MsgUpdateNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintTx(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x2a } } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) - i-- - dAtA[i] = 0x12 - } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgUpdateNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgUpdateNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgUpdateNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *MsgRevokeNamespaceRoles) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgRevokeNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.AddressRolesToRevoke) > 0 { - for iNdEx := len(m.AddressRolesToRevoke) - 1; iNdEx >= 0; iNdEx-- { + if len(m.RoleActorsToAdd) > 0 { + for iNdEx := len(m.RoleActorsToAdd) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.AddressRolesToRevoke[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RoleActorsToAdd[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1816,10 +1211,10 @@ func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) dAtA[i] = 0x1a } } - if len(m.NamespaceDenom) > 0 { - i -= len(m.NamespaceDenom) - copy(dAtA[i:], m.NamespaceDenom) - i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) i-- dAtA[i] = 0x12 } @@ -1833,7 +1228,7 @@ func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *MsgRevokeNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateActorRolesResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -1843,12 +1238,12 @@ func (m *MsgRevokeNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgRevokeNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRolesResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgRevokeNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateActorRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -1975,7 +1370,7 @@ func (m *MsgCreateNamespaceResponse) Size() (n int) { return n } -func (m *MsgDeleteNamespace) Size() (n int) { +func (m *MsgUpdateNamespace) Size() (n int) { if m == nil { return 0 } @@ -1985,56 +1380,42 @@ func (m *MsgDeleteNamespace) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.NamespaceDenom) + l = len(m.Denom) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - return n -} - -func (m *MsgDeleteNamespaceResponse) Size() (n int) { - if m == nil { - return 0 + if m.ContractHook != nil { + l = m.ContractHook.Size() + n += 1 + l + sovTx(uint64(l)) } - var l int - _ = l - return n -} - -func (m *MsgUpdateNamespace) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.NamespaceDenom) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if m.WasmHook != nil { - l = m.WasmHook.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.MintsPaused != nil { - l = m.MintsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.RoleManagers) > 0 { + for _, e := range m.RoleManagers { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.SendsPaused != nil { - l = m.SendsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.PolicyStatuses) > 0 { + for _, e := range m.PolicyStatuses { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } - if m.BurnsPaused != nil { - l = m.BurnsPaused.Size() - n += 1 + l + sovTx(uint64(l)) + if len(m.PolicyManagerCapabilities) > 0 { + for _, e := range m.PolicyManagerCapabilities { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } } return n } -func (m *MsgUpdateNamespace_MsgSetWasmHook) Size() (n int) { +func (m *MsgUpdateNamespace_SetContractHook) Size() (n int) { if m == nil { return 0 } @@ -2047,42 +1428,6 @@ func (m *MsgUpdateNamespace_MsgSetWasmHook) Size() (n int) { return n } -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NewValue { - n += 2 - } - return n -} - func (m *MsgUpdateNamespaceResponse) Size() (n int) { if m == nil { return 0 @@ -2092,7 +1437,7 @@ func (m *MsgUpdateNamespaceResponse) Size() (n int) { return n } -func (m *MsgUpdateNamespaceRoles) Size() (n int) { +func (m *MsgUpdateActorRoles) Size() (n int) { if m == nil { return 0 } @@ -2102,50 +1447,18 @@ func (m *MsgUpdateNamespaceRoles) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.NamespaceDenom) + l = len(m.Denom) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - if len(m.RolePermissions) > 0 { - for _, e := range m.RolePermissions { - l = e.Size() - n += 1 + l + sovTx(uint64(l)) - } - } - if len(m.AddressRoles) > 0 { - for _, e := range m.AddressRoles { + if len(m.RoleActorsToAdd) > 0 { + for _, e := range m.RoleActorsToAdd { l = e.Size() n += 1 + l + sovTx(uint64(l)) } } - return n -} - -func (m *MsgUpdateNamespaceRolesResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *MsgRevokeNamespaceRoles) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.NamespaceDenom) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if len(m.AddressRolesToRevoke) > 0 { - for _, e := range m.AddressRolesToRevoke { + if len(m.RoleActorsToRevoke) > 0 { + for _, e := range m.RoleActorsToRevoke { l = e.Size() n += 1 + l + sovTx(uint64(l)) } @@ -2153,7 +1466,7 @@ func (m *MsgRevokeNamespaceRoles) Size() (n int) { return n } -func (m *MsgRevokeNamespaceRolesResponse) Size() (n int) { +func (m *MsgUpdateActorRolesResponse) Size() (n int) { if m == nil { return 0 } @@ -2413,795 +1726,18 @@ func (m *MsgCreateNamespace) Unmarshal(dAtA []byte) error { } postIndex := iNdEx + intStringLen if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgCreateNamespaceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgCreateNamespaceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgDeleteNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgDeleteNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDeleteNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgDeleteNamespaceResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgDeleteNamespaceResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDeleteNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.WasmHook == nil { - m.WasmHook = &MsgUpdateNamespace_MsgSetWasmHook{} - } - if err := m.WasmHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MintsPaused == nil { - m.MintsPaused = &MsgUpdateNamespace_MsgSetMintsPaused{} - } - if err := m.MintsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SendsPaused == nil { - m.SendsPaused = &MsgUpdateNamespace_MsgSetSendsPaused{} - } - if err := m.SendsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.BurnsPaused == nil { - m.BurnsPaused = &MsgUpdateNamespace_MsgSetBurnsPaused{} - } - if err := m.BurnsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetWasmHook) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetWasmHook: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetWasmHook: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NewValue = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetMintsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetMintsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetMintsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NewValue = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetSendsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetSendsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetSendsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NewValue = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + return ErrInvalidLengthTx } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetBurnsPaused: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetBurnsPaused: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -3211,12 +1747,25 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.NewValue = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -3238,7 +1787,7 @@ func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCreateNamespaceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3261,10 +1810,10 @@ func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateNamespaceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -3288,7 +1837,7 @@ func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3311,10 +1860,10 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceRoles: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateNamespace: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateNamespace: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3351,7 +1900,7 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3379,9 +1928,45 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ContractHook == nil { + m.ContractHook = &MsgUpdateNamespace_SetContractHook{} + } + if err := m.ContractHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) } @@ -3415,9 +2000,77 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleManagers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleManagers = append(m.RoleManagers, &RoleManager{}) + if err := m.RoleManagers[len(m.RoleManagers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PolicyStatuses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PolicyStatuses = append(m.PolicyStatuses, &PolicyStatus{}) + if err := m.PolicyStatuses[len(m.PolicyStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PolicyManagerCapabilities", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3444,10 +2097,92 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) - if err := m.AddressRoles[len(m.AddressRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PolicyManagerCapabilities = append(m.PolicyManagerCapabilities, &PolicyManagerCapability{}) + if err := m.PolicyManagerCapabilities[len(m.PolicyManagerCapabilities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { return err } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateNamespace_SetContractHook) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetContractHook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetContractHook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NewValue = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3470,7 +2205,7 @@ func (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3493,10 +2228,10 @@ func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateNamespaceRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateNamespaceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateNamespaceRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateNamespaceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -3520,7 +2255,7 @@ func (m *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateActorRoles) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3543,10 +2278,10 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeNamespaceRoles: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateActorRoles: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeNamespaceRoles: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateActorRoles: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -3583,7 +2318,7 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NamespaceDenom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -3611,11 +2346,45 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AddressRolesToRevoke", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RoleActorsToAdd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleActorsToAdd = append(m.RoleActorsToAdd, &RoleActors{}) + if err := m.RoleActorsToAdd[len(m.RoleActorsToAdd)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleActorsToRevoke", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3642,8 +2411,8 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.AddressRolesToRevoke = append(m.AddressRolesToRevoke, &AddressRoles{}) - if err := m.AddressRolesToRevoke[len(m.AddressRolesToRevoke)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.RoleActorsToRevoke = append(m.RoleActorsToRevoke, &RoleActors{}) + if err := m.RoleActorsToRevoke[len(m.RoleActorsToRevoke)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3668,7 +2437,7 @@ func (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeNamespaceRolesResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateActorRolesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3691,10 +2460,10 @@ func (m *MsgRevokeNamespaceRolesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeNamespaceRolesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateActorRolesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeNamespaceRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateActorRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/chain/permissions/types/types.go b/chain/permissions/types/types.go deleted file mode 100644 index 12a6b08f..00000000 --- a/chain/permissions/types/types.go +++ /dev/null @@ -1,156 +0,0 @@ -package types - -import ( - "encoding/json" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - - tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" -) - -const ( - EVERYONE = "EVERYONE" - MaxPerm = uint32(Action_MINT) | uint32(Action_RECEIVE) | uint32(Action_BURN) -) - -type WasmHookMsg struct { - From sdk.AccAddress `json:"from_address"` - To sdk.AccAddress `json:"to_address"` - Action string `json:"action"` - Amounts sdk.Coins `json:"amounts"` -} - -func NewWasmHookMsg(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) WasmHookMsg { - return WasmHookMsg{ - From: fromAddr, - To: toAddr, - Action: action.String(), - Amounts: sdk.NewCoins(amount), - } -} - -func GetWasmHookMsgBytes(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) ([]byte, error) { - wasmHookMsg := struct { - SendRestriction WasmHookMsg `json:"send_restriction"` - }{NewWasmHookMsg(fromAddr, toAddr, action, amount)} - - bz, err := json.Marshal(wasmHookMsg) - if err != nil { - return nil, err - } - - return bz, nil -} - -func (n *Namespace) Validate() error { - if err := n.ValidateBasicParams(); err != nil { - return err - } - - if err := n.ValidateEveryoneRole(); err != nil { - return err - } - - if err := n.ValidateRoles(false); err != nil { - return err - } - - return nil -} - -func (n *Namespace) ValidateBasicParams() error { - if _, _, err := tftypes.DeconstructDenom(n.Denom); err != nil { - return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") - } - - // existing wasm hook contract - if n.WasmHook != "" { - if _, err := sdk.AccAddressFromBech32(n.WasmHook); err != nil { - return ErrInvalidWasmHook - } - } - - return nil -} - -func (n *Namespace) ValidateRoles(isForUpdate bool) error { - // role_permissions - foundRoles := make(map[string]struct{}, len(n.RolePermissions)) - for _, rolePerm := range n.RolePermissions { - if _, ok := foundRoles[rolePerm.Role]; ok { - return errors.Wrapf(ErrInvalidPermission, "permissions for the role %s set multiple times?", rolePerm.Role) - } - if rolePerm.Permissions > MaxPerm { - return errors.Wrapf(ErrInvalidPermission, "permissions %d for the role %s is bigger than maximum expected %d", rolePerm.Permissions, rolePerm.Role, MaxPerm) - } - foundRoles[rolePerm.Role] = struct{}{} - } - - // address_roles - foundAddresses := make(map[string]struct{}, len(n.AddressRoles)) - for _, addrRoles := range n.AddressRoles { - if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { - return errors.Wrapf(err, "invalid address %s", addrRoles.Address) - } - if _, ok := foundAddresses[addrRoles.Address]; ok { - return errors.Wrapf(ErrInvalidRole, "address %s is assigned new roles multiple times?", addrRoles.Address) - } - for _, role := range addrRoles.Roles { - _, found := foundRoles[role] - if !isForUpdate && !found { - return errors.Wrapf(ErrUnknownRole, "role %s has no defined permissions", role) - } - if role == EVERYONE { - return errors.Wrapf(ErrInvalidRole, "role %s should not be explicitly attached to address, you need to remove address from the list completely instead", EVERYONE) - } - } - foundAddresses[addrRoles.Address] = struct{}{} - } - - return nil -} - -func (n *Namespace) ValidateEveryoneRole() error { - // role_permissions - for _, rolePerm := range n.RolePermissions { - if rolePerm.Role == EVERYONE { - return nil - } - } - - return errors.Wrapf(ErrInvalidPermission, "permissions for role %s should be explicitly set", EVERYONE) -} - -func (n *Namespace) CheckActionValidity(action Action) error { - // check that action is not paused - switch action { - case Action_MINT: - if n.MintsPaused { - return errors.Wrap(ErrRestrictedAction, "mints paused") - } - case Action_RECEIVE: - if n.SendsPaused { - return errors.Wrap(ErrRestrictedAction, "sends paused") - } - case Action_BURN: - if n.BurnsPaused { - return errors.Wrap(ErrRestrictedAction, "burns paused") - } - } - return nil -} - -func (a Action) DeriveActor(fromAddr, toAddr sdk.AccAddress) sdk.AccAddress { - switch a { - case Action_MINT, Action_RECEIVE: - return toAddr - case Action_BURN: - return fromAddr - } - return fromAddr -} - -func NewEmptyVoucher(denom string) sdk.Coin { - return sdk.NewInt64Coin(denom, 0) -} diff --git a/chain/stream/types/query.pb.go b/chain/stream/types/query.pb.go index be31fd77..73d96e9e 100644 --- a/chain/stream/types/query.pb.go +++ b/chain/stream/types/query.pb.go @@ -581,7 +581,7 @@ func (m *SubaccountDeposit) GetDeposit() types.Deposit { type SpotOrderUpdate struct { Status OrderUpdateStatus `protobuf:"varint,1,opt,name=status,proto3,enum=injective.stream.v1beta1.OrderUpdateStatus" json:"status,omitempty"` - OrderHash []byte `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` Order *SpotOrder `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` } @@ -626,11 +626,11 @@ func (m *SpotOrderUpdate) GetStatus() OrderUpdateStatus { return OrderUpdateStatus_Unspecified } -func (m *SpotOrderUpdate) GetOrderHash() []byte { +func (m *SpotOrderUpdate) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *SpotOrderUpdate) GetCid() string { @@ -701,7 +701,7 @@ func (m *SpotOrder) GetOrder() types.SpotLimitOrder { type DerivativeOrderUpdate struct { Status OrderUpdateStatus `protobuf:"varint,1,opt,name=status,proto3,enum=injective.stream.v1beta1.OrderUpdateStatus" json:"status,omitempty"` - OrderHash []byte `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` Order *DerivativeOrder `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` } @@ -746,11 +746,11 @@ func (m *DerivativeOrderUpdate) GetStatus() OrderUpdateStatus { return OrderUpdateStatus_Unspecified } -func (m *DerivativeOrderUpdate) GetOrderHash() []byte { +func (m *DerivativeOrderUpdate) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *DerivativeOrderUpdate) GetCid() string { @@ -953,7 +953,7 @@ type SpotTrade struct { // bytes32 subaccount ID that executed the trade SubaccountId string `protobuf:"bytes,6,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` - OrderHash []byte `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderHash string `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` @@ -1020,11 +1020,11 @@ func (m *SpotTrade) GetSubaccountId() string { return "" } -func (m *SpotTrade) GetOrderHash() []byte { +func (m *SpotTrade) GetOrderHash() string { if m != nil { return m.OrderHash } - return nil + return "" } func (m *SpotTrade) GetFeeRecipientAddress() string { @@ -1521,110 +1521,110 @@ func init() { } var fileDescriptor_e23b7dcfb2fbc9c7 = []byte{ - // 1640 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x16, 0xb6, 0x2c, 0x5b, 0x16, 0x8f, 0x64, 0x5b, 0x9e, 0x38, 0x06, 0xe3, 0xdc, 0x6b, 0x27, 0x74, - 0x72, 0x63, 0xe7, 0x47, 0x72, 0x7c, 0x71, 0x81, 0x5b, 0x74, 0x91, 0x44, 0x76, 0x83, 0x38, 0x70, - 0xd0, 0x80, 0x76, 0x5a, 0x20, 0x68, 0x4a, 0x50, 0xe4, 0x48, 0x9a, 0x4a, 0x22, 0x65, 0x0e, 0x69, - 0x44, 0x4f, 0xd0, 0xae, 0x8a, 0x6c, 0xbb, 0xec, 0xb6, 0x8b, 0x3e, 0x44, 0xbb, 0xc9, 0xaa, 0xc8, - 0xb2, 0x28, 0x8a, 0xb4, 0x48, 0x5e, 0xa4, 0x98, 0x1f, 0x52, 0x24, 0x25, 0x4b, 0x72, 0x9a, 0x22, - 0x2b, 0x91, 0xa3, 0x73, 0xbe, 0x6f, 0xce, 0x99, 0x39, 0xdf, 0x1c, 0x0e, 0x5c, 0x21, 0xce, 0x57, - 0xd8, 0xf2, 0xc9, 0x09, 0xae, 0x50, 0xdf, 0xc3, 0x66, 0xa7, 0x72, 0x72, 0xbb, 0x86, 0x7d, 0xf3, - 0x76, 0xe5, 0x38, 0xc0, 0x5e, 0xaf, 0xdc, 0xf5, 0x5c, 0xdf, 0x45, 0x6a, 0x64, 0x55, 0x16, 0x56, - 0x65, 0x69, 0xb5, 0xba, 0x66, 0xb9, 0xb4, 0xe3, 0xd2, 0x4a, 0xcd, 0xa4, 0x38, 0x72, 0xb5, 0x5c, - 0xe2, 0x08, 0xcf, 0xd5, 0xe5, 0x86, 0xdb, 0x70, 0xf9, 0x63, 0x85, 0x3d, 0xc9, 0xd1, 0x6b, 0x7d, - 0x56, 0xfc, 0xdc, 0x6a, 0x9a, 0x4e, 0xa3, 0xef, 0x8c, 0x4f, 0xb0, 0xe3, 0x53, 0x69, 0xb8, 0x35, - 0xca, 0x50, 0x0e, 0x08, 0x53, 0xed, 0xdb, 0x3c, 0xcc, 0x1f, 0xf2, 0xc9, 0xe9, 0xf8, 0x38, 0xc0, - 0xd4, 0x47, 0x36, 0x2c, 0xd7, 0x4c, 0xa7, 0x65, 0xd4, 0xcc, 0xb6, 0xe9, 0x58, 0x98, 0x1a, 0x75, - 0xd2, 0xf6, 0xb1, 0xa7, 0x66, 0x2e, 0x65, 0x36, 0x0b, 0x3b, 0x37, 0xcb, 0xa7, 0x05, 0x55, 0xae, - 0x9a, 0x4e, 0xab, 0x2a, 0x9d, 0xee, 0x73, 0x9f, 0xea, 0xcc, 0xcb, 0xd7, 0xeb, 0x19, 0x1d, 0xd5, - 0x06, 0xfe, 0x41, 0x27, 0xb0, 0x4a, 0x83, 0x9a, 0x69, 0x59, 0x6e, 0xe0, 0xf8, 0x86, 0x8d, 0xbb, - 0x2e, 0x25, 0x7e, 0xc4, 0x35, 0xcd, 0xb9, 0x76, 0x4e, 0xe7, 0x3a, 0x8c, 0x7c, 0xf7, 0xa4, 0x6b, - 0x82, 0x51, 0xa5, 0xa7, 0xfc, 0x8f, 0x9e, 0x02, 0xa2, 0x5d, 0xd7, 0x37, 0x7c, 0xcf, 0xb4, 0xfb, - 0xb1, 0x65, 0x39, 0xdf, 0x7f, 0x4e, 0xe7, 0x3b, 0xe2, 0xe6, 0x09, 0x8e, 0x12, 0xc3, 0x89, 0x8f, - 0xa3, 0x3a, 0xa8, 0x36, 0xf6, 0xc8, 0x89, 0xc9, 0x10, 0x52, 0x0c, 0x33, 0xef, 0xc0, 0xb0, 0xd2, - 0x47, 0x4b, 0xf0, 0x84, 0x31, 0xb8, 0x9e, 0x8d, 0xbd, 0x88, 0x61, 0x76, 0x1c, 0xc3, 0xa7, 0xdc, - 0x7c, 0x30, 0x86, 0xf8, 0x78, 0x2a, 0x86, 0x24, 0x43, 0xee, 0x1d, 0x18, 0x62, 0x31, 0x24, 0x78, - 0x30, 0xac, 0xf4, 0x63, 0xa8, 0xb9, 0x6e, 0x2b, 0x62, 0x99, 0xe3, 0x2c, 0x5b, 0x63, 0x58, 0x98, - 0x4b, 0x82, 0x68, 0x39, 0x0a, 0x85, 0xa3, 0x49, 0x9a, 0x63, 0xf8, 0x57, 0x3a, 0x9c, 0x04, 0x59, - 0xfe, 0xdd, 0xc8, 0x56, 0x53, 0x51, 0xc5, 0x29, 0x9f, 0x42, 0x89, 0xef, 0x38, 0xe2, 0x3a, 0x11, - 0x8d, 0x32, 0x8e, 0xe6, 0x71, 0xe8, 0x91, 0xa0, 0x59, 0xec, 0x26, 0x87, 0x91, 0x09, 0xe7, 0x5c, - 0xcf, 0xb4, 0xda, 0xd8, 0xe8, 0x7a, 0xc4, 0xc2, 0x21, 0x3c, 0x70, 0xf8, 0x1b, 0xa3, 0xa2, 0x60, - 0x4e, 0x8f, 0x99, 0x4f, 0x82, 0x60, 0xc9, 0x4d, 0xff, 0xa1, 0x7d, 0x3f, 0x07, 0x0b, 0xa1, 0x20, - 0xd0, 0xae, 0xeb, 0x50, 0x8c, 0x2e, 0x43, 0xb1, 0xd6, 0x76, 0xad, 0x96, 0xd1, 0xc4, 0xa4, 0xd1, - 0xf4, 0xb9, 0x12, 0xcc, 0xe8, 0x05, 0x3e, 0xf6, 0x80, 0x0f, 0xa1, 0x7f, 0x03, 0x08, 0x13, 0x9f, - 0x74, 0x30, 0x2f, 0xdf, 0xac, 0xae, 0xf0, 0x91, 0x23, 0xd2, 0xc1, 0xe8, 0x21, 0xcc, 0x27, 0x34, - 0x45, 0xcd, 0x5e, 0xca, 0x6e, 0x16, 0x76, 0xae, 0x4e, 0x24, 0x26, 0x7a, 0x31, 0xae, 0x1f, 0xe8, - 0x19, 0x9c, 0x1b, 0xa2, 0x1c, 0xea, 0x0c, 0x47, 0xbc, 0x79, 0x16, 0xc9, 0xd0, 0xd1, 0xa0, 0x4c, - 0xa0, 0x3d, 0x28, 0xc4, 0x04, 0x42, 0x9d, 0xe5, 0xb0, 0x1b, 0x23, 0x60, 0x43, 0x15, 0xd0, 0xa1, - 0x2f, 0x08, 0xe8, 0x33, 0x58, 0x1a, 0x90, 0x02, 0x35, 0xc7, 0xb1, 0x46, 0xec, 0x82, 0xbd, 0x64, - 0xbd, 0xeb, 0xa5, 0xb4, 0x00, 0xa0, 0x87, 0x72, 0x76, 0xa2, 0x30, 0xd5, 0xb9, 0x71, 0x88, 0x87, - 0x61, 0x51, 0x3c, 0xe9, 0xda, 0xa6, 0x2f, 0xe7, 0x28, 0x0a, 0x11, 0x7d, 0x91, 0x98, 0xa3, 0x44, - 0xcc, 0x73, 0xc4, 0xca, 0x24, 0x73, 0x8c, 0xe3, 0x96, 0xd2, 0x65, 0x8e, 0x8c, 0x74, 0x81, 0x1b, - 0x01, 0x37, 0xa5, 0xaa, 0x32, 0x6e, 0xd2, 0x51, 0x49, 0x49, 0xf0, 0x64, 0x69, 0x8b, 0x41, 0x8a, - 0x5a, 0xc3, 0x4b, 0x3b, 0xa2, 0x81, 0xb3, 0xd2, 0x0c, 0x2b, 0xea, 0x90, 0xec, 0x2e, 0x28, 0x51, - 0x2d, 0xaa, 0x05, 0x8e, 0xac, 0x8d, 0xaf, 0x66, 0xbd, 0xef, 0xc4, 0x4a, 0x20, 0x5e, 0xba, 0x54, - 0x2d, 0x8e, 0x2b, 0x81, 0x58, 0xd1, 0xea, 0xc5, 0x58, 0xa1, 0x52, 0xad, 0x0e, 0x8b, 0xa9, 0x19, - 0xa2, 0x12, 0x64, 0x29, 0x3e, 0x96, 0xa5, 0xc9, 0x1e, 0xd1, 0x3d, 0x50, 0xa2, 0xa4, 0xc8, 0x03, - 0x75, 0x63, 0x82, 0x64, 0xe8, 0x7d, 0x2f, 0xed, 0xc7, 0x0c, 0x28, 0xd1, 0x1f, 0xe8, 0x22, 0x28, - 0x1d, 0xd3, 0x6b, 0x61, 0xdf, 0x20, 0x36, 0x27, 0x52, 0xf4, 0xbc, 0x18, 0xd8, 0xb7, 0xd1, 0x5d, - 0x80, 0x5a, 0xd0, 0x33, 0xda, 0xf8, 0x04, 0xb7, 0xa9, 0x3a, 0xcd, 0x63, 0xbb, 0x1c, 0xa3, 0x8b, - 0xda, 0x8e, 0x90, 0xf0, 0x80, 0x59, 0xea, 0x4a, 0x2d, 0xe8, 0xf1, 0x27, 0x8a, 0xaa, 0x50, 0xa0, - 0xb8, 0xdd, 0x0e, 0x21, 0xb2, 0x93, 0x42, 0x00, 0xf3, 0x12, 0x18, 0xda, 0x8b, 0x0c, 0x14, 0x62, - 0xca, 0x81, 0x54, 0x98, 0x93, 0xf5, 0x2d, 0x27, 0x1c, 0xbe, 0xa2, 0x06, 0xe4, 0x23, 0x31, 0x12, - 0xb3, 0xbd, 0x50, 0x16, 0x4d, 0x59, 0x99, 0x35, 0x65, 0x11, 0xc7, 0xae, 0x4b, 0x9c, 0xea, 0xf6, - 0xcb, 0xd7, 0xeb, 0x53, 0x3f, 0xfc, 0xb1, 0xbe, 0xd9, 0x20, 0x7e, 0x33, 0xa8, 0x95, 0x2d, 0xb7, - 0x53, 0x91, 0x1d, 0x9c, 0xf8, 0xb9, 0x45, 0xed, 0x56, 0xc5, 0xef, 0x75, 0x31, 0xe5, 0x0e, 0x54, - 0x8f, 0xc0, 0xb5, 0x6f, 0x32, 0x80, 0x06, 0xa5, 0x07, 0x6d, 0xc0, 0x7c, 0x4c, 0xc5, 0xa2, 0x84, - 0x16, 0xfb, 0x83, 0xfb, 0x36, 0x7a, 0x04, 0xf9, 0x48, 0xdf, 0xc4, 0x24, 0x6f, 0x9c, 0x41, 0xdf, - 0xb8, 0xc6, 0x4f, 0xe9, 0x11, 0x84, 0xe6, 0xc0, 0xd2, 0x80, 0x11, 0x5a, 0x86, 0x59, 0x1b, 0x3b, - 0x6e, 0x47, 0x4e, 0x40, 0xbc, 0xa0, 0x5d, 0x98, 0x93, 0x6e, 0x43, 0xb6, 0xce, 0xc0, 0x42, 0x24, - 0x09, 0x43, 0x4f, 0xed, 0xa7, 0x0c, 0x2c, 0xa6, 0x04, 0x08, 0xed, 0x42, 0x8e, 0xfa, 0xa6, 0x1f, - 0x50, 0xce, 0xb7, 0x30, 0xfa, 0xd0, 0x8a, 0xdc, 0x0e, 0xb9, 0x8b, 0x2e, 0x5d, 0xd9, 0x69, 0xc3, - 0x37, 0xa9, 0xd1, 0x34, 0x69, 0x93, 0x4f, 0xb0, 0x28, 0xb7, 0xed, 0x03, 0x93, 0x36, 0x59, 0x2d, - 0x58, 0xc4, 0xe6, 0x4d, 0x9d, 0xa2, 0xb3, 0x47, 0xf4, 0x11, 0xcc, 0xf2, 0xbf, 0x65, 0x1b, 0xb6, - 0x31, 0x81, 0x60, 0xea, 0xc2, 0x43, 0xeb, 0x82, 0x12, 0x8d, 0x8d, 0x2e, 0x81, 0xfb, 0x21, 0x89, - 0xc8, 0xd8, 0xf5, 0x51, 0x19, 0x63, 0x90, 0x07, 0xa4, 0x43, 0x04, 0xae, 0x4c, 0x9c, 0x64, 0xfc, - 0x25, 0x03, 0xe7, 0x87, 0xaa, 0xec, 0x07, 0x4a, 0xde, 0x9d, 0x64, 0xf2, 0xb6, 0x26, 0x3e, 0x1b, - 0xc2, 0x80, 0xbe, 0xcb, 0xc0, 0x62, 0xea, 0xaf, 0xd1, 0x99, 0x3c, 0x48, 0x66, 0x72, 0x7b, 0xf4, - 0xde, 0x0b, 0x81, 0x4f, 0xc9, 0x27, 0xa3, 0x22, 0xd4, 0x10, 0xe0, 0x3c, 0xae, 0xbc, 0x9e, 0x27, - 0xf4, 0x11, 0x7f, 0xd7, 0xbe, 0xce, 0x42, 0x3e, 0x94, 0xeb, 0xd1, 0x93, 0x1a, 0xa8, 0xd8, 0xe9, - 0x21, 0x15, 0xbb, 0x02, 0x39, 0x42, 0x0f, 0x5c, 0xa7, 0x21, 0x89, 0xe4, 0x1b, 0xba, 0x03, 0xf9, - 0xe3, 0xc0, 0x74, 0x7c, 0xe2, 0xf7, 0x78, 0x1a, 0x95, 0xea, 0x06, 0x9b, 0xe2, 0x6f, 0xaf, 0xd7, - 0x2f, 0x0a, 0x05, 0xa1, 0x76, 0xab, 0x4c, 0xdc, 0x4a, 0xc7, 0xf4, 0x9b, 0xe5, 0x03, 0xdc, 0x30, - 0xad, 0xde, 0x1e, 0xb6, 0xf4, 0xc8, 0x89, 0xb5, 0x25, 0xd8, 0xf1, 0xbd, 0x9e, 0x38, 0x3d, 0x78, - 0xb3, 0x3f, 0x21, 0x06, 0x70, 0x3f, 0x7e, 0x72, 0xa0, 0x8f, 0x21, 0xd7, 0x31, 0xbd, 0x06, 0x71, - 0x78, 0x2f, 0x3f, 0x21, 0x80, 0x74, 0x41, 0xcf, 0x40, 0xb5, 0x82, 0x4e, 0xd0, 0x16, 0x07, 0x6e, - 0x3d, 0x70, 0x6c, 0xe2, 0x34, 0x0c, 0x8e, 0xce, 0x9b, 0xf6, 0x09, 0xe1, 0x56, 0xfa, 0x20, 0xf7, - 0x05, 0xc6, 0x27, 0x0c, 0x42, 0xf3, 0xa1, 0x10, 0x3b, 0xf1, 0x58, 0x26, 0x69, 0xaf, 0x53, 0x73, - 0xdb, 0x72, 0x21, 0xe4, 0x1b, 0x2b, 0x65, 0x91, 0x82, 0xe9, 0xc9, 0x29, 0x85, 0x07, 0x42, 0x30, - 0xc3, 0x34, 0x5a, 0xee, 0x6d, 0xfe, 0xac, 0xfd, 0x9c, 0x15, 0xf5, 0xcd, 0xfb, 0xab, 0xd1, 0x1b, - 0xe0, 0x3c, 0x5b, 0x5b, 0xa3, 0x16, 0xf4, 0x38, 0x75, 0x5e, 0x9f, 0x25, 0xb4, 0x1a, 0xf4, 0xd0, - 0x15, 0x98, 0xc7, 0xcf, 0xb1, 0x15, 0xb0, 0x1d, 0x74, 0xd4, 0x87, 0x4f, 0x0e, 0xfe, 0xfd, 0x0d, - 0x10, 0xc5, 0x3d, 0x7b, 0xe6, 0xb8, 0x07, 0x76, 0x6e, 0x6e, 0xc8, 0xce, 0xfd, 0x1f, 0x64, 0xeb, - 0x18, 0x9f, 0x65, 0x21, 0x99, 0x7d, 0x4a, 0x4d, 0xf2, 0x69, 0x35, 0xf9, 0x3f, 0x9c, 0xaf, 0x63, - 0x6c, 0x78, 0xd8, 0x22, 0x5d, 0x82, 0x1d, 0xdf, 0x30, 0x6d, 0xdb, 0xc3, 0x94, 0xf2, 0x2f, 0x22, - 0x45, 0x7e, 0x85, 0x9c, 0xab, 0x63, 0xac, 0x87, 0x16, 0xf7, 0x84, 0x41, 0xa8, 0x43, 0xd0, 0xd7, - 0xa1, 0x0b, 0x90, 0xe7, 0x8d, 0x34, 0x8b, 0xa0, 0x20, 0x4e, 0x73, 0xfe, 0xbe, 0x6f, 0x6b, 0xbf, - 0x67, 0xe3, 0x0a, 0xf3, 0x4f, 0xaf, 0xe5, 0x40, 0x3e, 0x67, 0x86, 0xe4, 0xf3, 0x31, 0x2c, 0x84, - 0xcd, 0x9f, 0x61, 0xe3, 0xb6, 0x6f, 0xca, 0x0f, 0xf4, 0xad, 0x51, 0x62, 0x16, 0x2a, 0xd1, 0x1e, - 0x73, 0xd0, 0xe7, 0xbb, 0xf1, 0x57, 0x56, 0xbc, 0x5d, 0xb3, 0xe7, 0x06, 0xfe, 0x99, 0x8a, 0x57, - 0xb8, 0xbc, 0xbf, 0xe5, 0x55, 0x3e, 0xc0, 0xf2, 0x1e, 0x41, 0x31, 0x71, 0x01, 0x72, 0x15, 0x16, - 0x12, 0x0b, 0xc0, 0xce, 0xc3, 0x2c, 0x5b, 0xa7, 0xf8, 0x0a, 0xf0, 0x93, 0x2e, 0xda, 0x01, 0xa2, - 0x81, 0x52, 0x74, 0x25, 0xdc, 0x02, 0x54, 0xfb, 0x1c, 0x16, 0x53, 0x9f, 0xdd, 0xef, 0x09, 0xf8, - 0x08, 0x8a, 0x89, 0xbb, 0x8e, 0xf7, 0x83, 0xba, 0x1d, 0x6b, 0xfa, 0x25, 0x70, 0xd2, 0x23, 0x33, - 0xe8, 0x81, 0x06, 0xef, 0xe4, 0xd0, 0x2a, 0xe4, 0x25, 0x69, 0xe8, 0x12, 0xbd, 0x6b, 0xf7, 0x40, - 0x3d, 0xed, 0x66, 0x6d, 0xc2, 0x28, 0xb4, 0x1b, 0xb0, 0x34, 0x70, 0xdb, 0x90, 0x10, 0xf3, 0x6c, - 0x5f, 0xcc, 0xaf, 0x1f, 0x30, 0xe3, 0x54, 0xa3, 0x82, 0x16, 0xa1, 0xf0, 0xc4, 0xa1, 0x5d, 0x6c, - 0x91, 0x3a, 0xc1, 0x76, 0x69, 0x0a, 0x01, 0xe4, 0xaa, 0xae, 0xdb, 0xc2, 0x76, 0x29, 0x83, 0x0a, - 0x30, 0xf7, 0xc8, 0xf4, 0xad, 0x26, 0xb6, 0x4b, 0xd3, 0x68, 0x1e, 0x94, 0x5d, 0x16, 0x5a, 0xbb, - 0x8d, 0xed, 0x52, 0x76, 0xa7, 0x01, 0x39, 0x71, 0x73, 0x81, 0x9e, 0x45, 0x4f, 0xd7, 0x46, 0xb4, - 0x7a, 0xf1, 0x6b, 0xcf, 0xd5, 0xcd, 0xf1, 0x86, 0xe2, 0x3a, 0x64, 0x3b, 0x53, 0xfd, 0xf2, 0xe5, - 0x9b, 0xb5, 0xcc, 0xab, 0x37, 0x6b, 0x99, 0x3f, 0xdf, 0xac, 0x65, 0x5e, 0xbc, 0x5d, 0x9b, 0x7a, - 0xf5, 0x76, 0x6d, 0xea, 0xd7, 0xb7, 0x6b, 0x53, 0x4f, 0xf7, 0x62, 0x5f, 0x08, 0xfb, 0x21, 0xde, - 0x81, 0x59, 0xa3, 0x95, 0x08, 0xfd, 0x96, 0xe5, 0x7a, 0x38, 0xfe, 0xda, 0x34, 0x89, 0x13, 0x5e, - 0x23, 0xf3, 0x6f, 0x88, 0x5a, 0x8e, 0xdf, 0xcd, 0xfe, 0xf7, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x78, 0x25, 0xda, 0xad, 0x67, 0x16, 0x00, 0x00, + // 1638 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0x46, + 0x16, 0xb7, 0x2c, 0x5b, 0x16, 0x9f, 0xfc, 0x21, 0x4f, 0x1c, 0x83, 0x71, 0x76, 0xed, 0x84, 0x4e, + 0x36, 0x76, 0x3e, 0x24, 0xc7, 0x8b, 0x05, 0x76, 0xb1, 0x87, 0x24, 0xb2, 0x37, 0x88, 0x03, 0x07, + 0x1b, 0xd0, 0xce, 0x2e, 0x10, 0x6c, 0x96, 0xe0, 0xc7, 0x48, 0x9a, 0x4a, 0x22, 0x65, 0x0e, 0x69, + 0x44, 0x7f, 0x41, 0x7b, 0x2a, 0x72, 0xed, 0xb1, 0xd7, 0x1e, 0xfa, 0x47, 0xb4, 0x97, 0x9c, 0x8a, + 0x1c, 0x8b, 0xa2, 0x48, 0x8b, 0xe4, 0x1f, 0x29, 0xe6, 0x83, 0x14, 0x49, 0xc9, 0x92, 0x9c, 0xa6, + 0x28, 0x7a, 0x12, 0x39, 0x7a, 0xef, 0xf7, 0x9b, 0xf7, 0x66, 0xde, 0x6f, 0x1e, 0x07, 0xae, 0x11, + 0xf7, 0x13, 0x6c, 0x07, 0xe4, 0x14, 0x57, 0x69, 0xe0, 0x63, 0xb3, 0x53, 0x3d, 0xbd, 0x6b, 0xe1, + 0xc0, 0xbc, 0x5b, 0x3d, 0x09, 0xb1, 0xdf, 0xab, 0x74, 0x7d, 0x2f, 0xf0, 0x90, 0x1a, 0x5b, 0x55, + 0x84, 0x55, 0x45, 0x5a, 0xad, 0xad, 0xdb, 0x1e, 0xed, 0x78, 0xb4, 0x6a, 0x99, 0x14, 0xc7, 0xae, + 0xb6, 0x47, 0x5c, 0xe1, 0xb9, 0xb6, 0xd2, 0xf0, 0x1a, 0x1e, 0x7f, 0xac, 0xb2, 0x27, 0x39, 0x7a, + 0xa3, 0xcf, 0x8a, 0x5f, 0xda, 0x4d, 0xd3, 0x6d, 0xf4, 0x9d, 0xf1, 0x29, 0x76, 0x03, 0x2a, 0x0d, + 0xb7, 0x47, 0x19, 0xca, 0x01, 0x61, 0xaa, 0x7d, 0x5e, 0x84, 0x85, 0x23, 0x3e, 0x39, 0x1d, 0x9f, + 0x84, 0x98, 0x06, 0xc8, 0x81, 0x15, 0xcb, 0x74, 0x5b, 0x86, 0x65, 0xb6, 0x4d, 0xd7, 0xc6, 0xd4, + 0xa8, 0x93, 0x76, 0x80, 0x7d, 0x35, 0x77, 0x25, 0xb7, 0x55, 0xda, 0xbd, 0x5d, 0x39, 0x2b, 0xa8, + 0x4a, 0xcd, 0x74, 0x5b, 0x35, 0xe9, 0xf4, 0x90, 0xfb, 0xd4, 0x66, 0x5e, 0xbf, 0xdd, 0xc8, 0xe9, + 0xc8, 0x1a, 0xf8, 0x07, 0x9d, 0xc2, 0x1a, 0x0d, 0x2d, 0xd3, 0xb6, 0xbd, 0xd0, 0x0d, 0x0c, 0x07, + 0x77, 0x3d, 0x4a, 0x82, 0x98, 0x6b, 0x9a, 0x73, 0xed, 0x9e, 0xcd, 0x75, 0x14, 0xfb, 0xee, 0x4b, + 0xd7, 0x14, 0xa3, 0x4a, 0xcf, 0xf8, 0x1f, 0x3d, 0x07, 0x44, 0xbb, 0x5e, 0x60, 0x04, 0xbe, 0xe9, + 0xf4, 0x63, 0xcb, 0x73, 0xbe, 0xbf, 0x9c, 0xcd, 0x77, 0xcc, 0xcd, 0x53, 0x1c, 0x65, 0x86, 0x93, + 0x1c, 0x47, 0x75, 0x50, 0x1d, 0xec, 0x93, 0x53, 0x93, 0x21, 0x64, 0x18, 0x66, 0x3e, 0x80, 0x61, + 0xb5, 0x8f, 0x96, 0xe2, 0x89, 0x62, 0xf0, 0x7c, 0x07, 0xfb, 0x31, 0xc3, 0xec, 0x38, 0x86, 0x7f, + 0x73, 0xf3, 0xc1, 0x18, 0x92, 0xe3, 0x99, 0x18, 0xd2, 0x0c, 0x85, 0x0f, 0x60, 0x48, 0xc4, 0x90, + 0xe2, 0xc1, 0xb0, 0xda, 0x8f, 0xc1, 0xf2, 0xbc, 0x56, 0xcc, 0x32, 0xc7, 0x59, 0xb6, 0xc7, 0xb0, + 0x30, 0x97, 0x14, 0xd1, 0x4a, 0x1c, 0x0a, 0x47, 0x93, 0x34, 0x27, 0xf0, 0xa7, 0x6c, 0x38, 0x29, + 0xb2, 0xe2, 0x87, 0x91, 0xad, 0x65, 0xa2, 0x4a, 0x52, 0x3e, 0x87, 0x32, 0xdf, 0x71, 0xc4, 0x73, + 0x63, 0x1a, 0x65, 0x1c, 0xcd, 0xd3, 0xc8, 0x23, 0x45, 0xb3, 0xd4, 0x4d, 0x0f, 0x23, 0x13, 0x2e, + 0x78, 0xbe, 0x69, 0xb7, 0xb1, 0xd1, 0xf5, 0x89, 0x8d, 0x23, 0x78, 0xe0, 0xf0, 0xb7, 0x46, 0x45, + 0xc1, 0x9c, 0x9e, 0x32, 0x9f, 0x14, 0xc1, 0xb2, 0x97, 0xfd, 0x43, 0xfb, 0x72, 0x0e, 0x16, 0x23, + 0x41, 0xa0, 0x5d, 0xcf, 0xa5, 0x18, 0x5d, 0x85, 0x79, 0xab, 0xed, 0xd9, 0x2d, 0xa3, 0x89, 0x49, + 0xa3, 0x19, 0x70, 0x25, 0x98, 0xd1, 0x4b, 0x7c, 0xec, 0x11, 0x1f, 0x42, 0x7f, 0x06, 0x10, 0x26, + 0x01, 0xe9, 0x60, 0x5e, 0xbe, 0x79, 0x5d, 0xe1, 0x23, 0xc7, 0xa4, 0x83, 0xd1, 0x63, 0x58, 0x48, + 0x69, 0x8a, 0x9a, 0xbf, 0x92, 0xdf, 0x2a, 0xed, 0x5e, 0x9f, 0x48, 0x4c, 0xf4, 0xf9, 0xa4, 0x7e, + 0xa0, 0x17, 0x70, 0x61, 0x88, 0x72, 0xa8, 0x33, 0x1c, 0xf1, 0xf6, 0x79, 0x24, 0x43, 0x47, 0x83, + 0x32, 0x81, 0xf6, 0xa1, 0x94, 0x10, 0x08, 0x75, 0x96, 0xc3, 0x6e, 0x8e, 0x80, 0x8d, 0x54, 0x40, + 0x87, 0xbe, 0x20, 0xa0, 0xff, 0xc0, 0xf2, 0x80, 0x14, 0xa8, 0x05, 0x8e, 0x35, 0x62, 0x17, 0xec, + 0xa7, 0xeb, 0x5d, 0x2f, 0x67, 0x05, 0x00, 0x3d, 0x96, 0xb3, 0x13, 0x85, 0xa9, 0xce, 0x8d, 0x43, + 0x3c, 0x8a, 0x8a, 0xe2, 0x59, 0xd7, 0x31, 0x03, 0x39, 0x47, 0x51, 0x88, 0xe8, 0x7f, 0xa9, 0x39, + 0x4a, 0xc4, 0x22, 0x47, 0xac, 0x4e, 0x32, 0xc7, 0x24, 0x6e, 0x39, 0x5b, 0xe6, 0xc8, 0xc8, 0x16, + 0xb8, 0x11, 0x72, 0x53, 0xaa, 0x2a, 0xe3, 0x26, 0x1d, 0x97, 0x94, 0x04, 0x4f, 0x97, 0xb6, 0x18, + 0xa4, 0xa8, 0x35, 0xbc, 0xb4, 0x63, 0x1a, 0x38, 0x2f, 0xcd, 0xb0, 0xa2, 0x8e, 0xc8, 0xee, 0x83, + 0x12, 0xd7, 0xa2, 0x5a, 0xe2, 0xc8, 0xda, 0xf8, 0x6a, 0xd6, 0xfb, 0x4e, 0xac, 0x04, 0x92, 0xa5, + 0x4b, 0xd5, 0xf9, 0x71, 0x25, 0x90, 0x28, 0x5a, 0x7d, 0x3e, 0x51, 0xa8, 0x54, 0xab, 0xc3, 0x52, + 0x66, 0x86, 0xa8, 0x0c, 0x79, 0x8a, 0x4f, 0x64, 0x69, 0xb2, 0x47, 0xf4, 0x00, 0x94, 0x38, 0x29, + 0xf2, 0x40, 0xdd, 0x9c, 0x20, 0x19, 0x7a, 0xdf, 0x4b, 0xfb, 0x3a, 0x07, 0x4a, 0xfc, 0x07, 0xba, + 0x0c, 0x4a, 0xc7, 0xf4, 0x5b, 0x38, 0x30, 0x88, 0xc3, 0x89, 0x14, 0xbd, 0x28, 0x06, 0x0e, 0x1c, + 0x74, 0x1f, 0xc0, 0x0a, 0x7b, 0x46, 0x1b, 0x9f, 0xe2, 0x36, 0x55, 0xa7, 0x79, 0x6c, 0x57, 0x13, + 0x74, 0x71, 0xdb, 0x11, 0x11, 0x1e, 0x32, 0x4b, 0x5d, 0xb1, 0xc2, 0x1e, 0x7f, 0xa2, 0xa8, 0x06, + 0x25, 0x8a, 0xdb, 0xed, 0x08, 0x22, 0x3f, 0x29, 0x04, 0x30, 0x2f, 0x81, 0xa1, 0xbd, 0xca, 0x41, + 0x29, 0xa1, 0x1c, 0x48, 0x85, 0x39, 0x59, 0xdf, 0x72, 0xc2, 0xd1, 0x2b, 0x6a, 0x40, 0x31, 0x16, + 0x23, 0x31, 0xdb, 0x4b, 0x15, 0xd1, 0x94, 0x55, 0x58, 0x53, 0x16, 0x73, 0xec, 0x79, 0xc4, 0xad, + 0xed, 0xbc, 0x7e, 0xbb, 0x31, 0xf5, 0xd5, 0x4f, 0x1b, 0x5b, 0x0d, 0x12, 0x34, 0x43, 0xab, 0x62, + 0x7b, 0x9d, 0xaa, 0xec, 0xe0, 0xc4, 0xcf, 0x1d, 0xea, 0xb4, 0xaa, 0x41, 0xaf, 0x8b, 0x29, 0x77, + 0xa0, 0x7a, 0x0c, 0xae, 0x7d, 0x96, 0x03, 0x34, 0x28, 0x3d, 0x68, 0x13, 0x16, 0x12, 0x2a, 0x16, + 0x27, 0x74, 0xbe, 0x3f, 0x78, 0xe0, 0xa0, 0x27, 0x50, 0x8c, 0xf5, 0x4d, 0x4c, 0xf2, 0xd6, 0x39, + 0xf4, 0x8d, 0x6b, 0xfc, 0x94, 0x1e, 0x43, 0x68, 0x2e, 0x2c, 0x0f, 0x18, 0xa1, 0x15, 0x98, 0x75, + 0xb0, 0xeb, 0x75, 0xe4, 0x04, 0xc4, 0x0b, 0xda, 0x83, 0x39, 0xe9, 0x36, 0x64, 0xeb, 0x0c, 0x2c, + 0x44, 0x9a, 0x30, 0xf2, 0xd4, 0xbe, 0xc9, 0xc1, 0x52, 0x46, 0x80, 0xd0, 0x1e, 0x14, 0x68, 0x60, + 0x06, 0x21, 0xe5, 0x7c, 0x8b, 0xa3, 0x0f, 0xad, 0xd8, 0xed, 0x88, 0xbb, 0xe8, 0xd2, 0x95, 0x9d, + 0x36, 0x7c, 0x93, 0x1a, 0x4d, 0x93, 0x36, 0xf9, 0x04, 0x15, 0xb9, 0x6d, 0x1f, 0x99, 0xb4, 0xc9, + 0x6a, 0xc1, 0x26, 0x0e, 0x6f, 0xea, 0x14, 0x9d, 0x3d, 0xa2, 0x7f, 0xc0, 0x2c, 0xff, 0x5b, 0xb6, + 0x61, 0x9b, 0x13, 0x08, 0xa6, 0x2e, 0x3c, 0xb4, 0x2e, 0x28, 0xf1, 0xd8, 0xe8, 0x12, 0x78, 0x18, + 0x91, 0x88, 0x8c, 0xdd, 0x1c, 0x95, 0x31, 0x06, 0x79, 0x48, 0x3a, 0x44, 0xe0, 0xca, 0xc4, 0x49, + 0xc6, 0xef, 0x72, 0x70, 0x71, 0xa8, 0xca, 0xfe, 0x4e, 0xc9, 0xbb, 0x97, 0x4e, 0xde, 0xf6, 0xc4, + 0x67, 0x43, 0x14, 0xd0, 0x17, 0x39, 0x58, 0xca, 0xfc, 0x35, 0x3a, 0x93, 0x87, 0xe9, 0x4c, 0xee, + 0x8c, 0xde, 0x7b, 0x11, 0xf0, 0x19, 0xf9, 0x64, 0x54, 0x84, 0x1a, 0x02, 0x9c, 0xc7, 0x55, 0xd4, + 0x8b, 0x84, 0x3e, 0xe1, 0xef, 0xda, 0xa7, 0x79, 0x28, 0x46, 0x72, 0x3d, 0x7a, 0x52, 0x03, 0x15, + 0x3b, 0x3d, 0xa4, 0x62, 0x57, 0xa1, 0x40, 0xe8, 0xa1, 0xe7, 0x36, 0x24, 0x91, 0x7c, 0x43, 0xf7, + 0xa0, 0x78, 0x12, 0x9a, 0x6e, 0x40, 0x82, 0x1e, 0x4f, 0xa3, 0x52, 0xdb, 0x64, 0x53, 0xfc, 0xe1, + 0xed, 0xc6, 0x65, 0xa1, 0x20, 0xd4, 0x69, 0x55, 0x88, 0x57, 0xed, 0x98, 0x41, 0xb3, 0x72, 0x88, + 0x1b, 0xa6, 0xdd, 0xdb, 0xc7, 0xb6, 0x1e, 0x3b, 0xb1, 0xb6, 0x04, 0xbb, 0x81, 0xdf, 0x13, 0xa7, + 0x07, 0x6f, 0xf6, 0x27, 0xc4, 0x00, 0xee, 0xc7, 0x4f, 0x0e, 0xf4, 0x4f, 0x28, 0x74, 0x4c, 0xbf, + 0x41, 0x5c, 0xde, 0xcb, 0x4f, 0x08, 0x20, 0x5d, 0xd0, 0x0b, 0x50, 0xed, 0xb0, 0x13, 0xb6, 0xc5, + 0x81, 0x5b, 0x0f, 0x5d, 0x87, 0xb8, 0x0d, 0x83, 0xa3, 0xf3, 0xa6, 0x7d, 0x42, 0xb8, 0xd5, 0x3e, + 0xc8, 0x43, 0x81, 0xf1, 0x2f, 0x06, 0xa1, 0x05, 0x50, 0x4a, 0x9c, 0x78, 0x2c, 0x93, 0xb4, 0xd7, + 0xb1, 0xbc, 0xb6, 0x5c, 0x08, 0xf9, 0xc6, 0x4a, 0x59, 0xa4, 0x60, 0x7a, 0x72, 0x4a, 0xe1, 0x81, + 0x10, 0xcc, 0x30, 0x8d, 0x96, 0x7b, 0x9b, 0x3f, 0x6b, 0xdf, 0xe6, 0x45, 0x7d, 0xf3, 0xfe, 0x6a, + 0xf4, 0x06, 0xb8, 0xc8, 0xd6, 0xd6, 0xb0, 0xc2, 0x1e, 0xa7, 0x2e, 0xea, 0xb3, 0x84, 0xd6, 0xc2, + 0x1e, 0xba, 0x06, 0x0b, 0xf8, 0x25, 0xb6, 0x43, 0xb6, 0x83, 0x8e, 0xfb, 0xf0, 0xe9, 0xc1, 0x5f, + 0xbf, 0x01, 0xe2, 0xb8, 0x67, 0xcf, 0x1d, 0xf7, 0xc0, 0xce, 0x2d, 0x0c, 0xd9, 0xb9, 0x7f, 0x83, + 0x7c, 0x1d, 0xe3, 0xf3, 0x2c, 0x24, 0xb3, 0xcf, 0xa8, 0x49, 0x31, 0xab, 0x26, 0x7f, 0x87, 0x8b, + 0x75, 0x8c, 0x0d, 0x1f, 0xdb, 0xa4, 0x4b, 0xb0, 0x1b, 0x18, 0xa6, 0xe3, 0xf8, 0x98, 0x52, 0xfe, + 0x45, 0xa4, 0xc8, 0xaf, 0x90, 0x0b, 0x75, 0x8c, 0xf5, 0xc8, 0xe2, 0x81, 0x30, 0x88, 0x74, 0x08, + 0xfa, 0x3a, 0x74, 0x09, 0x8a, 0xbc, 0x91, 0x66, 0x11, 0x94, 0xc4, 0x69, 0xce, 0xdf, 0x0f, 0x1c, + 0xed, 0xc7, 0x7c, 0x52, 0x61, 0x7e, 0xeb, 0xb5, 0x1c, 0xc8, 0xe7, 0xcc, 0x90, 0x7c, 0x3e, 0x85, + 0xc5, 0xa8, 0xf9, 0x33, 0x1c, 0xdc, 0x0e, 0x4c, 0xf9, 0x81, 0xbe, 0x3d, 0x4a, 0xcc, 0x22, 0x25, + 0xda, 0x67, 0x0e, 0xfa, 0x42, 0x37, 0xf9, 0xca, 0x8a, 0xb7, 0x6b, 0xf6, 0xbc, 0x30, 0x38, 0x57, + 0xf1, 0x0a, 0x97, 0x3f, 0xf6, 0xf2, 0x1e, 0xc3, 0x7c, 0xea, 0x02, 0xe4, 0x3a, 0x2c, 0xa6, 0x16, + 0x80, 0x9d, 0x87, 0x79, 0xb6, 0x4e, 0xc9, 0x15, 0xe0, 0x27, 0x5d, 0xbc, 0x03, 0x44, 0x03, 0xa5, + 0xe8, 0x4a, 0xb4, 0x05, 0xa8, 0xf6, 0x5f, 0x58, 0xca, 0x7c, 0x76, 0x7f, 0x24, 0xe0, 0x63, 0x98, + 0x4f, 0xdd, 0x75, 0x7c, 0x1c, 0xd4, 0x9d, 0x44, 0xd3, 0x2f, 0x81, 0xd3, 0x1e, 0xb9, 0x41, 0x0f, + 0x34, 0x78, 0x27, 0x87, 0xd6, 0xa0, 0x28, 0x49, 0x23, 0x97, 0xf8, 0x5d, 0x7b, 0x00, 0xea, 0x59, + 0x37, 0x6b, 0x13, 0x46, 0xa1, 0xdd, 0x82, 0xe5, 0x81, 0xdb, 0x86, 0x94, 0x98, 0xe7, 0xfb, 0x62, + 0x7e, 0xf3, 0x90, 0x19, 0x67, 0x1a, 0x15, 0xb4, 0x04, 0xa5, 0x67, 0x2e, 0xed, 0x62, 0x9b, 0xd4, + 0x09, 0x76, 0xca, 0x53, 0x08, 0xa0, 0x50, 0xf3, 0xbc, 0x16, 0x76, 0xca, 0x39, 0x54, 0x82, 0xb9, + 0x27, 0x66, 0x60, 0x37, 0xb1, 0x53, 0x9e, 0x46, 0x0b, 0xa0, 0xec, 0xb1, 0xd0, 0xda, 0x6d, 0xec, + 0x94, 0xf3, 0xbb, 0x0d, 0x28, 0x88, 0x9b, 0x0b, 0xf4, 0x22, 0x7e, 0xba, 0x31, 0xa2, 0xd5, 0x4b, + 0x5e, 0x7b, 0xae, 0x6d, 0x8d, 0x37, 0x14, 0xd7, 0x21, 0x3b, 0xb9, 0xda, 0xff, 0x5f, 0xbf, 0x5b, + 0xcf, 0xbd, 0x79, 0xb7, 0x9e, 0xfb, 0xf9, 0xdd, 0x7a, 0xee, 0xd5, 0xfb, 0xf5, 0xa9, 0x37, 0xef, + 0xd7, 0xa7, 0xbe, 0x7f, 0xbf, 0x3e, 0xf5, 0x7c, 0x3f, 0xf1, 0x85, 0x70, 0x10, 0xe1, 0x1d, 0x9a, + 0x16, 0xad, 0xc6, 0xe8, 0x77, 0x6c, 0xcf, 0xc7, 0xc9, 0xd7, 0xa6, 0x49, 0xdc, 0xe8, 0x1a, 0x99, + 0x7f, 0x43, 0x58, 0x05, 0x7e, 0x37, 0xfb, 0xd7, 0x5f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x42, + 0x1d, 0x82, 0x67, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5157,7 +5157,7 @@ func (m *SpotOrderUpdate) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5167,25 +5167,23 @@ func (m *SpotOrderUpdate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { @@ -5443,7 +5441,7 @@ func (m *DerivativeOrderUpdate) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5453,25 +5451,23 @@ func (m *DerivativeOrderUpdate) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { @@ -6366,7 +6362,7 @@ func (m *SpotTrade) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -6376,25 +6372,23 @@ func (m *SpotTrade) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = append(m.OrderHash[:0], dAtA[iNdEx:postIndex]...) - if m.OrderHash == nil { - m.OrderHash = []byte{} - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 9: if wireType != 2 { diff --git a/chain/stream/types/request.go b/chain/stream/types/request.go deleted file mode 100644 index 3bf542aa..00000000 --- a/chain/stream/types/request.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -func NewFullStreamRequest() *StreamRequest { - return &StreamRequest{ - BankBalancesFilter: &BankBalancesFilter{ - Accounts: []string{}, - }, - SpotOrdersFilter: &OrdersFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - DerivativeOrdersFilter: &OrdersFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - SpotTradesFilter: &TradesFilter{ - MarketIds: []string{"*"}, - SubaccountIds: []string{"*"}, - }, - SubaccountDepositsFilter: &SubaccountDepositsFilter{ - SubaccountIds: []string{"*"}, - }, - DerivativeOrderbooksFilter: &OrderbookFilter{ - MarketIds: []string{"*"}, - }, - SpotOrderbooksFilter: &OrderbookFilter{ - MarketIds: []string{"*"}, - }, - PositionsFilter: &PositionsFilter{ - SubaccountIds: []string{"*"}, - MarketIds: []string{"*"}, - }, - DerivativeTradesFilter: &TradesFilter{ - SubaccountIds: []string{"*"}, - MarketIds: []string{"*"}, - }, - OraclePriceFilter: &OraclePriceFilter{ - Symbol: []string{"*"}, - }, - } -} - -// Empty query matches any set of events. -type Empty struct { -} - -// Matches always returns true. -func (Empty) Matches(tags map[string][]string) (bool, error) { - return true, nil -} - -func (Empty) String() string { - return "empty" -} diff --git a/chain/stream/types/response.go b/chain/stream/types/response.go deleted file mode 100644 index 3a215960..00000000 --- a/chain/stream/types/response.go +++ /dev/null @@ -1,84 +0,0 @@ -package types - -import ( - "fmt" - "time" -) - -type StreamResponseMap struct { - tradeEventsCounter uint64 - BlockHeight uint64 - BlockTime time.Time - BankBalancesByAccount map[string][]*BankBalance - SpotOrdersBySubaccount map[string][]*SpotOrderUpdate - SpotOrdersByMarketID map[string][]*SpotOrderUpdate - DerivativeOrdersBySubaccount map[string][]*DerivativeOrderUpdate - DerivativeOrdersByMarketID map[string][]*DerivativeOrderUpdate - SpotOrderbookUpdatesByMarketID map[string][]*OrderbookUpdate - DerivativeOrderbookUpdatesByMarketID map[string][]*OrderbookUpdate - SubaccountDepositsBySubaccountID map[string][]*SubaccountDeposits - SpotTradesBySubaccount map[string][]*SpotTrade - SpotTradesByMarketID map[string][]*SpotTrade - DerivativeTradesBySubaccount map[string][]*DerivativeTrade - DerivativeTradesByMarketID map[string][]*DerivativeTrade - PositionsBySubaccount map[string][]*Position - PositionsByMarketID map[string][]*Position - OraclePriceBySymbol map[string][]*OraclePrice -} - -func NewStreamResponseMap() *StreamResponseMap { - return &StreamResponseMap{ - BankBalancesByAccount: map[string][]*BankBalance{}, - SpotOrdersBySubaccount: map[string][]*SpotOrderUpdate{}, - SpotOrdersByMarketID: map[string][]*SpotOrderUpdate{}, - DerivativeOrdersBySubaccount: map[string][]*DerivativeOrderUpdate{}, - DerivativeOrdersByMarketID: map[string][]*DerivativeOrderUpdate{}, - SpotOrderbookUpdatesByMarketID: map[string][]*OrderbookUpdate{}, - DerivativeOrderbookUpdatesByMarketID: map[string][]*OrderbookUpdate{}, - SubaccountDepositsBySubaccountID: map[string][]*SubaccountDeposits{}, - SpotTradesBySubaccount: map[string][]*SpotTrade{}, - SpotTradesByMarketID: map[string][]*SpotTrade{}, - DerivativeTradesBySubaccount: map[string][]*DerivativeTrade{}, - DerivativeTradesByMarketID: map[string][]*DerivativeTrade{}, - PositionsBySubaccount: map[string][]*Position{}, - PositionsByMarketID: map[string][]*Position{}, - OraclePriceBySymbol: map[string][]*OraclePrice{}, - } -} - -func NewChainStreamResponse() *StreamResponse { - return &StreamResponse{ - BankBalances: []*BankBalance{}, - SubaccountDeposits: []*SubaccountDeposits{}, - SpotTrades: []*SpotTrade{}, - DerivativeTrades: []*DerivativeTrade{}, - SpotOrders: []*SpotOrderUpdate{}, - DerivativeOrders: []*DerivativeOrderUpdate{}, - SpotOrderbookUpdates: []*OrderbookUpdate{}, - DerivativeOrderbookUpdates: []*OrderbookUpdate{}, - Positions: []*Position{}, - OraclePrices: []*OraclePrice{}, - } -} - -func (m *StreamRequest) Validate() error { - if m.BankBalancesFilter == nil && - m.SubaccountDepositsFilter == nil && - m.SpotTradesFilter == nil && - m.DerivativeTradesFilter == nil && - m.SpotOrdersFilter == nil && - m.DerivativeOrdersFilter == nil && - m.SpotOrderbooksFilter == nil && - m.DerivativeOrderbooksFilter == nil && - m.PositionsFilter == nil && - m.OraclePriceFilter == nil { - return fmt.Errorf("at least one filter must be set") - } - return nil -} - -func (m *StreamResponseMap) NextTradeEventNumber() (tradeNumber uint64) { - currentTradesNumber := m.tradeEventsCounter - m.tradeEventsCounter++ - return currentTradesNumber -} diff --git a/chain/tokenfactory/types/authorityMetadata.go b/chain/tokenfactory/types/authorityMetadata.go deleted file mode 100644 index b45bffca..00000000 --- a/chain/tokenfactory/types/authorityMetadata.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func (metadata DenomAuthorityMetadata) Validate() error { - if metadata.Admin != "" { - _, err := sdk.AccAddressFromBech32(metadata.Admin) - if err != nil { - return err - } - } - return nil -} diff --git a/chain/tokenfactory/types/authorityMetadata.pb.go b/chain/tokenfactory/types/authorityMetadata.pb.go index 51337590..381387ae 100644 --- a/chain/tokenfactory/types/authorityMetadata.pb.go +++ b/chain/tokenfactory/types/authorityMetadata.pb.go @@ -30,6 +30,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type DenomAuthorityMetadata struct { // Can be empty for no admin, or a valid injective address Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty" yaml:"admin"` + // true if the admin can burn tokens from other addresses + AdminBurnAllowed bool `protobuf:"varint,2,opt,name=admin_burn_allowed,json=adminBurnAllowed,proto3" json:"admin_burn_allowed,omitempty" yaml:"admin_burn_allowed"` } func (m *DenomAuthorityMetadata) Reset() { *m = DenomAuthorityMetadata{} } @@ -72,6 +74,13 @@ func (m *DenomAuthorityMetadata) GetAdmin() string { return "" } +func (m *DenomAuthorityMetadata) GetAdminBurnAllowed() bool { + if m != nil { + return m.AdminBurnAllowed + } + return false +} + func init() { proto.RegisterType((*DenomAuthorityMetadata)(nil), "injective.tokenfactory.v1beta1.DenomAuthorityMetadata") } @@ -81,24 +90,27 @@ func init() { } var fileDescriptor_525494b77b96b2d3 = []byte{ - // 258 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xcb, 0xcc, 0xcb, 0x4a, - 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0xc9, 0xcf, 0x4e, 0xcd, 0x4b, 0x4b, 0x4c, 0x2e, 0xc9, - 0x2f, 0xaa, 0xd4, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xc8, - 0x2f, 0xca, 0x2c, 0xa9, 0xf4, 0x4d, 0x2d, 0x49, 0x4c, 0x49, 0x2c, 0x49, 0xd4, 0x2b, 0x28, 0xca, - 0x2f, 0xc9, 0x17, 0x92, 0x83, 0xeb, 0xd3, 0x43, 0xd6, 0xa7, 0x07, 0xd5, 0x27, 0x25, 0x92, 0x9e, - 0x9f, 0x9e, 0x0f, 0x56, 0xaa, 0x0f, 0x62, 0x41, 0x74, 0x49, 0xc9, 0x25, 0xe7, 0x17, 0xe7, 0xe6, - 0x17, 0xeb, 0x27, 0x25, 0x16, 0xa7, 0xc2, 0xad, 0x48, 0xce, 0xcf, 0xcc, 0x83, 0xc8, 0x2b, 0xb9, - 0x71, 0x89, 0xb9, 0xa4, 0xe6, 0xe5, 0xe7, 0x3a, 0xa2, 0xdb, 0x2a, 0xa4, 0xc6, 0xc5, 0x9a, 0x98, - 0x92, 0x9b, 0x99, 0x27, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0xe9, 0x24, 0xf0, 0xe9, 0x9e, 0x3c, 0x4f, - 0x65, 0x62, 0x6e, 0x8e, 0x95, 0x12, 0x58, 0x58, 0x29, 0x08, 0x22, 0x6d, 0xc5, 0xf2, 0x62, 0x81, - 0x3c, 0xa3, 0x53, 0xce, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, - 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x05, 0xa5, - 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0x7b, 0xc2, 0xbc, 0xe0, 0x93, 0x98, - 0x54, 0xac, 0x0f, 0xf7, 0x90, 0x6e, 0x72, 0x7e, 0x51, 0x2a, 0x32, 0x37, 0x23, 0x31, 0x33, 0x4f, - 0x3f, 0x37, 0x3f, 0xa5, 0x34, 0x27, 0xb5, 0x18, 0x35, 0x94, 0x4a, 0x2a, 0x0b, 0x52, 0x8b, 0x93, - 0xd8, 0xc0, 0x8e, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x17, 0x16, 0x28, 0x7a, 0x4c, 0x01, - 0x00, 0x00, + // 305 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xb1, 0x4a, 0x33, 0x41, + 0x10, 0xc7, 0xb3, 0x1f, 0x9f, 0xa2, 0x87, 0x45, 0x38, 0x44, 0x62, 0xc0, 0x4d, 0xb8, 0x42, 0xd2, + 0x78, 0x4b, 0x10, 0x2c, 0xd2, 0xe5, 0xb0, 0x11, 0xb5, 0x49, 0x69, 0x13, 0x66, 0xf7, 0xd6, 0x64, + 0xf5, 0x76, 0x27, 0xec, 0xee, 0x45, 0xee, 0x2d, 0x04, 0x5f, 0xc0, 0xc7, 0xb1, 0x4c, 0x69, 0x15, + 0x24, 0x69, 0xac, 0xf3, 0x04, 0xe2, 0x9d, 0x86, 0xc4, 0x6e, 0xe6, 0x3f, 0xf3, 0xe3, 0x0f, 0xbf, + 0xe0, 0x42, 0x99, 0x07, 0x29, 0xbc, 0x9a, 0x4a, 0xe6, 0xf1, 0x51, 0x9a, 0x7b, 0x10, 0x1e, 0x6d, + 0xc1, 0xa6, 0x5d, 0x2e, 0x3d, 0x74, 0x19, 0xe4, 0x7e, 0x8c, 0x56, 0xf9, 0xe2, 0x56, 0x7a, 0x48, + 0xc1, 0x43, 0x3c, 0xb1, 0xe8, 0x31, 0xa4, 0x6b, 0x2e, 0xde, 0xe4, 0xe2, 0x1f, 0xae, 0x79, 0x38, + 0xc2, 0x11, 0x96, 0xaf, 0xec, 0x7b, 0xaa, 0xa8, 0x26, 0x15, 0xe8, 0x34, 0x3a, 0xc6, 0xc1, 0xc9, + 0x75, 0x85, 0x40, 0x65, 0xaa, 0x7b, 0xf4, 0x42, 0x82, 0xa3, 0x4b, 0x69, 0x50, 0xf7, 0xff, 0xd6, + 0x86, 0xa7, 0xc1, 0x0e, 0xa4, 0x5a, 0x99, 0x06, 0x69, 0x93, 0xce, 0x7e, 0x52, 0x5f, 0xcd, 0x5b, + 0x07, 0x05, 0xe8, 0xac, 0x17, 0x95, 0x71, 0x34, 0xa8, 0xce, 0xe1, 0x75, 0x10, 0x96, 0xc3, 0x90, + 0xe7, 0xd6, 0x0c, 0x21, 0xcb, 0xf0, 0x49, 0xa6, 0x8d, 0x7f, 0x6d, 0xd2, 0xd9, 0x4b, 0x4e, 0x56, + 0xf3, 0xd6, 0xf1, 0x06, 0xb4, 0xf5, 0x13, 0x0d, 0xea, 0x65, 0x98, 0xe4, 0xd6, 0xf4, 0xab, 0xa8, + 0xf7, 0xff, 0xf3, 0xb5, 0x45, 0x92, 0xec, 0x6d, 0x41, 0xc9, 0x6c, 0x41, 0xc9, 0xc7, 0x82, 0x92, + 0xe7, 0x25, 0xad, 0xcd, 0x96, 0xb4, 0xf6, 0xbe, 0xa4, 0xb5, 0xbb, 0xc1, 0x48, 0xf9, 0x71, 0xce, + 0x63, 0x81, 0x9a, 0x5d, 0xfd, 0x0a, 0xb9, 0x01, 0xee, 0xd8, 0x5a, 0xcf, 0x99, 0x40, 0x2b, 0x37, + 0xd7, 0x31, 0x28, 0xc3, 0x34, 0xa6, 0x79, 0x26, 0xdd, 0xb6, 0x73, 0x5f, 0x4c, 0xa4, 0xe3, 0xbb, + 0xa5, 0x8a, 0xf3, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x06, 0x42, 0x33, 0x9a, 0x01, 0x00, + 0x00, } func (this *DenomAuthorityMetadata) Equal(that interface{}) bool { @@ -123,6 +135,9 @@ func (this *DenomAuthorityMetadata) Equal(that interface{}) bool { if this.Admin != that1.Admin { return false } + if this.AdminBurnAllowed != that1.AdminBurnAllowed { + return false + } return true } func (m *DenomAuthorityMetadata) Marshal() (dAtA []byte, err error) { @@ -145,6 +160,16 @@ func (m *DenomAuthorityMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.AdminBurnAllowed { + i-- + if m.AdminBurnAllowed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } if len(m.Admin) > 0 { i -= len(m.Admin) copy(dAtA[i:], m.Admin) @@ -176,6 +201,9 @@ func (m *DenomAuthorityMetadata) Size() (n int) { if l > 0 { n += 1 + l + sovAuthorityMetadata(uint64(l)) } + if m.AdminBurnAllowed { + n += 2 + } return n } @@ -246,6 +274,26 @@ func (m *DenomAuthorityMetadata) Unmarshal(dAtA []byte) error { } m.Admin = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminBurnAllowed", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthorityMetadata + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AdminBurnAllowed = bool(v != 0) default: iNdEx = preIndex skippy, err := skipAuthorityMetadata(dAtA[iNdEx:]) diff --git a/chain/tokenfactory/types/denoms.go b/chain/tokenfactory/types/denoms.go deleted file mode 100644 index a31d5cef..00000000 --- a/chain/tokenfactory/types/denoms.go +++ /dev/null @@ -1,117 +0,0 @@ -package types - -import ( - "context" - "fmt" - "strings" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -const ( - ModuleDenomPrefix = "factory" - // See the TokenFactory readme for a derivation of these. - // TL;DR, MaxSubdenomLength + MaxHrpLength = 60 comes from SDK max denom length = 128 - // and the structure of tokenfactory denoms. - MaxSubdenomLength = 44 - MaxHrpLength = 16 - // MaxCreatorLength = 59 + MaxHrpLength - MaxCreatorLength = 59 + MaxHrpLength - MinSubdenomLength = 1 -) - -// GetTokenDenom constructs a denom string for tokens created by tokenfactory -// based on an input creator address and a subdenom -// The denom constructed is factory/{creator}/{subdenom} -func GetTokenDenom(creator, subdenom string) (string, error) { - if len(subdenom) > MaxSubdenomLength { - return "", ErrSubdenomTooLong - } - if len(subdenom) < MinSubdenomLength { - return "", ErrSubdenomTooShort - } - - strParts := strings.Split(subdenom, "/") - - for idx := range strParts { - if len(strParts[idx]) < MinSubdenomLength { - return "", ErrSubdenomNestedTooShort - } - } - - if len(creator) > MaxCreatorLength { - return "", ErrCreatorTooLong - } - if strings.Contains(creator, "/") || len(creator) < 1 { - return "", ErrInvalidCreator - } - - // ensure creator address is in lowercase Bech32 form - creatorAddr, err := sdk.AccAddressFromBech32(creator) - if err != nil { - return "", err - } - - denom := strings.Join([]string{ModuleDenomPrefix, creatorAddr.String(), subdenom}, "/") - return denom, sdk.ValidateDenom(denom) -} - -// DeconstructDenom takes a token denom string and verifies that it is a valid -// denom of the tokenfactory module, and is of the form `factory/{creator}/{subdenom}` -// If valid, it returns the creator address and subdenom -func DeconstructDenom(denom string) (creator, subdenom string, err error) { - err = sdk.ValidateDenom(denom) - if err != nil { - return "", "", err - } - - strParts := strings.Split(denom, "/") - if len(strParts) < 3 { - return "", "", errors.Wrapf(ErrInvalidDenom, "not enough parts of denom %s", denom) - } - - if strParts[0] != ModuleDenomPrefix { - return "", "", errors.Wrapf(ErrInvalidDenom, "denom prefix is incorrect. Is: %s. Should be: %s", strParts[0], ModuleDenomPrefix) - } - - creator = strParts[1] - creatorAddr, err := sdk.AccAddressFromBech32(creator) - if err != nil { - return "", "", errors.Wrapf(ErrInvalidDenom, "Invalid creator address (%s)", err) - } - - if len(strParts[2]) < MinSubdenomLength { - return "", "", errors.Wrapf(ErrSubdenomTooShort, "subdenom too short. Has length of: %d. Should have length at least of: %d", len(strParts[2]), MinSubdenomLength) - } - - if len(strParts) > 3 { - for i := 2; i <= len(strParts)-1; i++ { - if len(strParts[i]) < MinSubdenomLength { - return "", "", errors.Wrapf(ErrSubdenomNestedTooShort, "nested subdenom too short. Has length of: %d. Should have length at least of: %d", len(strParts[i]), MinSubdenomLength) - } - } - } - - // Handle the case where a denom has a slash in its subdenom. For example, - // when we did the split, we'd turn factory/accaddr/atomderivative/sikka into ["factory", "accaddr", "atomderivative", "sikka"] - // So we have to join [2:] with a "/" as the delimiter to get back the correct subdenom which should be "atomderivative/sikka" - subdenom = strings.Join(strParts[2:], "/") - - return creatorAddr.String(), subdenom, nil -} - -// NewTokenFactoryDenomMintCoinsRestriction creates and returns a MintingRestrictionFn that only allows minting of -// valid tokenfactory denoms -func NewTokenFactoryDenomMintCoinsRestriction() banktypes.MintingRestrictionFn { - return func(ctx context.Context, coinsToMint sdk.Coins) error { - for _, coin := range coinsToMint { - _, _, err := DeconstructDenom(coin.Denom) - if err != nil { - return fmt.Errorf("does not have permission to mint %s", coin.Denom) - } - } - return nil - } -} diff --git a/chain/tokenfactory/types/errors.go b/chain/tokenfactory/types/errors.go deleted file mode 100644 index 48ebec3a..00000000 --- a/chain/tokenfactory/types/errors.go +++ /dev/null @@ -1,25 +0,0 @@ -package types - -// DONTCOVER - -import ( - "fmt" - - "cosmossdk.io/errors" -) - -// x/tokenfactory module sentinel errors -var ( - ErrDenomExists = errors.Register(ModuleName, 2, "attempting to create a denom that already exists (has bank metadata)") - ErrUnauthorized = errors.Register(ModuleName, 3, "unauthorized account") - ErrInvalidDenom = errors.Register(ModuleName, 4, "invalid denom") - ErrInvalidCreator = errors.Register(ModuleName, 5, "invalid creator") - ErrInvalidAuthorityMetadata = errors.Register(ModuleName, 6, "invalid authority metadata") - ErrInvalidGenesis = errors.Register(ModuleName, 7, "invalid genesis") - ErrSubdenomTooLong = errors.Register(ModuleName, 8, fmt.Sprintf("subdenom too long, max length is %d bytes", MaxSubdenomLength)) - ErrSubdenomTooShort = errors.Register(ModuleName, 9, fmt.Sprintf("subdenom too short, min length is %d bytes", MinSubdenomLength)) - ErrSubdenomNestedTooShort = errors.Register(ModuleName, 10, fmt.Sprintf("nested subdenom too short, each one should have at least %d bytes", MinSubdenomLength)) - ErrCreatorTooLong = errors.Register(ModuleName, 11, fmt.Sprintf("creator too long, max length is %d bytes", MaxCreatorLength)) - ErrDenomDoesNotExist = errors.Register(ModuleName, 12, "denom does not exist") - ErrAmountNotPositive = errors.Register(ModuleName, 13, "amount has to be positive") -) diff --git a/chain/tokenfactory/types/events.pb.go b/chain/tokenfactory/types/events.pb.go index 8d71b85d..d6e06990 100644 --- a/chain/tokenfactory/types/events.pb.go +++ b/chain/tokenfactory/types/events.pb.go @@ -25,23 +25,23 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -type EventCreateTFDenom struct { +type EventCreateDenom struct { Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *EventCreateTFDenom) Reset() { *m = EventCreateTFDenom{} } -func (m *EventCreateTFDenom) String() string { return proto.CompactTextString(m) } -func (*EventCreateTFDenom) ProtoMessage() {} -func (*EventCreateTFDenom) Descriptor() ([]byte, []int) { +func (m *EventCreateDenom) Reset() { *m = EventCreateDenom{} } +func (m *EventCreateDenom) String() string { return proto.CompactTextString(m) } +func (*EventCreateDenom) ProtoMessage() {} +func (*EventCreateDenom) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{0} } -func (m *EventCreateTFDenom) XXX_Unmarshal(b []byte) error { +func (m *EventCreateDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventCreateTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventCreateDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventCreateTFDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventCreateDenom.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -51,49 +51,50 @@ func (m *EventCreateTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *EventCreateTFDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventCreateTFDenom.Merge(m, src) +func (m *EventCreateDenom) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCreateDenom.Merge(m, src) } -func (m *EventCreateTFDenom) XXX_Size() int { +func (m *EventCreateDenom) XXX_Size() int { return m.Size() } -func (m *EventCreateTFDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventCreateTFDenom.DiscardUnknown(m) +func (m *EventCreateDenom) XXX_DiscardUnknown() { + xxx_messageInfo_EventCreateDenom.DiscardUnknown(m) } -var xxx_messageInfo_EventCreateTFDenom proto.InternalMessageInfo +var xxx_messageInfo_EventCreateDenom proto.InternalMessageInfo -func (m *EventCreateTFDenom) GetAccount() string { +func (m *EventCreateDenom) GetAccount() string { if m != nil { return m.Account } return "" } -func (m *EventCreateTFDenom) GetDenom() string { +func (m *EventCreateDenom) GetDenom() string { if m != nil { return m.Denom } return "" } -type EventMintTFDenom struct { - RecipientAddress string `protobuf:"bytes,1,opt,name=recipient_address,json=recipientAddress,proto3" json:"recipient_address,omitempty"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` +type EventMint struct { + Minter string `protobuf:"bytes,1,opt,name=minter,proto3" json:"minter,omitempty"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` } -func (m *EventMintTFDenom) Reset() { *m = EventMintTFDenom{} } -func (m *EventMintTFDenom) String() string { return proto.CompactTextString(m) } -func (*EventMintTFDenom) ProtoMessage() {} -func (*EventMintTFDenom) Descriptor() ([]byte, []int) { +func (m *EventMint) Reset() { *m = EventMint{} } +func (m *EventMint) String() string { return proto.CompactTextString(m) } +func (*EventMint) ProtoMessage() {} +func (*EventMint) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{1} } -func (m *EventMintTFDenom) XXX_Unmarshal(b []byte) error { +func (m *EventMint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventMintTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventMint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventMintTFDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventMint.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -103,49 +104,57 @@ func (m *EventMintTFDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, er return b[:n], nil } } -func (m *EventMintTFDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventMintTFDenom.Merge(m, src) +func (m *EventMint) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMint.Merge(m, src) } -func (m *EventMintTFDenom) XXX_Size() int { +func (m *EventMint) XXX_Size() int { return m.Size() } -func (m *EventMintTFDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventMintTFDenom.DiscardUnknown(m) +func (m *EventMint) XXX_DiscardUnknown() { + xxx_messageInfo_EventMint.DiscardUnknown(m) } -var xxx_messageInfo_EventMintTFDenom proto.InternalMessageInfo +var xxx_messageInfo_EventMint proto.InternalMessageInfo -func (m *EventMintTFDenom) GetRecipientAddress() string { +func (m *EventMint) GetMinter() string { if m != nil { - return m.RecipientAddress + return m.Minter } return "" } -func (m *EventMintTFDenom) GetAmount() types.Coin { +func (m *EventMint) GetAmount() types.Coin { if m != nil { return m.Amount } return types.Coin{} } -type EventBurnDenom struct { - BurnerAddress string `protobuf:"bytes,1,opt,name=burner_address,json=burnerAddress,proto3" json:"burner_address,omitempty"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` +func (m *EventMint) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + +type EventBurn struct { + Burner string `protobuf:"bytes,1,opt,name=burner,proto3" json:"burner,omitempty"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount"` + BurnFrom string `protobuf:"bytes,3,opt,name=burn_from,json=burnFrom,proto3" json:"burn_from,omitempty"` } -func (m *EventBurnDenom) Reset() { *m = EventBurnDenom{} } -func (m *EventBurnDenom) String() string { return proto.CompactTextString(m) } -func (*EventBurnDenom) ProtoMessage() {} -func (*EventBurnDenom) Descriptor() ([]byte, []int) { +func (m *EventBurn) Reset() { *m = EventBurn{} } +func (m *EventBurn) String() string { return proto.CompactTextString(m) } +func (*EventBurn) ProtoMessage() {} +func (*EventBurn) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{2} } -func (m *EventBurnDenom) XXX_Unmarshal(b []byte) error { +func (m *EventBurn) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventBurnDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventBurn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventBurnDenom.Marshal(b, m, deterministic) + return xxx_messageInfo_EventBurn.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -155,49 +164,56 @@ func (m *EventBurnDenom) XXX_Marshal(b []byte, deterministic bool) ([]byte, erro return b[:n], nil } } -func (m *EventBurnDenom) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventBurnDenom.Merge(m, src) +func (m *EventBurn) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBurn.Merge(m, src) } -func (m *EventBurnDenom) XXX_Size() int { +func (m *EventBurn) XXX_Size() int { return m.Size() } -func (m *EventBurnDenom) XXX_DiscardUnknown() { - xxx_messageInfo_EventBurnDenom.DiscardUnknown(m) +func (m *EventBurn) XXX_DiscardUnknown() { + xxx_messageInfo_EventBurn.DiscardUnknown(m) } -var xxx_messageInfo_EventBurnDenom proto.InternalMessageInfo +var xxx_messageInfo_EventBurn proto.InternalMessageInfo -func (m *EventBurnDenom) GetBurnerAddress() string { +func (m *EventBurn) GetBurner() string { if m != nil { - return m.BurnerAddress + return m.Burner } return "" } -func (m *EventBurnDenom) GetAmount() types.Coin { +func (m *EventBurn) GetAmount() types.Coin { if m != nil { return m.Amount } return types.Coin{} } -type EventChangeTFAdmin struct { +func (m *EventBurn) GetBurnFrom() string { + if m != nil { + return m.BurnFrom + } + return "" +} + +type EventChangeAdmin struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` NewAdminAddress string `protobuf:"bytes,2,opt,name=new_admin_address,json=newAdminAddress,proto3" json:"new_admin_address,omitempty"` } -func (m *EventChangeTFAdmin) Reset() { *m = EventChangeTFAdmin{} } -func (m *EventChangeTFAdmin) String() string { return proto.CompactTextString(m) } -func (*EventChangeTFAdmin) ProtoMessage() {} -func (*EventChangeTFAdmin) Descriptor() ([]byte, []int) { +func (m *EventChangeAdmin) Reset() { *m = EventChangeAdmin{} } +func (m *EventChangeAdmin) String() string { return proto.CompactTextString(m) } +func (*EventChangeAdmin) ProtoMessage() {} +func (*EventChangeAdmin) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{3} } -func (m *EventChangeTFAdmin) XXX_Unmarshal(b []byte) error { +func (m *EventChangeAdmin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventChangeTFAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventChangeAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventChangeTFAdmin.Marshal(b, m, deterministic) + return xxx_messageInfo_EventChangeAdmin.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -207,49 +223,49 @@ func (m *EventChangeTFAdmin) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *EventChangeTFAdmin) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventChangeTFAdmin.Merge(m, src) +func (m *EventChangeAdmin) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventChangeAdmin.Merge(m, src) } -func (m *EventChangeTFAdmin) XXX_Size() int { +func (m *EventChangeAdmin) XXX_Size() int { return m.Size() } -func (m *EventChangeTFAdmin) XXX_DiscardUnknown() { - xxx_messageInfo_EventChangeTFAdmin.DiscardUnknown(m) +func (m *EventChangeAdmin) XXX_DiscardUnknown() { + xxx_messageInfo_EventChangeAdmin.DiscardUnknown(m) } -var xxx_messageInfo_EventChangeTFAdmin proto.InternalMessageInfo +var xxx_messageInfo_EventChangeAdmin proto.InternalMessageInfo -func (m *EventChangeTFAdmin) GetDenom() string { +func (m *EventChangeAdmin) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *EventChangeTFAdmin) GetNewAdminAddress() string { +func (m *EventChangeAdmin) GetNewAdminAddress() string { if m != nil { return m.NewAdminAddress } return "" } -type EventSetTFDenomMetadata struct { +type EventSetDenomMetadata struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata"` } -func (m *EventSetTFDenomMetadata) Reset() { *m = EventSetTFDenomMetadata{} } -func (m *EventSetTFDenomMetadata) String() string { return proto.CompactTextString(m) } -func (*EventSetTFDenomMetadata) ProtoMessage() {} -func (*EventSetTFDenomMetadata) Descriptor() ([]byte, []int) { +func (m *EventSetDenomMetadata) Reset() { *m = EventSetDenomMetadata{} } +func (m *EventSetDenomMetadata) String() string { return proto.CompactTextString(m) } +func (*EventSetDenomMetadata) ProtoMessage() {} +func (*EventSetDenomMetadata) Descriptor() ([]byte, []int) { return fileDescriptor_b9fd0c5434c2a5b7, []int{4} } -func (m *EventSetTFDenomMetadata) XXX_Unmarshal(b []byte) error { +func (m *EventSetDenomMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *EventSetTFDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *EventSetDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_EventSetTFDenomMetadata.Marshal(b, m, deterministic) + return xxx_messageInfo_EventSetDenomMetadata.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -259,26 +275,26 @@ func (m *EventSetTFDenomMetadata) XXX_Marshal(b []byte, deterministic bool) ([]b return b[:n], nil } } -func (m *EventSetTFDenomMetadata) XXX_Merge(src proto.Message) { - xxx_messageInfo_EventSetTFDenomMetadata.Merge(m, src) +func (m *EventSetDenomMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSetDenomMetadata.Merge(m, src) } -func (m *EventSetTFDenomMetadata) XXX_Size() int { +func (m *EventSetDenomMetadata) XXX_Size() int { return m.Size() } -func (m *EventSetTFDenomMetadata) XXX_DiscardUnknown() { - xxx_messageInfo_EventSetTFDenomMetadata.DiscardUnknown(m) +func (m *EventSetDenomMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_EventSetDenomMetadata.DiscardUnknown(m) } -var xxx_messageInfo_EventSetTFDenomMetadata proto.InternalMessageInfo +var xxx_messageInfo_EventSetDenomMetadata proto.InternalMessageInfo -func (m *EventSetTFDenomMetadata) GetDenom() string { +func (m *EventSetDenomMetadata) GetDenom() string { if m != nil { return m.Denom } return "" } -func (m *EventSetTFDenomMetadata) GetMetadata() types1.Metadata { +func (m *EventSetDenomMetadata) GetMetadata() types1.Metadata { if m != nil { return m.Metadata } @@ -286,11 +302,11 @@ func (m *EventSetTFDenomMetadata) GetMetadata() types1.Metadata { } func init() { - proto.RegisterType((*EventCreateTFDenom)(nil), "injective.tokenfactory.v1beta1.EventCreateTFDenom") - proto.RegisterType((*EventMintTFDenom)(nil), "injective.tokenfactory.v1beta1.EventMintTFDenom") - proto.RegisterType((*EventBurnDenom)(nil), "injective.tokenfactory.v1beta1.EventBurnDenom") - proto.RegisterType((*EventChangeTFAdmin)(nil), "injective.tokenfactory.v1beta1.EventChangeTFAdmin") - proto.RegisterType((*EventSetTFDenomMetadata)(nil), "injective.tokenfactory.v1beta1.EventSetTFDenomMetadata") + proto.RegisterType((*EventCreateDenom)(nil), "injective.tokenfactory.v1beta1.EventCreateDenom") + proto.RegisterType((*EventMint)(nil), "injective.tokenfactory.v1beta1.EventMint") + proto.RegisterType((*EventBurn)(nil), "injective.tokenfactory.v1beta1.EventBurn") + proto.RegisterType((*EventChangeAdmin)(nil), "injective.tokenfactory.v1beta1.EventChangeAdmin") + proto.RegisterType((*EventSetDenomMetadata)(nil), "injective.tokenfactory.v1beta1.EventSetDenomMetadata") } func init() { @@ -298,38 +314,39 @@ func init() { } var fileDescriptor_b9fd0c5434c2a5b7 = []byte{ - // 442 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x52, 0xc1, 0x6a, 0x14, 0x41, - 0x10, 0xdd, 0x11, 0x8d, 0xda, 0x62, 0x4c, 0x86, 0x80, 0x6b, 0xc0, 0x51, 0x16, 0x04, 0x31, 0x38, - 0x43, 0x14, 0xf4, 0x28, 0xd9, 0xc4, 0x80, 0x60, 0x2e, 0x6b, 0xf0, 0xe0, 0x25, 0xf4, 0xf4, 0x94, - 0xbb, 0xed, 0x66, 0xaa, 0x86, 0xee, 0x9a, 0x8d, 0xfb, 0x17, 0x7e, 0x56, 0x8e, 0x39, 0x7a, 0x12, - 0xd9, 0xfd, 0x11, 0x99, 0x99, 0xee, 0xce, 0xaa, 0x88, 0x87, 0xdc, 0xa6, 0xba, 0x5e, 0xbd, 0x57, - 0xef, 0x4d, 0x89, 0x1d, 0x8d, 0x5f, 0x40, 0xb1, 0x9e, 0x41, 0xc6, 0x34, 0x05, 0xfc, 0x2c, 0x15, - 0x93, 0x99, 0x67, 0xb3, 0xdd, 0x1c, 0x58, 0xee, 0x66, 0x30, 0x03, 0x64, 0x9b, 0x56, 0x86, 0x98, - 0xe2, 0x24, 0x80, 0xd3, 0x55, 0x70, 0xea, 0xc0, 0xdb, 0x5b, 0x63, 0x1a, 0x53, 0x0b, 0xcd, 0x9a, - 0xaf, 0x6e, 0x6a, 0x3b, 0x51, 0x64, 0x4b, 0xb2, 0x59, 0x2e, 0x2d, 0x04, 0x5e, 0x45, 0x1a, 0xff, - 0xea, 0xe3, 0x34, 0xf4, 0x9b, 0xc2, 0xf5, 0x5f, 0xfd, 0x67, 0x45, 0x59, 0xf3, 0x84, 0x8c, 0xe6, - 0xf9, 0x11, 0xb0, 0x2c, 0x24, 0xcb, 0x6e, 0x6e, 0x70, 0x20, 0xe2, 0xb7, 0xcd, 0xf6, 0xfb, 0x06, - 0x24, 0xc3, 0xf1, 0xe1, 0x01, 0x20, 0x95, 0x71, 0x5f, 0xdc, 0x94, 0x4a, 0x51, 0x8d, 0xdc, 0x8f, - 0x1e, 0x47, 0x4f, 0x6f, 0x8f, 0x7c, 0x19, 0x6f, 0x89, 0x1b, 0x45, 0x03, 0xe9, 0x5f, 0x6b, 0xdf, - 0xbb, 0x62, 0xf0, 0x55, 0x6c, 0xb4, 0x2c, 0x47, 0x1a, 0xd9, 0x73, 0xec, 0x88, 0x4d, 0x03, 0x4a, - 0x57, 0x1a, 0x90, 0x4f, 0x64, 0x51, 0x18, 0xb0, 0xd6, 0xb1, 0x6d, 0x84, 0xc6, 0x5e, 0xf7, 0x1e, - 0xbf, 0x16, 0x6b, 0xb2, 0x6c, 0xf5, 0x1a, 0xde, 0x3b, 0x2f, 0x1e, 0xa4, 0x9d, 0xdf, 0xb4, 0xc9, - 0xc3, 0x47, 0x97, 0xee, 0x93, 0xc6, 0xe1, 0xf5, 0xf3, 0x1f, 0x8f, 0x7a, 0x23, 0x07, 0x1f, 0x54, - 0x62, 0xbd, 0x55, 0x1e, 0xd6, 0x06, 0x3b, 0xdd, 0x27, 0x62, 0x3d, 0xaf, 0x0d, 0x82, 0xf9, 0x43, - 0xf4, 0x6e, 0xf7, 0x7a, 0x65, 0xc5, 0x8f, 0x3e, 0xb1, 0x89, 0xc4, 0x31, 0x1c, 0x1f, 0xee, 0x15, - 0xa5, 0xc6, 0xcb, 0x5c, 0xa2, 0x95, 0x5c, 0xe2, 0x67, 0x62, 0x13, 0xe1, 0xec, 0x44, 0x36, 0x90, - 0xb0, 0x4e, 0x97, 0xdc, 0x3d, 0x84, 0xb3, 0x76, 0xd4, 0x2d, 0x34, 0xa8, 0xc4, 0xfd, 0x96, 0xf7, - 0x03, 0xf8, 0x08, 0xfd, 0xaf, 0xfa, 0x07, 0xf9, 0x1b, 0x71, 0xab, 0x74, 0x08, 0xe7, 0xe1, 0xe1, - 0xa5, 0x07, 0x9c, 0x06, 0x0f, 0x9e, 0xc6, 0xf9, 0x08, 0x43, 0xc3, 0xd3, 0xf3, 0x45, 0x12, 0x5d, - 0x2c, 0x92, 0xe8, 0xe7, 0x22, 0x89, 0xbe, 0x2d, 0x93, 0xde, 0xc5, 0x32, 0xe9, 0x7d, 0x5f, 0x26, - 0xbd, 0x4f, 0xa3, 0xb1, 0xe6, 0x49, 0x9d, 0xa7, 0x8a, 0xca, 0xec, 0x9d, 0x3f, 0xac, 0xf7, 0x32, - 0xb7, 0x59, 0x38, 0xb3, 0xe7, 0x8a, 0x0c, 0xac, 0x96, 0x13, 0xa9, 0x31, 0x2b, 0xa9, 0xa8, 0x4f, - 0xc1, 0xfe, 0x7e, 0x83, 0x3c, 0xaf, 0xc0, 0xe6, 0x6b, 0xed, 0xc1, 0xbd, 0xfc, 0x15, 0x00, 0x00, - 0xff, 0xff, 0x0f, 0x75, 0x34, 0xbb, 0x4d, 0x03, 0x00, 0x00, + // 449 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x8d, 0xf9, 0x08, 0xcd, 0x72, 0x00, 0xac, 0x82, 0x42, 0x10, 0x06, 0xf9, 0x84, 0x40, 0xd8, + 0x2a, 0x48, 0x70, 0x44, 0x4d, 0x01, 0x09, 0x89, 0x5e, 0x02, 0x27, 0x2e, 0xd1, 0x7a, 0x3d, 0x4d, + 0x96, 0x74, 0x67, 0xaa, 0xdd, 0x75, 0x8a, 0xff, 0x05, 0x3f, 0xab, 0xc7, 0x1c, 0x39, 0x21, 0x94, + 0xfc, 0x11, 0xb4, 0xeb, 0xb5, 0x13, 0x84, 0x10, 0x52, 0x6f, 0x7e, 0x33, 0xef, 0xbd, 0xf1, 0x9b, + 0x1d, 0xf6, 0x4c, 0xe2, 0x57, 0x10, 0x56, 0x2e, 0x21, 0xb7, 0xb4, 0x00, 0x3c, 0xe1, 0xc2, 0x92, + 0xae, 0xf3, 0xe5, 0x41, 0x01, 0x96, 0x1f, 0xe4, 0xb0, 0x04, 0xb4, 0x26, 0x3b, 0xd3, 0x64, 0x29, + 0x4e, 0x3a, 0x72, 0xb6, 0x4b, 0xce, 0x02, 0x79, 0xb4, 0x3f, 0xa3, 0x19, 0x79, 0x6a, 0xee, 0xbe, + 0x1a, 0xd5, 0x28, 0x11, 0x64, 0x14, 0x99, 0xbc, 0xe0, 0x06, 0x3a, 0x5f, 0x41, 0x12, 0xff, 0xea, + 0xe3, 0xa2, 0xeb, 0x3b, 0x10, 0xfa, 0xaf, 0xfe, 0xf3, 0x8b, 0xbc, 0xb2, 0x73, 0xd2, 0xd2, 0xd6, + 0xc7, 0x60, 0x79, 0xc9, 0x2d, 0x6f, 0x74, 0xe9, 0x98, 0xdd, 0x7e, 0xe7, 0xfe, 0xfe, 0x48, 0x03, + 0xb7, 0xf0, 0x16, 0x90, 0x54, 0x3c, 0x64, 0x37, 0xb8, 0x10, 0x54, 0xa1, 0x1d, 0x46, 0x8f, 0xa3, + 0x27, 0x83, 0x49, 0x0b, 0xe3, 0x7d, 0x76, 0xbd, 0x74, 0x94, 0xe1, 0x15, 0x5f, 0x6f, 0x40, 0xfa, + 0x8d, 0x0d, 0xbc, 0xc7, 0xb1, 0x44, 0x1b, 0xdf, 0x63, 0x7d, 0x25, 0xd1, 0x82, 0x0e, 0xda, 0x80, + 0xe2, 0xd7, 0xac, 0xcf, 0x95, 0xf7, 0x74, 0xda, 0x9b, 0x2f, 0xee, 0x67, 0x4d, 0xa2, 0xcc, 0x25, + 0x6e, 0x97, 0x93, 0x1d, 0x91, 0xc4, 0xf1, 0xb5, 0x8b, 0x9f, 0x8f, 0x7a, 0x93, 0x40, 0x8f, 0x47, + 0x6c, 0x4f, 0x83, 0x00, 0xb9, 0x04, 0x3d, 0xbc, 0xea, 0x2d, 0x3b, 0x9c, 0xd6, 0x61, 0xf2, 0xb8, + 0xd2, 0xe8, 0x26, 0x17, 0x95, 0xc6, 0xed, 0xe4, 0x06, 0x5d, 0x7e, 0xf2, 0x03, 0x36, 0x70, 0x16, + 0xd3, 0x13, 0x4d, 0xaa, 0x1d, 0xed, 0x0a, 0xef, 0x35, 0xa9, 0xf4, 0x73, 0xbb, 0xb8, 0x39, 0xc7, + 0x19, 0x1c, 0x96, 0x4a, 0xe2, 0x76, 0x3d, 0xd1, 0xce, 0x7a, 0xe2, 0xa7, 0xec, 0x0e, 0xc2, 0xf9, + 0x94, 0x3b, 0xca, 0x94, 0x97, 0xa5, 0x06, 0x63, 0xc2, 0x02, 0x6f, 0x21, 0x9c, 0x7b, 0xe9, 0x61, + 0x53, 0x4e, 0x91, 0xdd, 0xf5, 0xae, 0x9f, 0xc0, 0xfa, 0xb7, 0x68, 0x5f, 0xeb, 0x1f, 0xd6, 0x6f, + 0xd8, 0x9e, 0x0a, 0x8c, 0x10, 0xee, 0xe1, 0x36, 0x1c, 0x2e, 0xba, 0x70, 0xad, 0x4d, 0x08, 0xd8, + 0x89, 0xc6, 0xa7, 0x17, 0xeb, 0x24, 0x5a, 0xad, 0x93, 0xe8, 0xd7, 0x3a, 0x89, 0xbe, 0x6f, 0x92, + 0xde, 0x6a, 0x93, 0xf4, 0x7e, 0x6c, 0x92, 0xde, 0x97, 0xc9, 0x4c, 0xda, 0x79, 0x55, 0x64, 0x82, + 0x54, 0xfe, 0xa1, 0xbd, 0xad, 0x8f, 0xbc, 0x30, 0x79, 0x77, 0x69, 0xcf, 0x05, 0x69, 0xd8, 0x85, + 0x73, 0x2e, 0x31, 0x57, 0x54, 0x56, 0xa7, 0x60, 0xfe, 0x3c, 0x43, 0x5b, 0x9f, 0x81, 0x29, 0xfa, + 0xfe, 0xe6, 0x5e, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x69, 0xd3, 0xee, 0x9b, 0x50, 0x03, 0x00, + 0x00, } -func (m *EventCreateTFDenom) Marshal() (dAtA []byte, err error) { +func (m *EventCreateDenom) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -339,12 +356,12 @@ func (m *EventCreateTFDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventCreateTFDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventCreateDenom) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventCreateTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventCreateDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -366,7 +383,7 @@ func (m *EventCreateTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *EventMintTFDenom) Marshal() (dAtA []byte, err error) { +func (m *EventMint) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -376,16 +393,23 @@ func (m *EventMintTFDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventMintTFDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventMint) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventMintTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventMint) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -396,17 +420,17 @@ func (m *EventMintTFDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x12 - if len(m.RecipientAddress) > 0 { - i -= len(m.RecipientAddress) - copy(dAtA[i:], m.RecipientAddress) - i = encodeVarintEvents(dAtA, i, uint64(len(m.RecipientAddress))) + if len(m.Minter) > 0 { + i -= len(m.Minter) + copy(dAtA[i:], m.Minter) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Minter))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EventBurnDenom) Marshal() (dAtA []byte, err error) { +func (m *EventBurn) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -416,16 +440,23 @@ func (m *EventBurnDenom) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventBurnDenom) MarshalTo(dAtA []byte) (int, error) { +func (m *EventBurn) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventBurnDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventBurn) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.BurnFrom) > 0 { + i -= len(m.BurnFrom) + copy(dAtA[i:], m.BurnFrom) + i = encodeVarintEvents(dAtA, i, uint64(len(m.BurnFrom))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -436,17 +467,17 @@ func (m *EventBurnDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x12 - if len(m.BurnerAddress) > 0 { - i -= len(m.BurnerAddress) - copy(dAtA[i:], m.BurnerAddress) - i = encodeVarintEvents(dAtA, i, uint64(len(m.BurnerAddress))) + if len(m.Burner) > 0 { + i -= len(m.Burner) + copy(dAtA[i:], m.Burner) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Burner))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *EventChangeTFAdmin) Marshal() (dAtA []byte, err error) { +func (m *EventChangeAdmin) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -456,12 +487,12 @@ func (m *EventChangeTFAdmin) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventChangeTFAdmin) MarshalTo(dAtA []byte) (int, error) { +func (m *EventChangeAdmin) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventChangeTFAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventChangeAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -483,7 +514,7 @@ func (m *EventChangeTFAdmin) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *EventSetTFDenomMetadata) Marshal() (dAtA []byte, err error) { +func (m *EventSetDenomMetadata) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -493,12 +524,12 @@ func (m *EventSetTFDenomMetadata) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *EventSetTFDenomMetadata) MarshalTo(dAtA []byte) (int, error) { +func (m *EventSetDenomMetadata) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *EventSetTFDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *EventSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -534,7 +565,7 @@ func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *EventCreateTFDenom) Size() (n int) { +func (m *EventCreateDenom) Size() (n int) { if m == nil { return 0 } @@ -551,37 +582,45 @@ func (m *EventCreateTFDenom) Size() (n int) { return n } -func (m *EventMintTFDenom) Size() (n int) { +func (m *EventMint) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.RecipientAddress) + l = len(m.Minter) if l > 0 { n += 1 + l + sovEvents(uint64(l)) } l = m.Amount.Size() n += 1 + l + sovEvents(uint64(l)) + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } -func (m *EventBurnDenom) Size() (n int) { +func (m *EventBurn) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.BurnerAddress) + l = len(m.Burner) if l > 0 { n += 1 + l + sovEvents(uint64(l)) } l = m.Amount.Size() n += 1 + l + sovEvents(uint64(l)) + l = len(m.BurnFrom) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } -func (m *EventChangeTFAdmin) Size() (n int) { +func (m *EventChangeAdmin) Size() (n int) { if m == nil { return 0 } @@ -598,7 +637,7 @@ func (m *EventChangeTFAdmin) Size() (n int) { return n } -func (m *EventSetTFDenomMetadata) Size() (n int) { +func (m *EventSetDenomMetadata) Size() (n int) { if m == nil { return 0 } @@ -619,7 +658,7 @@ func sovEvents(x uint64) (n int) { func sozEvents(x uint64) (n int) { return sovEvents(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { +func (m *EventCreateDenom) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -642,10 +681,10 @@ func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventCreateTFDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventCreateDenom: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventCreateTFDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventCreateDenom: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -733,7 +772,7 @@ func (m *EventCreateTFDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { +func (m *EventMint) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -756,15 +795,15 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventMintTFDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventMint: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventMintTFDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventMint: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RecipientAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Minter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -792,7 +831,7 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RecipientAddress = string(dAtA[iNdEx:postIndex]) + m.Minter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -827,6 +866,38 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -848,7 +919,7 @@ func (m *EventMintTFDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { +func (m *EventBurn) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -871,15 +942,15 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventBurnDenom: wiretype end group for non-group") + return fmt.Errorf("proto: EventBurn: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventBurnDenom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventBurn: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BurnerAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Burner", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -907,7 +978,7 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BurnerAddress = string(dAtA[iNdEx:postIndex]) + m.Burner = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -942,6 +1013,38 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnFrom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BurnFrom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -963,7 +1066,7 @@ func (m *EventBurnDenom) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { +func (m *EventChangeAdmin) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -986,10 +1089,10 @@ func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventChangeTFAdmin: wiretype end group for non-group") + return fmt.Errorf("proto: EventChangeAdmin: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventChangeTFAdmin: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventChangeAdmin: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1077,7 +1180,7 @@ func (m *EventChangeTFAdmin) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventSetTFDenomMetadata) Unmarshal(dAtA []byte) error { +func (m *EventSetDenomMetadata) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1100,10 +1203,10 @@ func (m *EventSetTFDenomMetadata) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventSetTFDenomMetadata: wiretype end group for non-group") + return fmt.Errorf("proto: EventSetDenomMetadata: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventSetTFDenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventSetDenomMetadata: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: diff --git a/chain/tokenfactory/types/expected_keepers.go b/chain/tokenfactory/types/expected_keepers.go deleted file mode 100644 index 27c25b23..00000000 --- a/chain/tokenfactory/types/expected_keepers.go +++ /dev/null @@ -1,35 +0,0 @@ -package types - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" -) - -type BankKeeper interface { - // Methods imported from bank should be defined here - GetDenomMetaData(ctx context.Context, denom string) (banktypes.Metadata, bool) - SetDenomMetaData(ctx context.Context, denomMetaData banktypes.Metadata) - - HasSupply(ctx context.Context, denom string) bool - - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - - SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error - HasBalance(ctx context.Context, addr sdk.AccAddress, amt sdk.Coin) bool - BlockedAddr(addr sdk.AccAddress) bool -} - -type AccountKeeper interface { - SetModuleAccount(ctx context.Context, macc sdk.ModuleAccountI) - NewAccount(ctx context.Context, acc sdk.AccountI) sdk.AccountI -} - -// CommunityPoolKeeper defines the contract needed to be fulfilled for community pool interactions. -type CommunityPoolKeeper interface { - FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error -} diff --git a/chain/tokenfactory/types/genesis.go b/chain/tokenfactory/types/genesis.go deleted file mode 100644 index 3c4bdb6d..00000000 --- a/chain/tokenfactory/types/genesis.go +++ /dev/null @@ -1,51 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// this line is used by starport scaffolding # genesis/types/import - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - -// DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - FactoryDenoms: []GenesisDenom{}, - } -} - -// Validate performs basic genesis state validation returning an error upon any -// failure. -func (gs GenesisState) Validate() error { - err := gs.Params.Validate() - if err != nil { - return err - } - - seenDenoms := map[string]bool{} - - for _, denom := range gs.GetFactoryDenoms() { - if seenDenoms[denom.GetDenom()] { - return errors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", denom.GetDenom()) - } - seenDenoms[denom.GetDenom()] = true - - _, _, err := DeconstructDenom(denom.GetDenom()) - if err != nil { - return err - } - - if denom.AuthorityMetadata.Admin != "" { - _, err = sdk.AccAddressFromBech32(denom.AuthorityMetadata.Admin) - if err != nil { - return errors.Wrapf(ErrInvalidAuthorityMetadata, "Invalid admin address (%s)", err) - } - } - } - - return nil -} diff --git a/chain/tokenfactory/types/gov.go b/chain/tokenfactory/types/gov.go deleted file mode 100644 index 346c24ae..00000000 --- a/chain/tokenfactory/types/gov.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - errorsmod "cosmossdk.io/errors" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" -) - -const ( - ProposalTypeUpdateDenomsMetaData = "UpdateDenomsMetaData" -) - -func init() { - govtypes.RegisterProposalType(ProposalTypeUpdateDenomsMetaData) -} - -var ( - _ govtypes.Content = &UpdateDenomsMetadataProposal{} -) - -func NewUpdateDenomsMetadataProposal(title, description string, metadatas []banktypes.Metadata) govtypes.Content { - return &UpdateDenomsMetadataProposal{ - Title: title, - Description: description, - Metadatas: metadatas, - } -} - -func (p *UpdateDenomsMetadataProposal) GetTitle() string { return p.Title } - -func (p *UpdateDenomsMetadataProposal) GetDescription() string { return p.Description } - -func (p *UpdateDenomsMetadataProposal) ProposalRoute() string { return RouterKey } - -func (p *UpdateDenomsMetadataProposal) ProposalType() string { - return ProposalTypeUpdateDenomsMetaData -} - -func (p *UpdateDenomsMetadataProposal) ValidateBasic() error { - err := govtypes.ValidateAbstract(p) - if err != nil { - return err - } - - for idx := range p.Metadatas { - metadata := p.Metadatas[idx] - if metadata.Base == "" { - return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid denom (%s)", metadata.Base) - } - } - - return nil -} diff --git a/chain/tokenfactory/types/gov.pb.go b/chain/tokenfactory/types/gov.pb.go deleted file mode 100644 index 0a090625..00000000 --- a/chain/tokenfactory/types/gov.pb.go +++ /dev/null @@ -1,465 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: injective/tokenfactory/v1beta1/gov.proto - -package types - -import ( - fmt "fmt" - types "github.com/cosmos/cosmos-sdk/x/bank/types" - _ "github.com/cosmos/gogoproto/gogoproto" - proto "github.com/cosmos/gogoproto/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type UpdateDenomsMetadataProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - Metadatas []types.Metadata `protobuf:"bytes,3,rep,name=metadatas,proto3" json:"metadatas"` - Deposit string `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty" yaml:"deposit"` -} - -func (m *UpdateDenomsMetadataProposal) Reset() { *m = UpdateDenomsMetadataProposal{} } -func (m *UpdateDenomsMetadataProposal) String() string { return proto.CompactTextString(m) } -func (*UpdateDenomsMetadataProposal) ProtoMessage() {} -func (*UpdateDenomsMetadataProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_2c4dd8ce2ae85492, []int{0} -} -func (m *UpdateDenomsMetadataProposal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UpdateDenomsMetadataProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_UpdateDenomsMetadataProposal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *UpdateDenomsMetadataProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateDenomsMetadataProposal.Merge(m, src) -} -func (m *UpdateDenomsMetadataProposal) XXX_Size() int { - return m.Size() -} -func (m *UpdateDenomsMetadataProposal) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateDenomsMetadataProposal.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateDenomsMetadataProposal proto.InternalMessageInfo - -func init() { - proto.RegisterType((*UpdateDenomsMetadataProposal)(nil), "injective.tokenfactory.v1beta1.UpdateDenomsMetadataProposal") -} - -func init() { - proto.RegisterFile("injective/tokenfactory/v1beta1/gov.proto", fileDescriptor_2c4dd8ce2ae85492) -} - -var fileDescriptor_2c4dd8ce2ae85492 = []byte{ - // 332 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0xc1, 0x4e, 0xf2, 0x40, - 0x14, 0x85, 0xdb, 0x1f, 0x7e, 0x0d, 0x25, 0x71, 0xd1, 0xb0, 0x68, 0x88, 0x0e, 0x84, 0x15, 0x0b, - 0x9d, 0x09, 0xba, 0x63, 0x27, 0x71, 0x63, 0xa2, 0x89, 0x69, 0xe2, 0xc6, 0xdd, 0xb4, 0xbd, 0x96, - 0x91, 0xb6, 0x77, 0xd2, 0xb9, 0x90, 0xf0, 0x06, 0x2e, 0x7d, 0x04, 0x1f, 0x87, 0x8d, 0x09, 0x4b, - 0x57, 0xc4, 0xc0, 0x1b, 0xf8, 0x04, 0x86, 0xb6, 0x20, 0xee, 0x7a, 0x7a, 0xbe, 0x7b, 0xcf, 0xcd, - 0x19, 0xa7, 0xaf, 0xb2, 0x17, 0x08, 0x49, 0xcd, 0x40, 0x10, 0x4e, 0x20, 0x7b, 0x96, 0x21, 0x61, - 0x3e, 0x17, 0xb3, 0x41, 0x00, 0x24, 0x07, 0x22, 0xc6, 0x19, 0xd7, 0x39, 0x12, 0xba, 0x6c, 0x4f, - 0xf2, 0x43, 0x92, 0x57, 0x64, 0xbb, 0x15, 0x63, 0x8c, 0x05, 0x2a, 0xb6, 0x5f, 0xe5, 0x54, 0x9b, - 0x85, 0x68, 0x52, 0x34, 0x22, 0x90, 0xd9, 0x64, 0xbf, 0x74, 0x2b, 0x4a, 0xbf, 0xf7, 0x61, 0x3b, - 0xa7, 0x8f, 0x3a, 0x92, 0x04, 0x37, 0x90, 0x61, 0x6a, 0xee, 0x81, 0x64, 0x24, 0x49, 0x3e, 0xe4, - 0xa8, 0xd1, 0xc8, 0xc4, 0x6d, 0x39, 0xff, 0x49, 0x51, 0x02, 0x9e, 0xdd, 0xb5, 0xfb, 0x0d, 0xbf, - 0x14, 0x6e, 0xd7, 0x69, 0x46, 0x60, 0xc2, 0x5c, 0x69, 0x52, 0x98, 0x79, 0xff, 0x0a, 0xef, 0xf0, - 0x97, 0x7b, 0xed, 0x34, 0xd2, 0x6a, 0x97, 0xf1, 0x6a, 0xdd, 0x5a, 0xbf, 0x79, 0x79, 0xc6, 0xcb, - 0x63, 0x78, 0x91, 0x5f, 0x1d, 0xc3, 0x77, 0x89, 0xa3, 0xfa, 0x62, 0xd5, 0xb1, 0xfc, 0xdf, 0x29, - 0xf7, 0xdc, 0x39, 0x8e, 0x40, 0xa3, 0x51, 0xe4, 0xd5, 0xb7, 0x01, 0x23, 0xf7, 0x7b, 0xd5, 0x39, - 0x99, 0xcb, 0x34, 0x19, 0xf6, 0x2a, 0xa3, 0xe7, 0xef, 0x90, 0x61, 0xfd, 0xf5, 0xbd, 0x63, 0x8d, - 0x92, 0xc5, 0x9a, 0xd9, 0xcb, 0x35, 0xb3, 0xbf, 0xd6, 0xcc, 0x7e, 0xdb, 0x30, 0x6b, 0xb9, 0x61, - 0xd6, 0xe7, 0x86, 0x59, 0x4f, 0x7e, 0xac, 0x68, 0x3c, 0x0d, 0x78, 0x88, 0xa9, 0xb8, 0xdd, 0x55, - 0x79, 0x27, 0x03, 0x23, 0xf6, 0xc5, 0x5e, 0x84, 0x98, 0xc3, 0xa1, 0x1c, 0x4b, 0x95, 0x89, 0x14, - 0xa3, 0x69, 0x02, 0xe6, 0xef, 0xfb, 0xd0, 0x5c, 0x83, 0x09, 0x8e, 0x8a, 0x12, 0xaf, 0x7e, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x31, 0xc4, 0xfd, 0x93, 0xc6, 0x01, 0x00, 0x00, -} - -func (m *UpdateDenomsMetadataProposal) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UpdateDenomsMetadataProposal) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UpdateDenomsMetadataProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Deposit) > 0 { - i -= len(m.Deposit) - copy(dAtA[i:], m.Deposit) - i = encodeVarintGov(dAtA, i, uint64(len(m.Deposit))) - i-- - dAtA[i] = 0x22 - } - if len(m.Metadatas) > 0 { - for iNdEx := len(m.Metadatas) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Metadatas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGov(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintGov(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintGov(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintGov(dAtA []byte, offset int, v uint64) int { - offset -= sovGov(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *UpdateDenomsMetadataProposal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Title) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - if len(m.Metadatas) > 0 { - for _, e := range m.Metadatas { - l = e.Size() - n += 1 + l + sovGov(uint64(l)) - } - } - l = len(m.Deposit) - if l > 0 { - n += 1 + l + sovGov(uint64(l)) - } - return n -} - -func sovGov(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGov(x uint64) (n int) { - return sovGov(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *UpdateDenomsMetadataProposal) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UpdateDenomsMetadataProposal: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateDenomsMetadataProposal: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadatas", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadatas = append(m.Metadatas, types.Metadata{}) - if err := m.Metadatas[len(m.Metadatas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Deposit", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGov - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGov - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGov - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Deposit = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGov(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGov - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGov(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGov - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGov - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGov - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGov - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGov = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGov = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGov = fmt.Errorf("proto: unexpected end of group") -) diff --git a/chain/tokenfactory/types/keys.go b/chain/tokenfactory/types/keys.go deleted file mode 100644 index 6d8aed08..00000000 --- a/chain/tokenfactory/types/keys.go +++ /dev/null @@ -1,50 +0,0 @@ -package types - -import ( - "strings" -) - -const ( - // ModuleName defines the module name - ModuleName = "tokenfactory" - - // StoreKey defines the primary module store key - StoreKey = ModuleName - - // RouterKey is the message route for slashing - RouterKey = ModuleName - - // QuerierRoute defines the module's query routing key - QuerierRoute = ModuleName - - // MemStoreKey defines the in-memory store key - MemStoreKey = "mem_tokenfactory" -) - -// KeySeparator is used to combine parts of the keys in the store -const KeySeparator = "|" - -var ( - DenomAuthorityMetadataKey = []byte{0x01} - DenomsPrefixKey = []byte{0x02} - CreatorPrefixKey = []byte{0x03} - AdminPrefixKey = []byte{0x04} - ParamsKey = []byte{0x05} -) - -// GetDenomPrefixStore returns the store prefix where all the data associated with a specific denom -// is stored -func GetDenomPrefixStore(denom string) []byte { - return []byte(strings.Join([]string{string(DenomsPrefixKey), denom, ""}, KeySeparator)) -} - -// GetCreatorPrefix returns the store prefix where the list of the denoms created by a specific -// creator are stored. -func GetCreatorPrefix(creator string) []byte { - return []byte(strings.Join([]string{string(CreatorPrefixKey), creator, ""}, KeySeparator)) -} - -// GetCreatorsPrefix returns the store prefix where a list of all creator addresses are stored -func GetCreatorsPrefix() []byte { - return append(CreatorPrefixKey, []byte(KeySeparator)...) -} diff --git a/chain/tokenfactory/types/msgs.go b/chain/tokenfactory/types/msgs.go deleted file mode 100644 index c3a62338..00000000 --- a/chain/tokenfactory/types/msgs.go +++ /dev/null @@ -1,288 +0,0 @@ -package types - -import ( - "cosmossdk.io/errors" - "cosmossdk.io/math" - "github.com/InjectiveLabs/sdk-go/chain/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "strings" -) - -// constants -const ( - TypeMsgCreateDenom = "create_denom" - TypeMsgMint = "tf_mint" - TypeMsgBurn = "tf_burn" - TypeMsgChangeAdmin = "change_admin" - TypeMsgSetDenomMetadata = "set_denom_metadata" - TypeMsgUpdateParams = "update_params" -) - -var _ sdk.Msg = &MsgCreateDenom{} -var _ sdk.Msg = &MsgMint{} -var _ sdk.Msg = &MsgBurn{} -var _ sdk.Msg = &MsgSetDenomMetadata{} -var _ sdk.Msg = &MsgChangeAdmin{} -var _ sdk.Msg = &MsgUpdateParams{} - -func (m MsgUpdateParams) Route() string { return RouterKey } - -func (m MsgUpdateParams) Type() string { return TypeMsgUpdateParams } - -func (m MsgUpdateParams) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { - return errors.Wrap(err, "invalid authority address") - } - - if err := m.Params.Validate(); err != nil { - return err - } - - return nil -} - -func (m *MsgUpdateParams) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) -} - -func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { - addr, _ := sdk.AccAddressFromBech32(m.Authority) - return []sdk.AccAddress{addr} -} - -// NewMsgCreateDenom creates a msg to create a new denom -func NewMsgCreateDenom(sender, subdenom, name, symbol string, decimals uint32) *MsgCreateDenom { - return &MsgCreateDenom{ - Sender: sender, - Subdenom: subdenom, - Name: name, - Symbol: symbol, - Decimals: decimals, - } -} - -func (m MsgCreateDenom) Route() string { return RouterKey } -func (m MsgCreateDenom) Type() string { return TypeMsgCreateDenom } -func (m MsgCreateDenom) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - _, err = GetTokenDenom(m.Sender, m.Subdenom) - if err != nil { - return errors.Wrap(ErrInvalidDenom, err.Error()) - } - - return nil -} - -func (m *MsgCreateDenom) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgCreateDenom) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgMint creates a message to mint tokens -func NewMsgMint(sender string, amount sdk.Coin) *MsgMint { - return &MsgMint{ - Sender: sender, - Amount: amount, - } -} - -func (m MsgMint) Route() string { return RouterKey } -func (m MsgMint) Type() string { return TypeMsgMint } -func (m MsgMint) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - if !m.Amount.IsValid() || m.Amount.Amount.Equal(math.ZeroInt()) { - return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) - } - - return nil -} - -func (m MsgMint) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(&m)) -} - -func (m MsgMint) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgBurn creates a message to burn tokens -func NewMsgBurn(sender string, amount sdk.Coin) *MsgBurn { - return &MsgBurn{ - Sender: sender, - Amount: amount, - } -} - -func (m MsgBurn) Route() string { return RouterKey } -func (m MsgBurn) Type() string { return TypeMsgBurn } -func (m MsgBurn) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - if !m.Amount.IsValid() || !m.Amount.IsPositive() { - return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) - } - - return nil -} - -func (m *MsgBurn) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgBurn) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgChangeAdmin creates a message to change the admin -func NewMsgChangeAdmin(sender, denom, newAdmin string) *MsgChangeAdmin { - return &MsgChangeAdmin{ - Sender: sender, - Denom: denom, - NewAdmin: newAdmin, - } -} - -func (m MsgChangeAdmin) Route() string { return RouterKey } -func (m MsgChangeAdmin) Type() string { return TypeMsgChangeAdmin } -func (m MsgChangeAdmin) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - _, err = sdk.AccAddressFromBech32(m.NewAdmin) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) - } - - _, _, err = DeconstructDenom(m.Denom) - if err != nil { - return err - } - - return nil -} - -func (m *MsgChangeAdmin) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgChangeAdmin) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// NewMsgSetDenomMetadata creates a message to set the denom metadata -func NewMsgSetDenomMetadata(sender string, metadata banktypes.Metadata) *MsgSetDenomMetadata { - return &MsgSetDenomMetadata{ - Sender: sender, - Metadata: metadata, - } -} - -func (m MsgSetDenomMetadata) Route() string { return RouterKey } -func (m MsgSetDenomMetadata) Type() string { return TypeMsgSetDenomMetadata } -func (m MsgSetDenomMetadata) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(m.Sender) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) - } - - err = m.Metadata.Validate() - if err != nil { - return err - } - - if m.Metadata.Base == types.InjectiveCoin { - return errors.Wrap(ErrInvalidDenom, "cannot set metadata for INJ") - } - - err = sdk.ValidateDenom(m.Metadata.Base) - if err != nil { - return err - } - - // If denom metadata is for a TokenFactory denom, run the different components validations - strParts := strings.Split(m.Metadata.Base, "/") - if len(strParts) > 2 { - _, _, err = DeconstructDenom(m.Metadata.Base) - if err != nil { - return err - } - } - - return nil -} - -func (m *MsgSetDenomMetadata) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m MsgSetDenomMetadata) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(m.Sender) - return []sdk.AccAddress{sender} -} - -// var _ sdk.Msg = &MsgForceTransfer{} - -// // NewMsgForceTransfer creates a transfer funds from one account to another -// func NewMsgForceTransfer(sender string, amount sdk.Coin, fromAddr, toAddr string) *MsgForceTransfer { -// return &MsgForceTransfer{ -// Sender: sender, -// Amount: amount, -// TransferFromAddress: fromAddr, -// TransferToAddress: toAddr, -// } -// } - -// func (m MsgForceTransfer) Route() string { return RouterKey } -// func (m MsgForceTransfer) Type() string { return TypeMsgForceTransfer } -// func (m MsgForceTransfer) ValidateBasic() error { -// _, err := sdk.AccAddressFromBech32(m.Sender) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) -// } - -// _, err = sdk.AccAddressFromBech32(m.TransferFromAddress) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) -// } -// _, err = sdk.AccAddressFromBech32(m.TransferToAddress) -// if err != nil { -// return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid address (%s)", err) -// } - -// if !m.Amount.IsValid() { -// return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) -// } - -// return nil -// } - -// func (m MsgForceTransfer) GetSignBytes() []byte { -// return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(&m)) -// } - -// func (m MsgForceTransfer) GetSigners() []sdk.AccAddress { -// sender, _ := sdk.AccAddressFromBech32(m.Sender) -// return []sdk.AccAddress{sender} -// } diff --git a/chain/tokenfactory/types/params.go b/chain/tokenfactory/types/params.go deleted file mode 100644 index f1d52477..00000000 --- a/chain/tokenfactory/types/params.go +++ /dev/null @@ -1,63 +0,0 @@ -package types - -import ( - "fmt" - - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - - chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" -) - -// Parameter store keys. -var ( - KeyDenomCreationFee = []byte("DenomCreationFee") -) - -// ParamTable for gamm module. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -func NewParams(denomCreationFee sdk.Coins) Params { - return Params{ - DenomCreationFee: denomCreationFee, - } -} - -// default gamm module parameters. -func DefaultParams() Params { - return Params{ - DenomCreationFee: sdk.NewCoins(sdk.NewCoin(chaintypes.InjectiveCoin, math.NewIntWithDecimal(10, 18))), // 10 INJ - } -} - -// validate params. -func (p Params) Validate() error { - if err := validateDenomCreationFee(p.DenomCreationFee); err != nil { - return err - } - - return nil -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyDenomCreationFee, &p.DenomCreationFee, validateDenomCreationFee), - } -} - -func validateDenomCreationFee(i interface{}) error { - v, ok := i.(sdk.Coins) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if v.Validate() != nil { - return fmt.Errorf("invalid denom creation fee: %+v", i) - } - - return nil -} diff --git a/chain/tokenfactory/types/tx.pb.go b/chain/tokenfactory/types/tx.pb.go index 10dc706d..5bcfbf5a 100644 --- a/chain/tokenfactory/types/tx.pb.go +++ b/chain/tokenfactory/types/tx.pb.go @@ -49,6 +49,8 @@ type MsgCreateDenom struct { Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` + // true if admins are allowed to burn tokens from other addresses + AllowAdminBurn bool `protobuf:"varint,6,opt,name=allow_admin_burn,json=allowAdminBurn,proto3" json:"allow_admin_burn,omitempty" yaml:"allow_admin_burn"` } func (m *MsgCreateDenom) Reset() { *m = MsgCreateDenom{} } @@ -119,6 +121,13 @@ func (m *MsgCreateDenom) GetDecimals() uint32 { return 0 } +func (m *MsgCreateDenom) GetAllowAdminBurn() bool { + if m != nil { + return m.AllowAdminBurn + } + return false +} + // MsgCreateDenomResponse is the return value of MsgCreateDenom // It returns the full string of the newly created denom type MsgCreateDenomResponse struct { @@ -165,11 +174,12 @@ func (m *MsgCreateDenomResponse) GetNewTokenDenom() string { return "" } -// MsgMint is the sdk.Msg type for allowing an admin account to mint -// more of a token. For now, we only support minting to the sender account +// MsgMint is the sdk.Msg type for allowing an admin account or other permitted accounts to mint +// more of a token. type MsgMint struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` } func (m *MsgMint) Reset() { *m = MsgMint{} } @@ -219,6 +229,13 @@ func (m *MsgMint) GetAmount() types.Coin { return types.Coin{} } +func (m *MsgMint) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + type MsgMintResponse struct { } @@ -256,10 +273,11 @@ func (m *MsgMintResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgMintResponse proto.InternalMessageInfo // MsgBurn is the sdk.Msg type for allowing an admin account to burn -// a token. For now, we only support burning from the sender account. +// a token. type MsgBurn struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + BurnFromAddress string `protobuf:"bytes,3,opt,name=burnFromAddress,proto3" json:"burnFromAddress,omitempty" yaml:"burn_from_address"` } func (m *MsgBurn) Reset() { *m = MsgBurn{} } @@ -309,6 +327,13 @@ func (m *MsgBurn) GetAmount() types.Coin { return types.Coin{} } +func (m *MsgBurn) GetBurnFromAddress() string { + if m != nil { + return m.BurnFromAddress + } + return "" +} + type MsgBurnResponse struct { } @@ -448,8 +473,9 @@ var xxx_messageInfo_MsgChangeAdminResponse proto.InternalMessageInfo // MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set // the denom's bank metadata type MsgSetDenomMetadata struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata" yaml:"metadata"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata" yaml:"metadata"` + AdminBurnDisabled *MsgSetDenomMetadata_AdminBurnDisabled `protobuf:"bytes,3,opt,name=admin_burn_disabled,json=adminBurnDisabled,proto3" json:"admin_burn_disabled,omitempty" yaml:"admin_burn_disabled"` } func (m *MsgSetDenomMetadata) Reset() { *m = MsgSetDenomMetadata{} } @@ -499,6 +525,58 @@ func (m *MsgSetDenomMetadata) GetMetadata() types1.Metadata { return types1.Metadata{} } +func (m *MsgSetDenomMetadata) GetAdminBurnDisabled() *MsgSetDenomMetadata_AdminBurnDisabled { + if m != nil { + return m.AdminBurnDisabled + } + return nil +} + +type MsgSetDenomMetadata_AdminBurnDisabled struct { + // true if the admin burn capability should be disabled + ShouldDisable bool `protobuf:"varint,1,opt,name=should_disable,json=shouldDisable,proto3" json:"should_disable,omitempty" yaml:"should_disable"` +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Reset() { *m = MsgSetDenomMetadata_AdminBurnDisabled{} } +func (m *MsgSetDenomMetadata_AdminBurnDisabled) String() string { return proto.CompactTextString(m) } +func (*MsgSetDenomMetadata_AdminBurnDisabled) ProtoMessage() {} +func (*MsgSetDenomMetadata_AdminBurnDisabled) Descriptor() ([]byte, []int) { + return fileDescriptor_b0b26fd7f19ce3c4, []int{8, 0} +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.Merge(m, src) +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_Size() int { + return m.Size() +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgSetDenomMetadata_AdminBurnDisabled proto.InternalMessageInfo + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) GetShouldDisable() bool { + if m != nil { + return m.ShouldDisable + } + return false +} + // MsgSetDenomMetadataResponse defines the response structure for an executed // MsgSetDenomMetadata message. type MsgSetDenomMetadataResponse struct { @@ -639,6 +717,7 @@ func init() { proto.RegisterType((*MsgChangeAdmin)(nil), "injective.tokenfactory.v1beta1.MsgChangeAdmin") proto.RegisterType((*MsgChangeAdminResponse)(nil), "injective.tokenfactory.v1beta1.MsgChangeAdminResponse") proto.RegisterType((*MsgSetDenomMetadata)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadata") + proto.RegisterType((*MsgSetDenomMetadata_AdminBurnDisabled)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadata.AdminBurnDisabled") proto.RegisterType((*MsgSetDenomMetadataResponse)(nil), "injective.tokenfactory.v1beta1.MsgSetDenomMetadataResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.tokenfactory.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.tokenfactory.v1beta1.MsgUpdateParamsResponse") @@ -649,63 +728,74 @@ func init() { } var fileDescriptor_b0b26fd7f19ce3c4 = []byte{ - // 888 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xbd, 0x6f, 0xdb, 0x46, - 0x14, 0x37, 0x13, 0x49, 0xb5, 0xcf, 0x71, 0x65, 0x33, 0x6e, 0x2c, 0x33, 0x08, 0x15, 0x30, 0x45, - 0x3e, 0x1c, 0x88, 0x84, 0x62, 0x20, 0x41, 0xd5, 0x29, 0x4a, 0x86, 0x16, 0xa8, 0x80, 0x82, 0x69, - 0x97, 0xa2, 0x80, 0x7b, 0x24, 0xaf, 0x14, 0x6b, 0xf1, 0x4e, 0xe0, 0x1d, 0xed, 0x68, 0x2b, 0x8a, - 0x4e, 0x9d, 0xfa, 0x37, 0x74, 0xed, 0xe2, 0xa1, 0x7b, 0x57, 0x03, 0x1d, 0x1a, 0x74, 0xea, 0x24, - 0x14, 0xf6, 0xe0, 0x5d, 0x7f, 0x41, 0x71, 0x1f, 0xa4, 0x28, 0xa9, 0x6a, 0xa8, 0x4e, 0x5d, 0x24, - 0xf2, 0xde, 0xef, 0x7d, 0xfc, 0x7e, 0xf7, 0xde, 0x93, 0xc0, 0x83, 0x08, 0x7f, 0x83, 0x7c, 0x16, - 0x9d, 0x20, 0x87, 0x91, 0x63, 0x84, 0xbf, 0x86, 0x3e, 0x23, 0xc9, 0xc8, 0x39, 0x69, 0x7b, 0x88, - 0xc1, 0xb6, 0xc3, 0x5e, 0xdb, 0xc3, 0x84, 0x30, 0xa2, 0x9b, 0x39, 0xd0, 0x2e, 0x02, 0x6d, 0x05, - 0x34, 0x76, 0x43, 0x12, 0x12, 0x01, 0x75, 0xf8, 0x93, 0xf4, 0x32, 0x4c, 0x9f, 0xd0, 0x98, 0x50, - 0xc7, 0x83, 0x14, 0xe5, 0x31, 0x7d, 0x12, 0xe1, 0x05, 0x3b, 0x3e, 0xce, 0xed, 0xfc, 0x45, 0xd9, - 0xf7, 0x94, 0x3d, 0xa6, 0xa1, 0x73, 0xd2, 0xe6, 0x5f, 0xca, 0xb0, 0x2f, 0x0d, 0x47, 0x32, 0xa3, - 0x7c, 0x51, 0xa6, 0xc7, 0x6f, 0xa1, 0x34, 0x84, 0x09, 0x8c, 0x33, 0xf0, 0x0e, 0x8c, 0x23, 0x4c, - 0x1c, 0xf1, 0x29, 0x8f, 0xac, 0x9f, 0xae, 0x81, 0x77, 0x7b, 0x34, 0x7c, 0x91, 0x20, 0xc8, 0xd0, - 0x4b, 0x84, 0x49, 0xac, 0x3f, 0x02, 0x35, 0x8a, 0x70, 0x80, 0x92, 0x86, 0x76, 0x57, 0x7b, 0xb8, - 0xd1, 0xdd, 0x99, 0x8c, 0x9b, 0x5b, 0x23, 0x18, 0x0f, 0x3a, 0x96, 0x3c, 0xb7, 0x5c, 0x05, 0xd0, - 0x1d, 0xb0, 0x4e, 0x53, 0x2f, 0xe0, 0x6e, 0x8d, 0x6b, 0x02, 0x7c, 0x73, 0x32, 0x6e, 0xd6, 0x15, - 0x58, 0x59, 0x2c, 0x37, 0x07, 0xe9, 0xf7, 0x40, 0x05, 0xc3, 0x18, 0x35, 0xae, 0x0b, 0x70, 0x7d, - 0x32, 0x6e, 0x6e, 0x4a, 0x30, 0x3f, 0xb5, 0x5c, 0x61, 0x14, 0x05, 0x8c, 0x62, 0x8f, 0x0c, 0x1a, - 0x95, 0x85, 0x02, 0xc4, 0x39, 0x2f, 0x40, 0x3c, 0xf0, 0x02, 0x02, 0xe4, 0x47, 0x31, 0x1c, 0xd0, - 0x46, 0xf5, 0xae, 0xf6, 0x70, 0xab, 0x58, 0x40, 0x66, 0xb1, 0xdc, 0x1c, 0xd4, 0x39, 0xfc, 0xee, - 0xea, 0xec, 0x40, 0x95, 0xff, 0xc3, 0xd5, 0xd9, 0xc1, 0xbd, 0x25, 0xfa, 0xf9, 0x42, 0x90, 0x96, - 0x24, 0xf0, 0x25, 0xb8, 0x35, 0xab, 0x91, 0x8b, 0xe8, 0x90, 0x60, 0x8a, 0xf4, 0x2e, 0xa8, 0x63, - 0x74, 0x7a, 0x24, 0x5c, 0x8f, 0xa4, 0x0e, 0x52, 0x34, 0x63, 0x32, 0x6e, 0xde, 0x52, 0xd4, 0x66, - 0x01, 0x96, 0xbb, 0x85, 0xd1, 0xe9, 0x67, 0xfc, 0x40, 0xc4, 0xb2, 0x7e, 0xd6, 0xc0, 0x3b, 0x3d, - 0x1a, 0xf6, 0x22, 0xcc, 0x56, 0xd1, 0xfe, 0x23, 0x50, 0x83, 0x31, 0x49, 0x31, 0x13, 0xca, 0x6f, - 0x3e, 0xd9, 0xb7, 0x55, 0x63, 0xf0, 0xf6, 0xcb, 0x3a, 0xd5, 0x7e, 0x41, 0x22, 0xdc, 0x7d, 0xef, - 0x7c, 0xdc, 0x5c, 0x9b, 0x46, 0x92, 0x6e, 0x96, 0xab, 0xfc, 0x3b, 0x8f, 0xe7, 0x34, 0xb9, 0xbd, - 0x44, 0x93, 0x38, 0xc2, 0xcc, 0xda, 0x01, 0x75, 0x55, 0x6c, 0x26, 0x42, 0x46, 0xa0, 0x9b, 0x26, - 0xf8, 0xff, 0x4d, 0xc0, 0x4b, 0x13, 0xac, 0x08, 0xf0, 0x62, 0x73, 0x02, 0xbf, 0x69, 0x72, 0x08, - 0xfa, 0x10, 0x87, 0xe8, 0x79, 0x10, 0x47, 0x2b, 0xf1, 0xb8, 0x0f, 0xaa, 0xc5, 0x09, 0xd8, 0x9e, - 0x8c, 0x9b, 0x37, 0xb2, 0x06, 0x14, 0xf7, 0x2d, 0xcd, 0x7a, 0x1b, 0x6c, 0xf0, 0x56, 0x80, 0x3c, - 0xbe, 0x1a, 0x80, 0xdd, 0xc9, 0xb8, 0xb9, 0x3d, 0xed, 0x12, 0x61, 0xb2, 0xdc, 0x75, 0x8c, 0x4e, - 0x45, 0x15, 0xe5, 0xbb, 0x55, 0x54, 0xde, 0x92, 0xfe, 0x0d, 0xd9, 0xad, 0x53, 0x32, 0x39, 0xcf, - 0xdf, 0x35, 0x70, 0xb3, 0x47, 0xc3, 0x57, 0x88, 0x89, 0xce, 0xeb, 0x21, 0x06, 0x03, 0xc8, 0xe0, - 0x2a, 0x64, 0x5d, 0xb0, 0x1e, 0x2b, 0x37, 0x75, 0x6d, 0x77, 0xa6, 0xd7, 0x86, 0x8f, 0xf3, 0x6b, - 0xcb, 0x62, 0x77, 0xf7, 0xd4, 0xd5, 0xa9, 0x99, 0xcc, 0x9c, 0x2d, 0x37, 0x8f, 0xd3, 0xf9, 0x60, - 0x8e, 0xe5, 0xa3, 0x25, 0x2c, 0x29, 0x62, 0x72, 0x20, 0x5b, 0x79, 0x94, 0x3b, 0xe0, 0xf6, 0x3f, - 0x10, 0xca, 0x09, 0x9f, 0x6b, 0xe2, 0xb2, 0x3f, 0x1f, 0x06, 0x90, 0xa1, 0x4f, 0xc5, 0x2a, 0xd4, - 0x9f, 0x82, 0x0d, 0x98, 0xb2, 0x3e, 0x49, 0x22, 0x36, 0x52, 0x7c, 0x1b, 0x7f, 0xfc, 0xd2, 0xda, - 0x55, 0x2c, 0x9e, 0x07, 0x41, 0x82, 0x28, 0x7d, 0xc5, 0x92, 0x08, 0x87, 0xee, 0x14, 0xaa, 0xbf, - 0x04, 0x35, 0xb9, 0x4c, 0x15, 0xef, 0xfb, 0xf6, 0xbf, 0xff, 0x48, 0xd8, 0x32, 0x5f, 0xb7, 0xc2, - 0x05, 0x70, 0x95, 0x6f, 0xe7, 0x19, 0xe7, 0x3a, 0x8d, 0xca, 0xe9, 0xbe, 0xbf, 0x84, 0x6e, 0x2a, - 0xaa, 0x6e, 0x49, 0x47, 0x6b, 0x1f, 0xec, 0xcd, 0x31, 0xc9, 0x58, 0x3e, 0xf9, 0xb5, 0x0a, 0xae, - 0xf7, 0x68, 0xa8, 0xa7, 0x60, 0xb3, 0xb8, 0xc7, 0xed, 0xb7, 0x15, 0x38, 0xbb, 0xd3, 0x8c, 0xa7, - 0xab, 0xe1, 0xf3, 0x1d, 0xf8, 0x15, 0xa8, 0x88, 0xdd, 0xf5, 0xa0, 0x84, 0x3f, 0x07, 0x1a, 0x4e, - 0x49, 0x60, 0x31, 0x83, 0x58, 0x2e, 0x65, 0x32, 0x70, 0x60, 0xa9, 0x0c, 0xc5, 0x0d, 0x20, 0xa4, - 0x2b, 0x4c, 0x7f, 0x29, 0xe9, 0xa6, 0xf8, 0x72, 0xd2, 0x2d, 0x0e, 0xa4, 0xfe, 0xbd, 0x06, 0xb6, - 0x17, 0xa6, 0xf1, 0xb0, 0x44, 0xb0, 0x79, 0x27, 0xe3, 0xc3, 0xff, 0xe0, 0x94, 0x97, 0xf1, 0x1a, - 0xdc, 0x98, 0x19, 0x91, 0x32, 0xf2, 0x15, 0x1d, 0x8c, 0x67, 0x2b, 0x3a, 0x64, 0x99, 0x8d, 0xea, - 0xb7, 0x57, 0x67, 0x07, 0x5a, 0x77, 0x70, 0x7e, 0x61, 0x6a, 0x6f, 0x2e, 0x4c, 0xed, 0xaf, 0x0b, - 0x53, 0xfb, 0xf1, 0xd2, 0x5c, 0x7b, 0x73, 0x69, 0xae, 0xfd, 0x79, 0x69, 0xae, 0x7d, 0xe1, 0x86, - 0x11, 0xeb, 0xa7, 0x9e, 0xed, 0x93, 0xd8, 0xf9, 0x38, 0xcb, 0xf1, 0x09, 0xf4, 0xa8, 0x93, 0x67, - 0x6c, 0xf9, 0x24, 0x41, 0xc5, 0xd7, 0x3e, 0x8c, 0xb0, 0x13, 0x93, 0x20, 0x1d, 0x20, 0x3a, 0x3b, - 0x52, 0x6c, 0x34, 0x44, 0xd4, 0xab, 0x89, 0xbf, 0x3e, 0x87, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, - 0xf0, 0x22, 0x4e, 0x61, 0x0f, 0x0a, 0x00, 0x00, + // 1063 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0x8e, 0x9b, 0x1f, 0x24, 0x93, 0xe6, 0x97, 0x93, 0x36, 0x1b, 0x47, 0x5d, 0x07, 0x17, 0xb5, + 0x69, 0xaa, 0xb5, 0x95, 0x44, 0x6a, 0x45, 0xb8, 0x50, 0x37, 0x45, 0x20, 0x58, 0x09, 0xb9, 0xf4, + 0x82, 0x90, 0x96, 0xd9, 0xf5, 0xd4, 0x31, 0x59, 0xcf, 0x44, 0x9e, 0x71, 0xd2, 0xdc, 0x10, 0xe2, + 0xc4, 0x89, 0x0b, 0xff, 0x03, 0xc7, 0x1c, 0x38, 0xc3, 0x35, 0x12, 0x97, 0x8a, 0x13, 0x07, 0x64, + 0xa1, 0xe4, 0x10, 0x71, 0xf5, 0x89, 0x23, 0x9a, 0x1f, 0xf6, 0x3a, 0xbb, 0x0d, 0xf5, 0xf6, 0xd2, + 0x4b, 0xbb, 0x9e, 0xf7, 0x7d, 0xf3, 0xe6, 0x7d, 0xef, 0x7b, 0x33, 0x01, 0x77, 0x43, 0xfc, 0x0d, + 0xea, 0xb0, 0xf0, 0x10, 0x39, 0x8c, 0xec, 0x23, 0xfc, 0x1c, 0x76, 0x18, 0x89, 0x8f, 0x9d, 0xc3, + 0xcd, 0x36, 0x62, 0x70, 0xd3, 0x61, 0x2f, 0xec, 0x83, 0x98, 0x30, 0xa2, 0xd7, 0x0b, 0xa0, 0x5d, + 0x06, 0xda, 0x0a, 0x68, 0x2c, 0x05, 0x24, 0x20, 0x02, 0xea, 0xf0, 0x5f, 0x92, 0x65, 0xd4, 0x3b, + 0x84, 0x46, 0x84, 0x3a, 0x6d, 0x48, 0x51, 0xb1, 0x67, 0x87, 0x84, 0x78, 0x20, 0x8e, 0xf7, 0x8b, + 0x38, 0xff, 0x50, 0xf1, 0x65, 0x15, 0x8f, 0x68, 0xe0, 0x1c, 0x6e, 0xf2, 0xff, 0x54, 0x60, 0x45, + 0x06, 0x5a, 0x32, 0xa3, 0xfc, 0x50, 0xa1, 0xfb, 0xaf, 0x29, 0xe9, 0x00, 0xc6, 0x30, 0xca, 0xc1, + 0x0b, 0x30, 0x0a, 0x31, 0x71, 0xc4, 0xbf, 0x72, 0xc9, 0xfa, 0xe7, 0x1a, 0x98, 0x6d, 0xd2, 0xe0, + 0x71, 0x8c, 0x20, 0x43, 0xbb, 0x08, 0x93, 0x48, 0xbf, 0x07, 0x26, 0x28, 0xc2, 0x3e, 0x8a, 0x6b, + 0xda, 0x9a, 0xb6, 0x3e, 0xe5, 0x2e, 0x64, 0xa9, 0x39, 0x73, 0x0c, 0xa3, 0xee, 0x8e, 0x25, 0xd7, + 0x2d, 0x4f, 0x01, 0x74, 0x07, 0x4c, 0xd2, 0xa4, 0xed, 0x73, 0x5a, 0xed, 0x9a, 0x00, 0x2f, 0x66, + 0xa9, 0x39, 0xa7, 0xc0, 0x2a, 0x62, 0x79, 0x05, 0x48, 0xbf, 0x0d, 0xc6, 0x30, 0x8c, 0x50, 0x6d, + 0x54, 0x80, 0xe7, 0xb2, 0xd4, 0x9c, 0x96, 0x60, 0xbe, 0x6a, 0x79, 0x22, 0x28, 0x0e, 0x70, 0x1c, + 0xb5, 0x49, 0xb7, 0x36, 0x36, 0x70, 0x00, 0xb1, 0xce, 0x0f, 0x20, 0x7e, 0xf0, 0x03, 0xf8, 0xa8, + 0x13, 0x46, 0xb0, 0x4b, 0x6b, 0xe3, 0x6b, 0xda, 0xfa, 0x4c, 0xf9, 0x00, 0x79, 0xc4, 0xf2, 0x0a, + 0x90, 0xfe, 0x04, 0xcc, 0xc3, 0x6e, 0x97, 0x1c, 0xb5, 0xa0, 0x1f, 0x85, 0xb8, 0xd5, 0x4e, 0x62, + 0x5c, 0x9b, 0x58, 0xd3, 0xd6, 0x27, 0xdd, 0xd5, 0x2c, 0x35, 0x97, 0x25, 0xb1, 0x1f, 0x61, 0x79, + 0xb3, 0x62, 0xe9, 0x11, 0x5f, 0x71, 0x93, 0x18, 0xef, 0x6c, 0x7f, 0x77, 0x71, 0xb2, 0xa1, 0x54, + 0xf8, 0xe1, 0xe2, 0x64, 0xe3, 0xf6, 0x15, 0x6d, 0xe8, 0x08, 0x5d, 0x1b, 0x52, 0x87, 0xaf, 0xc0, + 0xcd, 0xcb, 0x52, 0x7b, 0x88, 0x1e, 0x10, 0x4c, 0x91, 0xee, 0x82, 0x39, 0x8c, 0x8e, 0x5a, 0x82, + 0xda, 0x92, 0x72, 0x4a, 0xed, 0x8d, 0x2c, 0x35, 0x6f, 0x2a, 0x85, 0x2e, 0x03, 0x2c, 0x6f, 0x06, + 0xa3, 0xa3, 0x2f, 0xf8, 0x82, 0xd8, 0xcb, 0xfa, 0x4b, 0x03, 0xef, 0x34, 0x69, 0xd0, 0x0c, 0x31, + 0x1b, 0xa6, 0x85, 0x1f, 0x83, 0x09, 0x18, 0x91, 0x04, 0x33, 0xd1, 0xc0, 0xe9, 0xad, 0x15, 0x5b, + 0xf9, 0x8b, 0xbb, 0x38, 0x37, 0xbc, 0xfd, 0x98, 0x84, 0xd8, 0xbd, 0x71, 0x9a, 0x9a, 0x23, 0xbd, + 0x9d, 0x24, 0xcd, 0xf2, 0x14, 0x9f, 0xf7, 0x22, 0x46, 0x1d, 0x14, 0x1e, 0xa2, 0x58, 0xf5, 0xb7, + 0xd4, 0x8b, 0x3c, 0x62, 0x79, 0x05, 0x68, 0xe7, 0x7e, 0x9f, 0x88, 0xab, 0x57, 0x88, 0x18, 0x85, + 0x98, 0x59, 0x0b, 0x60, 0x4e, 0x55, 0x97, 0xab, 0x66, 0xfd, 0x2b, 0x2b, 0xe6, 0x0d, 0x79, 0x3b, + 0x15, 0x7f, 0x0a, 0xe6, 0xb8, 0x3d, 0x3e, 0x8a, 0x49, 0xf4, 0xc8, 0xf7, 0x63, 0x44, 0xa9, 0x2a, + 0xfc, 0xdd, 0x2c, 0x35, 0x6b, 0x92, 0xc3, 0x01, 0xad, 0xe7, 0x31, 0x89, 0x5a, 0x50, 0x42, 0xac, + 0x9f, 0x2f, 0x4e, 0x36, 0x34, 0xaf, 0x9f, 0x59, 0x59, 0x0d, 0x61, 0x48, 0xa9, 0x06, 0xaf, 0xbc, + 0x50, 0xe3, 0x77, 0x4d, 0x4e, 0xf2, 0x1e, 0xc4, 0x01, 0x12, 0x4e, 0x1d, 0x46, 0x94, 0x3b, 0x60, + 0xbc, 0x3c, 0xc6, 0xf3, 0x59, 0x6a, 0x5e, 0xcf, 0xa7, 0x48, 0xb8, 0x4d, 0x86, 0xf5, 0x4d, 0x30, + 0xc5, 0x8d, 0x28, 0x66, 0x43, 0x15, 0xbb, 0x94, 0xa5, 0xe6, 0x7c, 0xcf, 0xa3, 0x22, 0x64, 0x79, + 0x93, 0x18, 0xc9, 0x79, 0xa9, 0x3e, 0x2b, 0xe2, 0xe4, 0x0d, 0xc9, 0xaf, 0xc9, 0x59, 0xe9, 0x15, + 0x53, 0xd4, 0xf9, 0xeb, 0x28, 0x58, 0x6c, 0xd2, 0xe0, 0x29, 0x62, 0xc2, 0xf7, 0x4d, 0xc4, 0xa0, + 0x0f, 0x19, 0x1c, 0xa6, 0x58, 0x0f, 0x4c, 0x46, 0x8a, 0xa6, 0x3c, 0x70, 0xab, 0xe7, 0x01, 0xbc, + 0x5f, 0x78, 0x20, 0xdf, 0xdb, 0x5d, 0x56, 0x3e, 0x50, 0x66, 0xce, 0xc9, 0x96, 0x57, 0xec, 0xa3, + 0xff, 0xa4, 0x81, 0xc5, 0xde, 0x8d, 0xd1, 0xf2, 0x43, 0x0a, 0xdb, 0x5d, 0xe4, 0x0b, 0x8d, 0xa6, + 0xb7, 0x9e, 0xd8, 0xff, 0xff, 0xa2, 0xd8, 0xaf, 0xa8, 0xc8, 0x2e, 0xae, 0x9b, 0x5d, 0xb5, 0x99, + 0x5b, 0xcf, 0x52, 0xd3, 0x50, 0x5e, 0x1c, 0xcc, 0x65, 0x79, 0x0b, 0xb0, 0x9f, 0x62, 0x3c, 0x03, + 0x0b, 0x03, 0xfb, 0xe8, 0x1f, 0x82, 0x59, 0xba, 0x47, 0x92, 0xae, 0x9f, 0x73, 0x85, 0x66, 0x93, + 0xee, 0x4a, 0x96, 0x9a, 0x37, 0x94, 0x66, 0x97, 0xe2, 0x96, 0x37, 0x23, 0x17, 0xd4, 0x16, 0x3b, + 0xef, 0xf7, 0x35, 0xf5, 0xde, 0x15, 0x4d, 0xa5, 0x88, 0xc9, 0xdb, 0xaf, 0x51, 0x88, 0x76, 0x0b, + 0xac, 0xbe, 0xa2, 0xda, 0xa2, 0xbf, 0xa7, 0x9a, 0xf0, 0xf6, 0xb3, 0x03, 0x1f, 0x32, 0xf4, 0xb9, + 0x78, 0xbe, 0xf4, 0x07, 0x60, 0x0a, 0x26, 0x6c, 0x8f, 0xc4, 0x21, 0x3b, 0x56, 0xed, 0xad, 0xfd, + 0xf1, 0x4b, 0x63, 0x49, 0x35, 0x4d, 0x8d, 0xd0, 0x53, 0x16, 0x87, 0x38, 0xf0, 0x7a, 0x50, 0x7d, + 0x17, 0x4c, 0xc8, 0x07, 0x50, 0xb5, 0xf9, 0xce, 0xeb, 0xda, 0x20, 0xf3, 0xb9, 0x63, 0xbc, 0xdf, + 0x9e, 0xe2, 0xee, 0x3c, 0xe4, 0xb5, 0xf6, 0x76, 0xe5, 0xe5, 0xbe, 0x77, 0x45, 0xb9, 0x89, 0x38, + 0x75, 0x43, 0x12, 0xad, 0x15, 0xb0, 0xdc, 0x57, 0x49, 0x5e, 0xe5, 0xd6, 0x6f, 0xe3, 0x60, 0xb4, + 0x49, 0x03, 0x3d, 0x01, 0xd3, 0xe5, 0xb7, 0xd7, 0xae, 0xe0, 0x93, 0x12, 0xde, 0x78, 0x30, 0x1c, + 0xbe, 0x78, 0x70, 0xbe, 0x06, 0x63, 0xe2, 0xa1, 0xb8, 0x5b, 0x81, 0xcf, 0x81, 0x86, 0x53, 0x11, + 0x58, 0xce, 0x20, 0x2e, 0xe6, 0x2a, 0x19, 0x38, 0xb0, 0x52, 0x86, 0xf2, 0x85, 0x27, 0xa4, 0x2b, + 0x5d, 0x76, 0x95, 0xa4, 0xeb, 0xe1, 0xab, 0x49, 0x37, 0x78, 0xff, 0xe8, 0xdf, 0x6b, 0x60, 0x7e, + 0xe0, 0xf2, 0xd9, 0x7e, 0x83, 0xf9, 0x36, 0x3e, 0x78, 0x03, 0x52, 0x71, 0x8c, 0x17, 0xe0, 0xfa, + 0xa5, 0x11, 0xa9, 0x22, 0x5f, 0x99, 0x60, 0x3c, 0x1c, 0x92, 0x90, 0x67, 0x36, 0xc6, 0xbf, 0xe5, + 0x0f, 0x98, 0xdb, 0x3d, 0x3d, 0xab, 0x6b, 0x2f, 0xcf, 0xea, 0xda, 0xdf, 0x67, 0x75, 0xed, 0xc7, + 0xf3, 0xfa, 0xc8, 0xcb, 0xf3, 0xfa, 0xc8, 0x9f, 0xe7, 0xf5, 0x91, 0x2f, 0xbd, 0x20, 0x64, 0x7b, + 0x49, 0xdb, 0xee, 0x90, 0xc8, 0xf9, 0x24, 0xcf, 0xf1, 0x19, 0x6c, 0x53, 0xa7, 0xc8, 0xd8, 0xe8, + 0x90, 0x18, 0x95, 0x3f, 0xf7, 0x60, 0x88, 0x9d, 0x88, 0xf8, 0x49, 0x17, 0xd1, 0xcb, 0x23, 0xc5, + 0x8e, 0x0f, 0x10, 0x6d, 0x4f, 0x88, 0x3f, 0x57, 0xb7, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xaa, + 0x21, 0x43, 0x44, 0xc3, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -988,6 +1078,16 @@ func (m *MsgCreateDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AllowAdminBurn { + i-- + if m.AllowAdminBurn { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } if m.Decimals != 0 { i = encodeVarintTx(dAtA, i, uint64(m.Decimals)) i-- @@ -1074,6 +1174,13 @@ func (m *MsgMint) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintTx(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1137,6 +1244,13 @@ func (m *MsgBurn) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.BurnFromAddress) > 0 { + i -= len(m.BurnFromAddress) + copy(dAtA[i:], m.BurnFromAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.BurnFromAddress))) + i-- + dAtA[i] = 0x1a + } { size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1267,6 +1381,18 @@ func (m *MsgSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AdminBurnDisabled != nil { + { + size, err := m.AdminBurnDisabled.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } { size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1287,6 +1413,39 @@ func (m *MsgSetDenomMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ShouldDisable { + i-- + if m.ShouldDisable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *MsgSetDenomMetadataResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1409,6 +1568,9 @@ func (m *MsgCreateDenom) Size() (n int) { if m.Decimals != 0 { n += 1 + sovTx(uint64(m.Decimals)) } + if m.AllowAdminBurn { + n += 2 + } return n } @@ -1437,6 +1599,10 @@ func (m *MsgMint) Size() (n int) { } l = m.Amount.Size() n += 1 + l + sovTx(uint64(l)) + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -1461,6 +1627,10 @@ func (m *MsgBurn) Size() (n int) { } l = m.Amount.Size() n += 1 + l + sovTx(uint64(l)) + l = len(m.BurnFromAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -1515,6 +1685,22 @@ func (m *MsgSetDenomMetadata) Size() (n int) { } l = m.Metadata.Size() n += 1 + l + sovTx(uint64(l)) + if m.AdminBurnDisabled != nil { + l = m.AdminBurnDisabled.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ShouldDisable { + n += 2 + } return n } @@ -1733,6 +1919,26 @@ func (m *MsgCreateDenom) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowAdminBurn", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AllowAdminBurn = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -1930,6 +2136,38 @@ func (m *MsgMint) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -2095,6 +2333,38 @@ func (m *MsgBurn) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnFromAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BurnFromAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -2456,6 +2726,112 @@ func (m *MsgSetDenomMetadata) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminBurnDisabled", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminBurnDisabled == nil { + m.AdminBurnDisabled = &MsgSetDenomMetadata_AdminBurnDisabled{} + } + if err := m.AdminBurnDisabled.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgSetDenomMetadata_AdminBurnDisabled) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AdminBurnDisabled: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AdminBurnDisabled: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ShouldDisable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ShouldDisable = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/chain/types/account.go b/chain/types/account.go deleted file mode 100644 index 7d6be3d5..00000000 --- a/chain/types/account.go +++ /dev/null @@ -1,186 +0,0 @@ -package types - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" - - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "gopkg.in/yaml.v2" - - "cosmossdk.io/errors" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - ethcmn "github.com/ethereum/go-ethereum/common" - ethcrypto "github.com/ethereum/go-ethereum/crypto" -) - -var ( - _ sdk.AccountI = (*EthAccount)(nil) - _ authtypes.GenesisAccount = (*EthAccount)(nil) - _ codectypes.UnpackInterfacesMessage = (*EthAccount)(nil) -) - -var EmptyCodeHash = ethcrypto.Keccak256(nil) - -// ---------------------------------------------------------------------------- -// Main Ethermint account -// ---------------------------------------------------------------------------- - -// ProtoAccount defines the prototype function for BaseAccount used for an -// AccountKeeper. -func ProtoAccount() sdk.AccountI { - return &EthAccount{ - BaseAccount: &authtypes.BaseAccount{}, - CodeHash: ethcrypto.Keccak256(nil), - } -} - -// EthAddress returns the account address ethereum format. -func (acc EthAccount) EthAddress() ethcmn.Address { - return ethcmn.BytesToAddress(acc.GetAddress().Bytes()) -} - -type ethAccountPretty struct { - Address string `json:"address" yaml:"address"` - EthAddress string `json:"eth_address" yaml:"eth_address"` - PubKey string `json:"public_key" yaml:"public_key"` - AccountNumber uint64 `json:"account_number" yaml:"account_number"` - Sequence uint64 `json:"sequence" yaml:"sequence"` - CodeHash string `json:"code_hash" yaml:"code_hash"` -} - -// MarshalYAML returns the YAML representation of an account. -func (acc EthAccount) MarshalYAML() (interface{}, error) { - alias := ethAccountPretty{ - Address: acc.Address, - EthAddress: acc.EthAddress().String(), - AccountNumber: acc.AccountNumber, - Sequence: acc.Sequence, - CodeHash: ethcmn.Bytes2Hex(acc.CodeHash), - PubKey: "", - } - - var err error - - bz, err := yaml.Marshal(alias) - if err != nil { - return nil, err - } - - return string(bz), err -} - -// MarshalJSON returns the JSON representation of an EthAccount. -func (acc EthAccount) MarshalJSON() ([]byte, error) { - var ethAddress = "" - - if acc.BaseAccount != nil && acc.Address == "" { - ethAddress = acc.EthAddress().String() - } - - alias := ethAccountPretty{ - Address: acc.Address, - EthAddress: ethAddress, - AccountNumber: acc.AccountNumber, - Sequence: acc.Sequence, - CodeHash: ethcmn.Bytes2Hex(acc.CodeHash), - PubKey: "", - } - - return json.Marshal(alias) -} - -// UnmarshalJSON unmarshals raw JSON bytes into an EthAccount. -func (acc *EthAccount) UnmarshalJSON(bz []byte) error { - var ( - alias ethAccountPretty - err error - ) - - if err := json.Unmarshal(bz, &alias); err != nil { - return err - } - - switch { - case alias.Address != "" && alias.EthAddress != "": - // Both addresses provided. Verify correctness - ethAddress := ethcmn.HexToAddress(alias.EthAddress) - - var address sdk.AccAddress - address, err = sdk.AccAddressFromBech32(alias.Address) - if err != nil { - return err - } - - ethAddressFromAccAddress := ethcmn.BytesToAddress(address.Bytes()) - - if !bytes.Equal(ethAddress.Bytes(), address.Bytes()) { - err = errors.Wrapf( - sdkerrors.ErrInvalidAddress, - "expected %s, got %s", - ethAddressFromAccAddress.String(), ethAddress.String(), - ) - } - - case alias.Address != "" && alias.EthAddress == "": - // unmarshal sdk.AccAddress only. Do nothing here - case alias.Address == "" && alias.EthAddress != "": - // retrieve sdk.AccAddress from ethereum address - ethAddress := ethcmn.HexToAddress(alias.EthAddress) - alias.Address = sdk.AccAddress(ethAddress.Bytes()).String() - case alias.Address == "" && alias.EthAddress == "": - err = errors.Wrapf( - sdkerrors.ErrInvalidAddress, - "account must contain address in Ethereum Hex or Cosmos Bech32 format", - ) - } - - if err != nil { - return err - } - - acc.BaseAccount = &authtypes.BaseAccount{ - Address: alias.Address, - AccountNumber: alias.AccountNumber, - Sequence: alias.Sequence, - } - - acc.CodeHash = ethcmn.HexToHash(alias.CodeHash).Bytes() - - return nil -} - -// String implements the fmt.Stringer interface -func (acc EthAccount) String() string { - out, _ := yaml.Marshal(acc) - return string(out) -} - -func CosmosAddressToEthAddress(addr string) (ethcmn.Address, error) { - if strings.HasPrefix(addr, sdk.GetConfig().GetBech32AccountAddrPrefix()) { - // Check to see if address is Cosmos bech32 formatted - toAddr, err := sdk.AccAddressFromBech32(addr) - if err != nil { - return ethcmn.Address{}, errors.Wrap(err, "must provide a valid Bech32 address") - } - ethAddr := ethcmn.BytesToAddress(toAddr.Bytes()) - return ethAddr, nil - } - - if !strings.HasPrefix(addr, "0x") { - addr = "0x" + addr - } - - valid := ethcmn.IsHexAddress(addr) - if !valid { - return ethcmn.Address{}, fmt.Errorf("%s is not a valid Ethereum or Cosmos address", addr) - } - - ethAddr := ethcmn.HexToAddress(addr) - - return ethAddr, nil -} diff --git a/chain/types/chain_id.go b/chain/types/chain_id.go deleted file mode 100644 index 6882db48..00000000 --- a/chain/types/chain_id.go +++ /dev/null @@ -1,54 +0,0 @@ -package types - -import ( - "fmt" - "math/big" - "regexp" - "strings" - - "cosmossdk.io/errors" - tmrand "github.com/cometbft/cometbft/libs/rand" -) - -var ( - regexChainID = `[a-z]*` - regexSeparator = `-{1}` - regexEpoch = `[1-9][0-9]*` - injectiveChainID = regexp.MustCompile(fmt.Sprintf(`^(%s)%s(%s)$`, regexChainID, regexSeparator, regexEpoch)) -) - -// IsValidChainID returns false if the given chain identifier is incorrectly formatted. -func IsValidChainID(chainID string) bool { - if len(chainID) > 48 { - return false - } - - return injectiveChainID.MatchString(chainID) -} - -// ParseChainID parses a string chain identifier's epoch to an Ethereum-compatible -// chain-id in *big.Int format. The function returns an error if the chain-id has an invalid format -func ParseChainID(chainID string) (*big.Int, error) { - chainID = strings.TrimSpace(chainID) - if len(chainID) > 48 { - return nil, errors.Wrapf(ErrInvalidChainID, "chain-id '%s' cannot exceed 48 chars", chainID) - } - - matches := injectiveChainID.FindStringSubmatch(chainID) - if matches == nil || len(matches) != 3 || matches[1] == "" { - return nil, errors.Wrap(ErrInvalidChainID, chainID) - } - - // verify that the chain-id entered is a base 10 integer - chainIDInt, ok := new(big.Int).SetString(matches[2], 10) - if !ok { - return nil, errors.Wrapf(ErrInvalidChainID, "epoch %s must be base-10 integer format", matches[2]) - } - - return chainIDInt, nil -} - -// GenerateRandomChainID returns a random chain-id in the valid format. -func GenerateRandomChainID() string { - return fmt.Sprintf("injective-%d", 10+tmrand.Intn(10000)) -} diff --git a/chain/types/code.go b/chain/types/code.go deleted file mode 100644 index fa1da75d..00000000 --- a/chain/types/code.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -// ---------------------------------------------------------------------------- -// Code -// ---------------------------------------------------------------------------- - -// Code is account Code type alias -type Code []byte - -func (c Code) String() string { - return string(c) -} diff --git a/chain/types/coin.go b/chain/types/coin.go deleted file mode 100644 index b8ec01ae..00000000 --- a/chain/types/coin.go +++ /dev/null @@ -1,33 +0,0 @@ -package types - -import ( - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const ( - // INJ defines the default coin denomination used in Ethermint in: - // - // - Staking parameters: denomination used as stake in the dPoS chain - // - Mint parameters: denomination minted due to fee distribution rewards - // - Governance parameters: denomination used for spam prevention in proposal deposits - // - Crisis parameters: constant fee denomination used for spam prevention to check broken invariant - // - EVM parameters: denomination used for running EVM state transitions in Ethermint. - InjectiveCoin string = "inj" - - // BaseDenomUnit defines the base denomination unit for Photons. - // 1 photon = 1x10^{BaseDenomUnit} inj - BaseDenomUnit = 18 -) - -// NewInjectiveCoin is a utility function that returns an "inj" coin with the given math.Int amount. -// The function will panic if the provided amount is negative. -func NewInjectiveCoin(amount math.Int) sdk.Coin { - return sdk.NewCoin(InjectiveCoin, amount) -} - -// NewInjectiveCoinInt64 is a utility function that returns an "inj" coin with the given int64 amount. -// The function will panic if the provided amount is negative. -func NewInjectiveCoinInt64(amount int64) sdk.Coin { - return sdk.NewInt64Coin(InjectiveCoin, amount) -} diff --git a/chain/types/errors.go b/chain/types/errors.go deleted file mode 100644 index 2408fad5..00000000 --- a/chain/types/errors.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import "cosmossdk.io/errors" - -const ( - // RootCodespace is the codespace for all errors defined in this package - RootCodespace = "injective" -) - -// NOTE: We can't use 1 since that error code is reserved for internal errors. - -var ( - // ErrInvalidChainID returns an error resulting from an invalid chain ID. - ErrInvalidChainID = errors.Register(RootCodespace, 3, "invalid chain ID") -) diff --git a/chain/types/gas.go b/chain/types/gas.go deleted file mode 100644 index b14660de..00000000 --- a/chain/types/gas.go +++ /dev/null @@ -1,97 +0,0 @@ -package types - -import ( - "fmt" - "math" - "sync" - - storetypes "cosmossdk.io/store/types" -) - -type infiniteGasMeter struct { - consumed storetypes.Gas - mux sync.RWMutex -} - -// NewThreadsafeInfiniteGasMeter returns a reference to a new thread-safe infiniteGasMeter. -func NewThreadsafeInfiniteGasMeter() storetypes.GasMeter { - return &infiniteGasMeter{ - consumed: 0, - } -} - -func (g *infiniteGasMeter) GasRemaining() storetypes.Gas { - return math.MaxUint64 -} - -func (g *infiniteGasMeter) GasConsumed() storetypes.Gas { - g.mux.RLock() - defer g.mux.RUnlock() - - return g.consumed -} - -func (g *infiniteGasMeter) GasConsumedToLimit() storetypes.Gas { - g.mux.RLock() - defer g.mux.RUnlock() - - return g.consumed -} - -func (g *infiniteGasMeter) Limit() storetypes.Gas { - return 0 -} - -func (g *infiniteGasMeter) ConsumeGas(amount storetypes.Gas, descriptor string) { - g.mux.Lock() - defer g.mux.Unlock() - - var overflow bool - // TODO: Should we set the consumed field after overflow checking? - g.consumed, overflow = addUint64Overflow(g.consumed, amount) - if overflow { - panic(storetypes.ErrorGasOverflow{Descriptor: descriptor}) - } -} - -// RefundGas will deduct the given amount from the gas consumed. If the amount is greater than the -// gas consumed, the function will panic. -// -// Use case: This functionality enables refunding gas to the trasaction or block gas pools so that -// EVM-compatible chains can fully support the go-ethereum StateDb interface. -// See https://github.com/cosmos/cosmos-sdk/pull/9403 for reference. -func (g *infiniteGasMeter) RefundGas(amount storetypes.Gas, descriptor string) { - g.mux.Lock() - defer g.mux.Unlock() - - if g.consumed < amount { - panic(storetypes.ErrorNegativeGasConsumed{Descriptor: descriptor}) - } - - g.consumed -= amount -} - -func (g *infiniteGasMeter) IsPastLimit() bool { - return false -} - -func (g *infiniteGasMeter) IsOutOfGas() bool { - return false -} - -func (g *infiniteGasMeter) String() string { - g.mux.RLock() - defer g.mux.RUnlock() - - return fmt.Sprintf("InfiniteGasMeter:\n consumed: %d", g.consumed) -} - -// addUint64Overflow performs the addition operation on two uint64 integers and -// returns a boolean on whether or not the result overflows. -func addUint64Overflow(a, b uint64) (uint64, bool) { - if math.MaxUint64-a < b { - return 0, true - } - - return a + b, false -} diff --git a/chain/types/int.go b/chain/types/int.go deleted file mode 100644 index af991c40..00000000 --- a/chain/types/int.go +++ /dev/null @@ -1,22 +0,0 @@ -package types - -import "math/big" - -// MarshalBigInt marshals big int into text string for consistent encoding -func MarshalBigInt(i *big.Int) (string, error) { - bz, err := i.MarshalText() - if err != nil { - return "", err - } - return string(bz), nil -} - -// UnmarshalBigInt unmarshals string from *big.Int -func UnmarshalBigInt(s string) (*big.Int, error) { - ret := new(big.Int) - err := ret.UnmarshalText([]byte(s)) - if err != nil { - return nil, err - } - return ret, nil -} diff --git a/chain/types/params.go b/chain/types/params.go deleted file mode 100644 index 9d322668..00000000 --- a/chain/types/params.go +++ /dev/null @@ -1,8 +0,0 @@ -package types - -const ( - // DefaultGasPrice is default gas price for evm transactions - DefaultGasPrice = 0 - // DefaultRPCGasLimit is default gas limit for RPC call operations - DefaultRPCGasLimit = 80000000 -) diff --git a/chain/wasmx/types/exec_callback_msgs.go b/chain/wasmx/types/exec_callback_msgs.go deleted file mode 100644 index 784a2abe..00000000 --- a/chain/wasmx/types/exec_callback_msgs.go +++ /dev/null @@ -1,25 +0,0 @@ -package types - -func NewRegistryDeregisterCallbackMsg() RegistryDeregisterCallbackMsg { - return RegistryDeregisterCallbackMsg{ - DeregisterCallback: &DeregisterCallbackMsg{}, - } -} - -type RegistryDeregisterCallbackMsg struct { - DeregisterCallback *DeregisterCallbackMsg `json:"deregister,omitempty"` -} - -type DeregisterCallbackMsg struct{} - -func NewRegistryDeactivateCallbackMsg() RegistryDeactivateCallbackMsg { - return RegistryDeactivateCallbackMsg{ - DeactivateCallback: &DeactivateCallbackMsg{}, - } -} - -type RegistryDeactivateCallbackMsg struct { - DeactivateCallback *DeactivateCallbackMsg `json:"deactivate,omitempty"` -} - -type DeactivateCallbackMsg struct{} diff --git a/chain/wasmx/types/exec_msgs.go b/chain/wasmx/types/exec_msgs.go deleted file mode 100644 index 1f6ad121..00000000 --- a/chain/wasmx/types/exec_msgs.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -import ( - "encoding/json" -) - -func NewBeginBlockerExecMsg() ([]byte, error) { - // Construct Exec message - beginBlocker := CWBeginBlockerExecMsg{BeginBlockerMsg: &BeginBlockerMsg{}} - - // nolint:all - // execMsg := []byte(`{"begin_blocker":{}}`) - execMsg, err := json.Marshal(beginBlocker) - if err != nil { - return nil, err - } - - return execMsg, nil -} - -type CWBeginBlockerExecMsg struct { - BeginBlockerMsg *BeginBlockerMsg `json:"begin_blocker,omitempty"` -} - -type BeginBlockerMsg struct { -} diff --git a/chain/wasmx/types/expected_keepers.go b/chain/wasmx/types/expected_keepers.go deleted file mode 100644 index e9d5d692..00000000 --- a/chain/wasmx/types/expected_keepers.go +++ /dev/null @@ -1,28 +0,0 @@ -package types - -import ( - "context" - - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// BankKeeper defines the expected bank keeper methods -type BankKeeper interface { - GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error - SendCoins(ctx context.Context, from, to sdk.AccAddress, amt sdk.Coins) error -} - -type WasmViewKeeper interface { - wasmtypes.ViewKeeper -} - -type WasmContractOpsKeeper interface { - wasmtypes.ContractOpsKeeper -} diff --git a/chain/wasmx/types/genesis.go b/chain/wasmx/types/genesis.go deleted file mode 100644 index 3739aca4..00000000 --- a/chain/wasmx/types/genesis.go +++ /dev/null @@ -1,18 +0,0 @@ -package types - -func NewGenesisState() GenesisState { - return GenesisState{} -} - -func (gs GenesisState) Validate() error { - if err := gs.Params.Validate(); err != nil { - return err - } - return nil -} - -func DefaultGenesisState() *GenesisState { - return &GenesisState{ - Params: DefaultParams(), - } -} diff --git a/chain/wasmx/types/paramset.go b/chain/wasmx/types/paramset.go deleted file mode 100644 index 80d0852b..00000000 --- a/chain/wasmx/types/paramset.go +++ /dev/null @@ -1,26 +0,0 @@ -package types - -type ( - ValueValidatorFn func(value interface{}) error - - // ParamSetPair is used for associating paramsubspace key and field of param - // structs. - ParamSetPair struct { - Key []byte - Value interface{} - ValidatorFn ValueValidatorFn - } -) - -// NewParamSetPair creates a new ParamSetPair instance. -func NewParamSetPair(key []byte, value interface{}, vfn ValueValidatorFn) ParamSetPair { - return ParamSetPair{key, value, vfn} -} - -// ParamSetPairs Slice of KeyFieldPair -type ParamSetPairs []ParamSetPair - -// ParamSet defines an interface for structs containing parameters for a module -type ParamSet interface { - ParamSetPairs() ParamSetPairs -} diff --git a/chain/wasmx/types/util.go b/chain/wasmx/types/util.go deleted file mode 100644 index 49eb4491..00000000 --- a/chain/wasmx/types/util.go +++ /dev/null @@ -1,17 +0,0 @@ -package types - -import ( - "github.com/CosmWasm/wasmd/x/wasm/types" - sdktypes "github.com/cosmos/cosmos-sdk/types" -) - -func IsAllowed(accessConfig types.AccessConfig, actor sdktypes.AccAddress) bool { - if accessConfig.Permission == types.AccessTypeAnyOfAddresses { - for _, v := range accessConfig.Addresses { - if v == actor.String() { - return true - } - } - } - return false -} diff --git a/client/chain/chain.go b/client/chain/chain.go index 7475f506..26d50e5b 100644 --- a/client/chain/chain.go +++ b/client/chain/chain.go @@ -287,11 +287,18 @@ type ChainClient interface { FetchIBCConnectionParams(ctx context.Context) (*ibcconnectiontypes.QueryConnectionParamsResponse, error) // Permissions module - FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) - FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) - FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) - FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) - FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) + FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) + FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) + FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) + FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) + FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) + FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) + FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) + FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) + FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) + FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) + FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) + FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) GetNetwork() common.Network Close() @@ -2602,48 +2609,108 @@ func (c *chainClient) FetchIBCConnectionParams(ctx context.Context) (*ibcconnect // Permissions module -func (c *chainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { - req := &permissionstypes.QueryAllNamespacesRequest{} - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AllNamespaces, req) +func (c *chainClient) FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) { + req := &permissionstypes.QueryNamespaceDenomsRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.NamespaceDenoms, req) return res, err } -func (c *chainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { - req := &permissionstypes.QueryNamespaceByDenomRequest{ - Denom: denom, - IncludeRoles: includeRoles, +func (c *chainClient) FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) { + req := &permissionstypes.QueryNamespacesRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Namespaces, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) { + req := &permissionstypes.QueryNamespaceRequest{ + Denom: denom, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.NamespaceByDenom, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Namespace, req) return res, err } -func (c *chainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { - req := &permissionstypes.QueryAddressRolesRequest{ - Denom: denom, - Address: address, +func (c *chainClient) FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) { + req := &permissionstypes.QueryRolesByActorRequest{ + Denom: denom, + Actor: actor, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressRoles, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RolesByActor, req) return res, err } -func (c *chainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { - req := &permissionstypes.QueryAddressesByRoleRequest{ +func (c *chainClient) FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) { + req := &permissionstypes.QueryActorsByRoleRequest{ Denom: denom, Role: role, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressesByRole, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.ActorsByRole, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) { + req := &permissionstypes.QueryRoleManagersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RoleManagers, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) { + req := &permissionstypes.QueryRoleManagerRequest{ + Denom: denom, + Manager: manager, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.RoleManager, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) { + req := &permissionstypes.QueryPolicyStatusesRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PolicyStatuses, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) { + req := &permissionstypes.QueryPolicyManagerCapabilitiesRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PolicyManagerCapabilities, req) return res, err } -func (c *chainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { - req := &permissionstypes.QueryVouchersForAddressRequest{ +func (c *chainClient) FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) { + req := &permissionstypes.QueryVouchersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Vouchers, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) { + req := &permissionstypes.QueryVoucherRequest{ + Denom: denom, Address: address, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.VouchersForAddress, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.Voucher, req) + + return res, err +} + +func (c *chainClient) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) { + req := &permissionstypes.QueryModuleStateRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.PermissionsModuleState, req) return res, err } diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index e7f6d750..d5881e50 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -751,24 +751,52 @@ func (c *MockChainClient) FetchIBCConnectionParams(ctx context.Context) (*ibccon // Permissions module -func (c *MockChainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { - return &permissionstypes.QueryAllNamespacesResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespaceDenoms(ctx context.Context) (*permissionstypes.QueryNamespaceDenomsResponse, error) { + return &permissionstypes.QueryNamespaceDenomsResponse{}, nil } -func (c *MockChainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { - return &permissionstypes.QueryNamespaceByDenomResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespaces(ctx context.Context) (*permissionstypes.QueryNamespacesResponse, error) { + return &permissionstypes.QueryNamespacesResponse{}, nil } -func (c *MockChainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { - return &permissionstypes.QueryAddressRolesResponse{}, nil +func (c *MockChainClient) FetchPermissionsNamespace(ctx context.Context, denom string) (*permissionstypes.QueryNamespaceResponse, error) { + return &permissionstypes.QueryNamespaceResponse{}, nil } -func (c *MockChainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { - return &permissionstypes.QueryAddressesByRoleResponse{}, nil +func (c *MockChainClient) FetchPermissionsRolesByActor(ctx context.Context, denom, actor string) (*permissionstypes.QueryRolesByActorResponse, error) { + return &permissionstypes.QueryRolesByActorResponse{}, nil } -func (c *MockChainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { - return &permissionstypes.QueryVouchersForAddressResponse{}, nil +func (c *MockChainClient) FetchPermissionsActorsByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryActorsByRoleResponse, error) { + return &permissionstypes.QueryActorsByRoleResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsRoleManagers(ctx context.Context, denom string) (*permissionstypes.QueryRoleManagersResponse, error) { + return &permissionstypes.QueryRoleManagersResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsRoleManager(ctx context.Context, denom, manager string) (*permissionstypes.QueryRoleManagerResponse, error) { + return &permissionstypes.QueryRoleManagerResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsPolicyStatuses(ctx context.Context, denom string) (*permissionstypes.QueryPolicyStatusesResponse, error) { + return &permissionstypes.QueryPolicyStatusesResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsPolicyManagerCapabilities(ctx context.Context, denom string) (*permissionstypes.QueryPolicyManagerCapabilitiesResponse, error) { + return &permissionstypes.QueryPolicyManagerCapabilitiesResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsVouchers(ctx context.Context, denom string) (*permissionstypes.QueryVouchersResponse, error) { + return &permissionstypes.QueryVouchersResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) { + return &permissionstypes.QueryVoucherResponse{}, nil +} + +func (c *MockChainClient) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) { + return &permissionstypes.QueryModuleStateResponse{}, nil } func (c *MockChainClient) GetNetwork() common.Network { diff --git a/client/chain/markets_assistant.go b/client/chain/markets_assistant.go index 52340223..924f41c4 100644 --- a/client/chain/markets_assistant.go +++ b/client/chain/markets_assistant.go @@ -317,16 +317,16 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai continue } - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.SpotMarket{ Id: marketInfo.GetMarketId(), - Status: marketInfo.GetMarketStatus().String(), + Status: marketInfo.Status.String(), Ticker: marketInfo.GetTicker(), BaseToken: baseToken, QuoteToken: quoteToken, @@ -350,29 +350,29 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai for _, fullMarket := range derivativeMarkets.GetMarkets() { marketInfo := fullMarket.GetMarket() - quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.GetQuoteDenom()] + quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.QuoteDenom] if !quoteTokenFound { // Ignore the market because it references a token that is not in the token list continue } - initialMarginRatio := decimal.RequireFromString(marketInfo.GetInitialMarginRatio().String()) + initialMarginRatio := decimal.RequireFromString(marketInfo.InitialMarginRatio.String()) maintenanceMarginRatio := decimal.RequireFromString(marketInfo.MaintenanceMarginRatio.String()) - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.DerivativeMarket{ Id: marketInfo.MarketId, - Status: marketInfo.GetMarketStatus().String(), - Ticker: marketInfo.GetTicker(), + Status: marketInfo.Status.String(), + Ticker: marketInfo.Ticker, OracleBase: marketInfo.OracleBase, OracleQuote: marketInfo.OracleQuote, OracleType: marketInfo.OracleType.String(), - OracleScaleFactor: marketInfo.GetOracleScaleFactor(), + OracleScaleFactor: marketInfo.OracleScaleFactor, InitialMarginRatio: initialMarginRatio, MaintenanceMarginRatio: maintenanceMarginRatio, QuoteToken: quoteToken, @@ -394,27 +394,27 @@ func (assistant *MarketsAssistant) initializeFromChain(ctx context.Context, chai } for _, marketInfo := range binaryOptionsMarkets.GetMarkets() { - quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.GetQuoteDenom()] + quoteToken, quoteTokenFound := assistant.tokensByDenom[marketInfo.QuoteDenom] if !quoteTokenFound { // Ignore the market because it references a token that is not in the token list continue } - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate().String()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate().String()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetRelayerFeeShareRate().String()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize().String()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize().String()) - minNotional := decimal.RequireFromString(marketInfo.GetMinNotional().String()) + makerFeeRate := decimal.RequireFromString(marketInfo.MakerFeeRate.String()) + takerFeeRate := decimal.RequireFromString(marketInfo.TakerFeeRate.String()) + serviceProviderFee := decimal.RequireFromString(marketInfo.RelayerFeeShareRate.String()) + minPriceTickSize := decimal.RequireFromString(marketInfo.MinPriceTickSize.String()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.MinQuantityTickSize.String()) + minNotional := decimal.RequireFromString(marketInfo.MinNotional.String()) market := core.BinaryOptionMarket{ Id: marketInfo.MarketId, - Status: marketInfo.GetMarketStatus().String(), - Ticker: marketInfo.GetTicker(), + Status: marketInfo.Status.String(), + Ticker: marketInfo.Ticker, OracleSymbol: marketInfo.OracleSymbol, OracleProvider: marketInfo.OracleProvider, OracleType: marketInfo.OracleType.String(), - OracleScaleFactor: marketInfo.GetOracleScaleFactor(), + OracleScaleFactor: marketInfo.OracleScaleFactor, ExpirationTimestamp: marketInfo.ExpirationTimestamp, SettlementTimestamp: marketInfo.SettlementTimestamp, QuoteToken: quoteToken, diff --git a/examples/chain/permissions/1_MsgCreateNamespace/example.go b/examples/chain/permissions/1_MsgCreateNamespace/example.go new file mode 100644 index 00000000..087a4f81 --- /dev/null +++ b/examples/chain/permissions/1_MsgCreateNamespace/example.go @@ -0,0 +1,135 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + role1 := permissionstypes.Role{ + Name: "EVERYONE", + RoleId: 0, + Permissions: uint32(permissionstypes.Action_RECEIVE | permissionstypes.Action_SEND), + } + role2 := permissionstypes.Role{ + Name: "admin", + RoleId: 1, + Permissions: uint32(permissionstypes.Action_MODIFY_ROLE_PERMISSIONS), + } + role3 := permissionstypes.Role{ + Name: "user", + RoleId: 2, + Permissions: uint32( + permissionstypes.Action_MINT | + permissionstypes.Action_RECEIVE | + permissionstypes.Action_BURN | + permissionstypes.Action_SEND), + } + + actor_role1 := permissionstypes.ActorRoles{ + Actor: "inj1specificactoraddress", + Roles: []string{"admin"}, + } + actor_role2 := permissionstypes.ActorRoles{ + Actor: "inj1anotheractoraddress", + Roles: []string{"user"}, + } + + role_manager := permissionstypes.RoleManager{ + Manager: "inj1manageraddress", + Roles: []string{"admin"}, + } + + policy_status1 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_MINT, + IsDisabled: false, + IsSealed: false, + } + policy_status2 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_BURN, + IsDisabled: false, + IsSealed: false, + } + + policy_manager_capability := permissionstypes.PolicyManagerCapability{ + Manager: "inj1policymanageraddress", + Action: permissionstypes.Action_MODIFY_CONTRACT_HOOK, + CanDisable: true, + CanSeal: false, + } + + namespace := permissionstypes.Namespace{ + Denom: denom, + ContractHook: "", + RolePermissions: []*permissionstypes.Role{&role1, &role2, &role3}, + ActorRoles: []*permissionstypes.ActorRoles{&actor_role1, &actor_role2}, + RoleManagers: []*permissionstypes.RoleManager{&role_manager}, + PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2}, + PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability}, + } + + msg := &permissionstypes.MsgCreateNamespace{ + Sender: senderAddress.String(), + Namespace: namespace, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/2_DeleteNamespace/example.go b/examples/chain/permissions/2_DeleteNamespace/example.go deleted file mode 100644 index 611f569e..00000000 --- a/examples/chain/permissions/2_DeleteNamespace/example.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - - msg := &permissionstypes.MsgDeleteNamespace{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/2_MsgUpdateNamespace/example.go b/examples/chain/permissions/2_MsgUpdateNamespace/example.go new file mode 100644 index 00000000..6d50bd00 --- /dev/null +++ b/examples/chain/permissions/2_MsgUpdateNamespace/example.go @@ -0,0 +1,113 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + role1 := permissionstypes.Role{ + Name: "EVERYONE", + RoleId: 0, + Permissions: uint32(permissionstypes.Action_UNSPECIFIED), + } + role2 := permissionstypes.Role{ + Name: "user", + RoleId: 2, + Permissions: uint32(permissionstypes.Action_RECEIVE | permissionstypes.Action_SEND), + } + + role_manager := permissionstypes.RoleManager{ + Manager: "inj1manageraddress", + Roles: []string{"admin", "user"}, + } + + policy_status1 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_MINT, + IsDisabled: true, + IsSealed: false, + } + policy_status2 := permissionstypes.PolicyStatus{ + Action: permissionstypes.Action_BURN, + IsDisabled: false, + IsSealed: true, + } + + policy_manager_capability := permissionstypes.PolicyManagerCapability{ + Manager: "inj1policymanageraddress", + Action: permissionstypes.Action_MODIFY_ROLE_PERMISSIONS, + CanDisable: true, + CanSeal: false, + } + + msg := &permissionstypes.MsgUpdateNamespace{ + Sender: senderAddress.String(), + Denom: denom, + ContractHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"}, + RolePermissions: []*permissionstypes.Role{&role1, &role2}, + RoleManagers: []*permissionstypes.RoleManager{&role_manager}, + PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2}, + PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability}, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/1_CreateNamespace/example.go b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go similarity index 64% rename from examples/chain/permissions/1_CreateNamespace/example.go rename to examples/chain/permissions/3_MsgUpdateActorRoles/example.go index 540d2a9b..dc9d5594 100644 --- a/examples/chain/permissions/1_CreateNamespace/example.go +++ b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go @@ -55,30 +55,29 @@ func main() { panic(err) } - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - namespace := permissionstypes.Namespace{ - Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", - RolePermissions: []*permissionstypes.Role{ - { - Role: permissionstypes.EVERYONE, - Permissions: uint32(permissionstypes.Action_MINT | permissionstypes.Action_RECEIVE | permissionstypes.Action_BURN), - }, - { - Role: "blacklisted", - Permissions: 0, - }, - }, - AddressRoles: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + roleActors1 := permissionstypes.RoleActors{ + Role: "admin", + Actors: []string{"inj1actoraddress1", "inj1actoraddress2"}, + } + roleActors2 := permissionstypes.RoleActors{ + Role: "user", + Actors: []string{"inj1actoraddress3"}, + } + roleActors3 := permissionstypes.RoleActors{ + Role: "user", + Actors: []string{"inj1actoraddress4"}, + } + roleActors4 := permissionstypes.RoleActors{ + Role: "admin", + Actors: []string{"inj1actoraddress5"}, } - msg := &permissionstypes.MsgCreateNamespace{ - Sender: senderAddress.String(), - Namespace: namespace, + msg := &permissionstypes.MsgUpdateActorRoles{ + Sender: senderAddress.String(), + Denom: denom, + RoleActorsToAdd: []*permissionstypes.RoleActors{&roleActors1, &roleActors2}, + RoleActorsToRevoke: []*permissionstypes.RoleActors{&roleActors3, &roleActors4}, } //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/permissions/3_UpdateNamespace/example.go b/examples/chain/permissions/3_UpdateNamespace/example.go deleted file mode 100644 index 2fd48eaf..00000000 --- a/examples/chain/permissions/3_UpdateNamespace/example.go +++ /dev/null @@ -1,78 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - - msg := &permissionstypes.MsgUpdateNamespace{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - WasmHook: &permissionstypes.MsgUpdateNamespace_MsgSetWasmHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"}, - SendsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetSendsPaused{NewValue: true}, - MintsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetMintsPaused{NewValue: true}, - BurnsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetBurnsPaused{NewValue: true}, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/6_ClaimVoucher/example.go b/examples/chain/permissions/4_MsgClaimVoucher/example.go similarity index 100% rename from examples/chain/permissions/6_ClaimVoucher/example.go rename to examples/chain/permissions/4_MsgClaimVoucher/example.go diff --git a/examples/chain/permissions/4_UpdateNamespaceRoles/example.go b/examples/chain/permissions/4_UpdateNamespaceRoles/example.go deleted file mode 100644 index 62941e9d..00000000 --- a/examples/chain/permissions/4_UpdateNamespaceRoles/example.go +++ /dev/null @@ -1,91 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - - msg := &permissionstypes.MsgUpdateNamespaceRoles{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - RolePermissions: []*permissionstypes.Role{ - { - Role: permissionstypes.EVERYONE, - Permissions: uint32(permissionstypes.Action_RECEIVE), - }, - { - Role: "blacklisted", - Permissions: 0, - }, - }, - AddressRoles: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/5_RevokeNamespaceRoles/example.go b/examples/chain/permissions/5_RevokeNamespaceRoles/example.go deleted file mode 100644 index 3bc62f57..00000000 --- a/examples/chain/permissions/5_RevokeNamespaceRoles/example.go +++ /dev/null @@ -1,81 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - - permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - "github.com/InjectiveLabs/sdk-go/client" - chainclient "github.com/InjectiveLabs/sdk-go/client/chain" - "github.com/InjectiveLabs/sdk-go/client/common" - rpchttp "github.com/cometbft/cometbft/rpc/client/http" -) - -func main() { - network := common.LoadNetwork("devnet", "lb") - tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") - if err != nil { - panic(err) - } - - senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( - os.Getenv("HOME")+"/.injectived", - "injectived", - "file", - "inj-user", - "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided - false, - ) - - if err != nil { - panic(err) - } - - clientCtx, err := chainclient.NewClientContext( - network.ChainId, - senderAddress.String(), - cosmosKeyring, - ) - - if err != nil { - panic(err) - } - - clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) - - chainClient, err := chainclient.NewChainClient( - clientCtx, - network, - common.OptionGasPrices(client.DefaultGasPriceWithDenom), - ) - - if err != nil { - panic(err) - } - - namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" - - msg := &permissionstypes.MsgRevokeNamespaceRoles{ - Sender: senderAddress.String(), - NamespaceDenom: namespaceDenom, - AddressRolesToRevoke: []*permissionstypes.AddressRoles{ - { - Address: blockedAddress, - Roles: []string{"blacklisted"}, - }, - }, - } - - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - response, err := chainClient.SyncBroadcastMsg(msg) - - if err != nil { - panic(err) - } - - str, _ := json.MarshalIndent(response, "", " ") - fmt.Print(string(str)) -} diff --git a/examples/chain/permissions/query/5_VouchersForAddress/example.go b/examples/chain/permissions/query/10_Vouchers/example.go similarity index 90% rename from examples/chain/permissions/query/5_VouchersForAddress/example.go rename to examples/chain/permissions/query/10_Vouchers/example.go index fe7b9d96..fe7d9b84 100644 --- a/examples/chain/permissions/query/5_VouchersForAddress/example.go +++ b/examples/chain/permissions/query/10_Vouchers/example.go @@ -55,11 +55,11 @@ func main() { panic(err) } - address := senderAddress.String() - ctx := context.Background() - res, err := chainClient.FetchVouchersForAddress(ctx, address) + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsVouchers(ctx, denom) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/11_Voucher/example.go b/examples/chain/permissions/query/11_Voucher/example.go new file mode 100644 index 00000000..dc393327 --- /dev/null +++ b/examples/chain/permissions/query/11_Voucher/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + address := "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" + + res, err := chainClient.FetchPermissionsVoucher(ctx, denom, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/12_PermissionsModuleState/example.go b/examples/chain/permissions/query/12_PermissionsModuleState/example.go new file mode 100644 index 00000000..71687687 --- /dev/null +++ b/examples/chain/permissions/query/12_PermissionsModuleState/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchPermissionsModuleState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/permissions/query/1_NamespaceDenoms/example.go b/examples/chain/permissions/query/1_NamespaceDenoms/example.go new file mode 100644 index 00000000..23ac104f --- /dev/null +++ b/examples/chain/permissions/query/1_NamespaceDenoms/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchPermissionsNamespaceDenoms(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/permissions/query/1_AllNamespaces/example.go b/examples/chain/permissions/query/2_Namespaces/example.go similarity index 95% rename from examples/chain/permissions/query/1_AllNamespaces/example.go rename to examples/chain/permissions/query/2_Namespaces/example.go index 650477d2..10bceac6 100644 --- a/examples/chain/permissions/query/1_AllNamespaces/example.go +++ b/examples/chain/permissions/query/2_Namespaces/example.go @@ -58,7 +58,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchAllNamespaces(ctx) + res, err := chainClient.FetchPermissionsNamespaces(ctx) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/2_NamespaceByDenom/example.go b/examples/chain/permissions/query/3_Namespace/example.go similarity index 94% rename from examples/chain/permissions/query/2_NamespaceByDenom/example.go rename to examples/chain/permissions/query/3_Namespace/example.go index 69efeb11..3a48c57d 100644 --- a/examples/chain/permissions/query/2_NamespaceByDenom/example.go +++ b/examples/chain/permissions/query/3_Namespace/example.go @@ -59,7 +59,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchNamespaceByDenom(ctx, namespaceDenom, true) + res, err := chainClient.FetchPermissionsNamespace(ctx, namespaceDenom) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/3_AddressRoles/example.go b/examples/chain/permissions/query/4_RolesByActor/example.go similarity index 92% rename from examples/chain/permissions/query/3_AddressRoles/example.go rename to examples/chain/permissions/query/4_RolesByActor/example.go index 17fe06a0..b86c5d4b 100644 --- a/examples/chain/permissions/query/3_AddressRoles/example.go +++ b/examples/chain/permissions/query/4_RolesByActor/example.go @@ -56,11 +56,11 @@ func main() { } namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" - address := senderAddress.String() + actor := senderAddress.String() ctx := context.Background() - res, err := chainClient.FetchAddressRoles(ctx, namespaceDenom, address) + res, err := chainClient.FetchPermissionsRolesByActor(ctx, namespaceDenom, actor) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/4_AddressesByRole/example.go b/examples/chain/permissions/query/5_ActorsByRole/example.go similarity index 94% rename from examples/chain/permissions/query/4_AddressesByRole/example.go rename to examples/chain/permissions/query/5_ActorsByRole/example.go index ca2b3f7f..35ed2e24 100644 --- a/examples/chain/permissions/query/4_AddressesByRole/example.go +++ b/examples/chain/permissions/query/5_ActorsByRole/example.go @@ -60,7 +60,7 @@ func main() { ctx := context.Background() - res, err := chainClient.FetchAddressesByRole(ctx, namespaceDenom, role) + res, err := chainClient.FetchPermissionsActorsByRole(ctx, namespaceDenom, role) if err != nil { fmt.Println(err) } diff --git a/examples/chain/permissions/query/6_RoleManagers/example.go b/examples/chain/permissions/query/6_RoleManagers/example.go new file mode 100644 index 00000000..9e99b3aa --- /dev/null +++ b/examples/chain/permissions/query/6_RoleManagers/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsRoleManagers(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/7_RoleManager/example.go b/examples/chain/permissions/query/7_RoleManager/example.go new file mode 100644 index 00000000..b61af27b --- /dev/null +++ b/examples/chain/permissions/query/7_RoleManager/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + manager := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + res, err := chainClient.FetchPermissionsRoleManager(ctx, denom, manager) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/8_PolicyStatuses/example.go b/examples/chain/permissions/query/8_PolicyStatuses/example.go new file mode 100644 index 00000000..64deff3e --- /dev/null +++ b/examples/chain/permissions/query/8_PolicyStatuses/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go new file mode 100644 index 00000000..64deff3e --- /dev/null +++ b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchPermissionsPolicyStatuses(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go index b118a8a5..6e44ae07 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go index ceb634f9..57dec967 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go deleted file mode 100644 index b118a8a5..00000000 --- a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ /dev/null @@ -1,5333 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: goadesign_goagen_injective_accounts_rpc.proto - -package injective_accounts_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type PortfolioRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *PortfolioRequest) Reset() { - *x = PortfolioRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioRequest) ProtoMessage() {} - -func (x *PortfolioRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] - 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 PortfolioRequest.ProtoReflect.Descriptor instead. -func (*PortfolioRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{0} -} - -func (x *PortfolioRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type PortfolioResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The portfolio of this account - Portfolio *AccountPortfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` -} - -func (x *PortfolioResponse) Reset() { - *x = PortfolioResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioResponse) ProtoMessage() {} - -func (x *PortfolioResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] - 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 PortfolioResponse.ProtoReflect.Descriptor instead. -func (*PortfolioResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *PortfolioResponse) GetPortfolio() *AccountPortfolio { - if x != nil { - return x.Portfolio - } - return nil -} - -type AccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio value in USD. - PortfolioValue string `protobuf:"bytes,1,opt,name=portfolio_value,json=portfolioValue,proto3" json:"portfolio_value,omitempty"` - // The account's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The account's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The account's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` - // List of all subaccounts' portfolio - Subaccounts []*SubaccountPortfolio `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *AccountPortfolio) Reset() { - *x = AccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolio) ProtoMessage() {} - -func (x *AccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] - 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 AccountPortfolio.ProtoReflect.Descriptor instead. -func (*AccountPortfolio) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *AccountPortfolio) GetPortfolioValue() string { - if x != nil { - return x.PortfolioValue - } - return "" -} - -func (x *AccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *AccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *AccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -func (x *AccountPortfolio) GetSubaccounts() []*SubaccountPortfolio { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The ID of this subaccount - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The subaccount's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The subaccount's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The subaccount's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` -} - -func (x *SubaccountPortfolio) Reset() { - *x = SubaccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountPortfolio) ProtoMessage() {} - -func (x *SubaccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] - 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 SubaccountPortfolio.ProtoReflect.Descriptor instead. -func (*SubaccountPortfolio) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *SubaccountPortfolio) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -type OrderStatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SpotOrderHashes []string `protobuf:"bytes,1,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` - DerivativeOrderHashes []string `protobuf:"bytes,2,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` -} - -func (x *OrderStatesRequest) Reset() { - *x = OrderStatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesRequest) ProtoMessage() {} - -func (x *OrderStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 mi.MessageOf(x) -} - -// Deprecated: Use OrderStatesRequest.ProtoReflect.Descriptor instead. -func (*OrderStatesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{4} -} - -func (x *OrderStatesRequest) GetSpotOrderHashes() []string { - if x != nil { - return x.SpotOrderHashes - } - return nil -} - -func (x *OrderStatesRequest) GetDerivativeOrderHashes() []string { - if x != nil { - return x.DerivativeOrderHashes - } - return nil -} - -type OrderStatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of the spot order state records - SpotOrderStates []*OrderStateRecord `protobuf:"bytes,1,rep,name=spot_order_states,json=spotOrderStates,proto3" json:"spot_order_states,omitempty"` - // List of the derivative order state records - DerivativeOrderStates []*OrderStateRecord `protobuf:"bytes,2,rep,name=derivative_order_states,json=derivativeOrderStates,proto3" json:"derivative_order_states,omitempty"` -} - -func (x *OrderStatesResponse) Reset() { - *x = OrderStatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesResponse) ProtoMessage() {} - -func (x *OrderStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] - 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 OrderStatesResponse.ProtoReflect.Descriptor instead. -func (*OrderStatesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{5} -} - -func (x *OrderStatesResponse) GetSpotOrderStates() []*OrderStateRecord { - if x != nil { - return x.SpotOrderStates - } - return nil -} - -func (x *OrderStatesResponse) GetDerivativeOrderStates() []*OrderStateRecord { - if x != nil { - return x.DerivativeOrderStates - } - return nil -} - -type OrderStateRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The Market ID of the order - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The type of the order - OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,5,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // The state (status) of the order - State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` - // The filled quantity of the order - QuantityFilled string `protobuf:"bytes,7,opt,name=quantity_filled,json=quantityFilled,proto3" json:"quantity_filled,omitempty"` - // The filled quantity of the order - QuantityRemaining string `protobuf:"bytes,8,opt,name=quantity_remaining,json=quantityRemaining,proto3" json:"quantity_remaining,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order prices - Price string `protobuf:"bytes,11,opt,name=price,proto3" json:"price,omitempty"` - // Margin for derivative order - Margin string `protobuf:"bytes,12,opt,name=margin,proto3" json:"margin,omitempty"` -} - -func (x *OrderStateRecord) Reset() { - *x = OrderStateRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStateRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStateRecord) ProtoMessage() {} - -func (x *OrderStateRecord) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] - 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 OrderStateRecord.ProtoReflect.Descriptor instead. -func (*OrderStateRecord) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{6} -} - -func (x *OrderStateRecord) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *OrderStateRecord) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *OrderStateRecord) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *OrderStateRecord) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *OrderStateRecord) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *OrderStateRecord) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *OrderStateRecord) GetQuantityFilled() string { - if x != nil { - return x.QuantityFilled - } - return "" -} - -func (x *OrderStateRecord) GetQuantityRemaining() string { - if x != nil { - return x.QuantityRemaining - } - return "" -} - -func (x *OrderStateRecord) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *OrderStateRecord) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -type SubaccountsListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address, the subaccounts owner - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *SubaccountsListRequest) Reset() { - *x = SubaccountsListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListRequest) ProtoMessage() {} - -func (x *SubaccountsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] - 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 SubaccountsListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountsListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{7} -} - -func (x *SubaccountsListRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type SubaccountsListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Subaccounts []string `protobuf:"bytes,1,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *SubaccountsListResponse) Reset() { - *x = SubaccountsListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListResponse) ProtoMessage() {} - -func (x *SubaccountsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] - 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 SubaccountsListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountsListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{8} -} - -func (x *SubaccountsListResponse) GetSubaccounts() []string { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountBalancesListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *SubaccountBalancesListRequest) Reset() { - *x = SubaccountBalancesListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListRequest) ProtoMessage() {} - -func (x *SubaccountBalancesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] - 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 SubaccountBalancesListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{9} -} - -func (x *SubaccountBalancesListRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalancesListRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type SubaccountBalancesListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount balances - Balances []*SubaccountBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` -} - -func (x *SubaccountBalancesListResponse) Reset() { - *x = SubaccountBalancesListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListResponse) ProtoMessage() {} - -func (x *SubaccountBalancesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] - 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 SubaccountBalancesListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{10} -} - -func (x *SubaccountBalancesListResponse) GetBalances() []*SubaccountBalance { - if x != nil { - return x.Balances - } - return nil -} - -type SubaccountBalance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Related subaccount ID - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Account address, owner of this subaccount - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Coin denom on the chain. - Denom string `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` - Deposit *SubaccountDeposit `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty"` -} - -func (x *SubaccountBalance) Reset() { - *x = SubaccountBalance{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalance) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalance) ProtoMessage() {} - -func (x *SubaccountBalance) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] - 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 SubaccountBalance.ProtoReflect.Descriptor instead. -func (*SubaccountBalance) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{11} -} - -func (x *SubaccountBalance) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalance) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *SubaccountBalance) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountBalance) GetDeposit() *SubaccountDeposit { - if x != nil { - return x.Deposit - } - return nil -} - -type SubaccountDeposit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` -} - -func (x *SubaccountDeposit) Reset() { - *x = SubaccountDeposit{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountDeposit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountDeposit) ProtoMessage() {} - -func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] - 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 SubaccountDeposit.ProtoReflect.Descriptor instead. -func (*SubaccountDeposit) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{12} -} - -func (x *SubaccountDeposit) GetTotalBalance() string { - if x != nil { - return x.TotalBalance - } - return "" -} - -func (x *SubaccountDeposit) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -type SubaccountBalanceEndpointRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Specify denom to get balance - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (x *SubaccountBalanceEndpointRequest) Reset() { - *x = SubaccountBalanceEndpointRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointRequest) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] - 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 SubaccountBalanceEndpointRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{13} -} - -func (x *SubaccountBalanceEndpointRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalanceEndpointRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -type SubaccountBalanceEndpointResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` -} - -func (x *SubaccountBalanceEndpointResponse) Reset() { - *x = SubaccountBalanceEndpointResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointResponse) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] - 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 SubaccountBalanceEndpointResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{14} -} - -func (x *SubaccountBalanceEndpointResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -type StreamSubaccountBalanceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *StreamSubaccountBalanceRequest) Reset() { - *x = StreamSubaccountBalanceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceRequest) ProtoMessage() {} - -func (x *StreamSubaccountBalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] - 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 StreamSubaccountBalanceRequest.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{15} -} - -func (x *StreamSubaccountBalanceRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *StreamSubaccountBalanceRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type StreamSubaccountBalanceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *StreamSubaccountBalanceResponse) Reset() { - *x = StreamSubaccountBalanceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceResponse) ProtoMessage() {} - -func (x *StreamSubaccountBalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] - 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 StreamSubaccountBalanceResponse.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{16} -} - -func (x *StreamSubaccountBalanceResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -func (x *StreamSubaccountBalanceResponse) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type SubaccountHistoryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the history from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter history by denom - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - // Filter history by transfer type - TransferTypes []string `protobuf:"bytes,3,rep,name=transfer_types,json=transferTypes,proto3" json:"transfer_types,omitempty"` - // Skip will skip the first n item from the result - Skip uint64 `protobuf:"varint,4,opt,name=skip,proto3" json:"skip,omitempty"` - // Limit is used to specify the maximum number of items to be returned - Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` - // Upper bound of account transfer history's executedAt - EndTime int64 `protobuf:"zigzag64,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` -} - -func (x *SubaccountHistoryRequest) Reset() { - *x = SubaccountHistoryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryRequest) ProtoMessage() {} - -func (x *SubaccountHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] - 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 SubaccountHistoryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{17} -} - -func (x *SubaccountHistoryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountHistoryRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountHistoryRequest) GetTransferTypes() []string { - if x != nil { - return x.TransferTypes - } - return nil -} - -func (x *SubaccountHistoryRequest) GetSkip() uint64 { - if x != nil { - return x.Skip - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetLimit() int32 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -type SubaccountHistoryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount transfers - Transfers []*SubaccountBalanceTransfer `protobuf:"bytes,1,rep,name=transfers,proto3" json:"transfers,omitempty"` - Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` -} - -func (x *SubaccountHistoryResponse) Reset() { - *x = SubaccountHistoryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryResponse) ProtoMessage() {} - -func (x *SubaccountHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] - 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 SubaccountHistoryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{18} -} - -func (x *SubaccountHistoryResponse) GetTransfers() []*SubaccountBalanceTransfer { - if x != nil { - return x.Transfers - } - return nil -} - -func (x *SubaccountHistoryResponse) GetPaging() *Paging { - if x != nil { - return x.Paging - } - return nil -} - -type SubaccountBalanceTransfer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Type of the subaccount balance transfer - TransferType string `protobuf:"bytes,1,opt,name=transfer_type,json=transferType,proto3" json:"transfer_type,omitempty"` - // Subaccount ID of the sending side - SrcSubaccountId string `protobuf:"bytes,2,opt,name=src_subaccount_id,json=srcSubaccountId,proto3" json:"src_subaccount_id,omitempty"` - // Account address of the sending side - SrcAccountAddress string `protobuf:"bytes,3,opt,name=src_account_address,json=srcAccountAddress,proto3" json:"src_account_address,omitempty"` - // Subaccount ID of the receiving side - DstSubaccountId string `protobuf:"bytes,4,opt,name=dst_subaccount_id,json=dstSubaccountId,proto3" json:"dst_subaccount_id,omitempty"` - // Account address of the receiving side - DstAccountAddress string `protobuf:"bytes,5,opt,name=dst_account_address,json=dstAccountAddress,proto3" json:"dst_account_address,omitempty"` - // Coin amount of the transfer - Amount *CosmosCoin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` - // Timestamp of the transfer in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,7,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` -} - -func (x *SubaccountBalanceTransfer) Reset() { - *x = SubaccountBalanceTransfer{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceTransfer) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceTransfer) ProtoMessage() {} - -func (x *SubaccountBalanceTransfer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] - 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 SubaccountBalanceTransfer.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceTransfer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{19} -} - -func (x *SubaccountBalanceTransfer) GetTransferType() string { - if x != nil { - return x.TransferType - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcSubaccountId() string { - if x != nil { - return x.SrcSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcAccountAddress() string { - if x != nil { - return x.SrcAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstSubaccountId() string { - if x != nil { - return x.DstSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstAccountAddress() string { - if x != nil { - return x.DstAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetAmount() *CosmosCoin { - if x != nil { - return x.Amount - } - return nil -} - -func (x *SubaccountBalanceTransfer) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -type CosmosCoin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Coin denominator - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - // Coin amount (big int) - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *CosmosCoin) Reset() { - *x = CosmosCoin{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CosmosCoin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CosmosCoin) ProtoMessage() {} - -func (x *CosmosCoin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] - 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 CosmosCoin.ProtoReflect.Descriptor instead. -func (*CosmosCoin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{20} -} - -func (x *CosmosCoin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *CosmosCoin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -// Paging defines the structure for required params for handling pagination -type Paging struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // total number of txs saved in database - Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` - // can be either block height or index num - From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` - // can be either block height or index num - To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` - // count entries by subaccount, serving some places on helix - CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` - // array of tokens to navigate to the next pages - Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` -} - -func (x *Paging) Reset() { - *x = Paging{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Paging) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Paging) ProtoMessage() {} - -func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] - 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 Paging.ProtoReflect.Descriptor instead. -func (*Paging) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{21} -} - -func (x *Paging) GetTotal() int64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Paging) GetFrom() int32 { - if x != nil { - return x.From - } - return 0 -} - -func (x *Paging) GetTo() int32 { - if x != nil { - return x.To - } - return 0 -} - -func (x *Paging) GetCountBySubaccount() int64 { - if x != nil { - return x.CountBySubaccount - } - return 0 -} - -func (x *Paging) GetNext() []string { - if x != nil { - return x.Next - } - return nil -} - -type SubaccountOrderSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the summary from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // MarketId is limiting order summary to specific market only - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // Filter by direction of the orders - OrderDirection string `protobuf:"bytes,3,opt,name=order_direction,json=orderDirection,proto3" json:"order_direction,omitempty"` -} - -func (x *SubaccountOrderSummaryRequest) Reset() { - *x = SubaccountOrderSummaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryRequest) ProtoMessage() {} - -func (x *SubaccountOrderSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] - 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 SubaccountOrderSummaryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{22} -} - -func (x *SubaccountOrderSummaryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetOrderDirection() string { - if x != nil { - return x.OrderDirection - } - return "" -} - -type SubaccountOrderSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total count of subaccount's spot orders in given market and direction - SpotOrdersTotal int64 `protobuf:"zigzag64,1,opt,name=spot_orders_total,json=spotOrdersTotal,proto3" json:"spot_orders_total,omitempty"` - // Total count of subaccount's derivative orders in given market and direction - DerivativeOrdersTotal int64 `protobuf:"zigzag64,2,opt,name=derivative_orders_total,json=derivativeOrdersTotal,proto3" json:"derivative_orders_total,omitempty"` -} - -func (x *SubaccountOrderSummaryResponse) Reset() { - *x = SubaccountOrderSummaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryResponse) ProtoMessage() {} - -func (x *SubaccountOrderSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] - 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 SubaccountOrderSummaryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{23} -} - -func (x *SubaccountOrderSummaryResponse) GetSpotOrdersTotal() int64 { - if x != nil { - return x.SpotOrdersTotal - } - return 0 -} - -func (x *SubaccountOrderSummaryResponse) GetDerivativeOrdersTotal() int64 { - if x != nil { - return x.DerivativeOrdersTotal - } - return 0 -} - -type RewardsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The distribution epoch sequence number. -1 for latest. - Epoch int64 `protobuf:"zigzag64,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Account address for the rewards distribution - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *RewardsRequest) Reset() { - *x = RewardsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsRequest) ProtoMessage() {} - -func (x *RewardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] - 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 RewardsRequest.ProtoReflect.Descriptor instead. -func (*RewardsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{24} -} - -func (x *RewardsRequest) GetEpoch() int64 { - if x != nil { - return x.Epoch - } - return 0 -} - -func (x *RewardsRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type RewardsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading rewards distributed - Rewards []*Reward `protobuf:"bytes,1,rep,name=rewards,proto3" json:"rewards,omitempty"` -} - -func (x *RewardsResponse) Reset() { - *x = RewardsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsResponse) ProtoMessage() {} - -func (x *RewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 RewardsResponse.ProtoReflect.Descriptor instead. -func (*RewardsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{25} -} - -func (x *RewardsResponse) GetRewards() []*Reward { - if x != nil { - return x.Rewards - } - return nil -} - -type Reward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Reward coins distributed - Rewards []*Coin `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` - // Rewards distribution timestamp in UNIX millis. - DistributedAt int64 `protobuf:"zigzag64,3,opt,name=distributed_at,json=distributedAt,proto3" json:"distributed_at,omitempty"` -} - -func (x *Reward) Reset() { - *x = Reward{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Reward) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Reward) ProtoMessage() {} - -func (x *Reward) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Reward.ProtoReflect.Descriptor instead. -func (*Reward) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{26} -} - -func (x *Reward) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *Reward) GetRewards() []*Coin { - if x != nil { - return x.Rewards - } - return nil -} - -func (x *Reward) GetDistributedAt() int64 { - if x != nil { - return x.DistributedAt - } - return 0 -} - -type Coin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Denom of the coin - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *Coin) Reset() { - *x = Coin{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Coin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Coin) ProtoMessage() {} - -func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Coin.ProtoReflect.Descriptor instead. -func (*Coin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{27} -} - -func (x *Coin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *Coin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -type StreamAccountDataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *StreamAccountDataRequest) Reset() { - *x = StreamAccountDataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountDataRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountDataRequest) ProtoMessage() {} - -func (x *StreamAccountDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 StreamAccountDataRequest.ProtoReflect.Descriptor instead. -func (*StreamAccountDataRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{28} -} - -func (x *StreamAccountDataRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type StreamAccountDataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SubaccountBalance *SubaccountBalanceResult `protobuf:"bytes,1,opt,name=subaccount_balance,json=subaccountBalance,proto3" json:"subaccount_balance,omitempty"` - Position *PositionsResult `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` - Trade *TradeResult `protobuf:"bytes,3,opt,name=trade,proto3" json:"trade,omitempty"` - Order *OrderResult `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` - OrderHistory *OrderHistoryResult `protobuf:"bytes,5,opt,name=order_history,json=orderHistory,proto3" json:"order_history,omitempty"` - FundingPayment *FundingPaymentResult `protobuf:"bytes,6,opt,name=funding_payment,json=fundingPayment,proto3" json:"funding_payment,omitempty"` -} - -func (x *StreamAccountDataResponse) Reset() { - *x = StreamAccountDataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountDataResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountDataResponse) ProtoMessage() {} - -func (x *StreamAccountDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 StreamAccountDataResponse.ProtoReflect.Descriptor instead. -func (*StreamAccountDataResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{29} -} - -func (x *StreamAccountDataResponse) GetSubaccountBalance() *SubaccountBalanceResult { - if x != nil { - return x.SubaccountBalance - } - return nil -} - -func (x *StreamAccountDataResponse) GetPosition() *PositionsResult { - if x != nil { - return x.Position - } - return nil -} - -func (x *StreamAccountDataResponse) GetTrade() *TradeResult { - if x != nil { - return x.Trade - } - return nil -} - -func (x *StreamAccountDataResponse) GetOrder() *OrderResult { - if x != nil { - return x.Order - } - return nil -} - -func (x *StreamAccountDataResponse) GetOrderHistory() *OrderHistoryResult { - if x != nil { - return x.OrderHistory - } - return nil -} - -func (x *StreamAccountDataResponse) GetFundingPayment() *FundingPaymentResult { - if x != nil { - return x.FundingPayment - } - return nil -} - -type SubaccountBalanceResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *SubaccountBalanceResult) Reset() { - *x = SubaccountBalanceResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceResult) ProtoMessage() {} - -func (x *SubaccountBalanceResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SubaccountBalanceResult.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{30} -} - -func (x *SubaccountBalanceResult) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -func (x *SubaccountBalanceResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type PositionsResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Updated derivative Position - Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *PositionsResult) Reset() { - *x = PositionsResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionsResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionsResult) ProtoMessage() {} - -func (x *PositionsResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PositionsResult.ProtoReflect.Descriptor instead. -func (*PositionsResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{31} -} - -func (x *PositionsResult) GetPosition() *Position { - if x != nil { - return x.Position - } - return nil -} - -func (x *PositionsResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type Position struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Ticker of the derivative market - Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that the position belongs to - SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Direction of the position - Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` - // Quantity of the position - Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Price of the position - EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` - // Margin of the position - Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` - // LiquidationPrice of the position - LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` - // MarkPrice of the position - MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` - // Position updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Position created timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` -} - -func (x *Position) Reset() { - *x = Position{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Position) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Position) ProtoMessage() {} - -func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 Position.ProtoReflect.Descriptor instead. -func (*Position) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{32} -} - -func (x *Position) GetTicker() string { - if x != nil { - return x.Ticker - } - return "" -} - -func (x *Position) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *Position) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *Position) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *Position) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *Position) GetEntryPrice() string { - if x != nil { - return x.EntryPrice - } - return "" -} - -func (x *Position) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *Position) GetLiquidationPrice() string { - if x != nil { - return x.LiquidationPrice - } - return "" -} - -func (x *Position) GetMarkPrice() string { - if x != nil { - return x.MarkPrice - } - return "" -} - -func (x *Position) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *Position) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -type TradeResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Trade: - // - // *TradeResult_SpotTrade - // *TradeResult_DerivativeTrade - Trade isTradeResult_Trade `protobuf_oneof:"trade"` - // Executed trades update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *TradeResult) Reset() { - *x = TradeResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TradeResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TradeResult) ProtoMessage() {} - -func (x *TradeResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 TradeResult.ProtoReflect.Descriptor instead. -func (*TradeResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{33} -} - -func (m *TradeResult) GetTrade() isTradeResult_Trade { - if m != nil { - return m.Trade - } - return nil -} - -func (x *TradeResult) GetSpotTrade() *SpotTrade { - if x, ok := x.GetTrade().(*TradeResult_SpotTrade); ok { - return x.SpotTrade - } - return nil -} - -func (x *TradeResult) GetDerivativeTrade() *DerivativeTrade { - if x, ok := x.GetTrade().(*TradeResult_DerivativeTrade); ok { - return x.DerivativeTrade - } - return nil -} - -func (x *TradeResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *TradeResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isTradeResult_Trade interface { - isTradeResult_Trade() -} - -type TradeResult_SpotTrade struct { - // New spot market trade - SpotTrade *SpotTrade `protobuf:"bytes,1,opt,name=spot_trade,json=spotTrade,proto3,oneof"` -} - -type TradeResult_DerivativeTrade struct { - // New derivative market trade - DerivativeTrade *DerivativeTrade `protobuf:"bytes,2,opt,name=derivative_trade,json=derivativeTrade,proto3,oneof"` -} - -func (*TradeResult_SpotTrade) isTradeResult_Trade() {} - -func (*TradeResult_DerivativeTrade) isTradeResult_Trade() {} - -type SpotTrade struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Maker order hash. - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that executed the trade - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The ID of the market that this trade is in - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The execution type of the trade - TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` - // The direction the trade - TradeDirection string `protobuf:"bytes,5,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` - // Price level at which trade has been executed - Price *PriceLevel `protobuf:"bytes,6,opt,name=price,proto3" json:"price,omitempty"` - // The fee associated with the trade (quote asset denom) - Fee string `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` - // Timestamp of trade execution in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,8,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // A unique string that helps differentiate between trades - TradeId string `protobuf:"bytes,10,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker - ExecutionSide string `protobuf:"bytes,11,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,12,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotTrade) Reset() { - *x = SpotTrade{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotTrade) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotTrade) ProtoMessage() {} - -func (x *SpotTrade) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotTrade.ProtoReflect.Descriptor instead. -func (*SpotTrade) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{34} -} - -func (x *SpotTrade) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotTrade) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotTrade) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotTrade) GetTradeExecutionType() string { - if x != nil { - return x.TradeExecutionType - } - return "" -} - -func (x *SpotTrade) GetTradeDirection() string { - if x != nil { - return x.TradeDirection - } - return "" -} - -func (x *SpotTrade) GetPrice() *PriceLevel { - if x != nil { - return x.Price - } - return nil -} - -func (x *SpotTrade) GetFee() string { - if x != nil { - return x.Fee - } - return "" -} - -func (x *SpotTrade) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -func (x *SpotTrade) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *SpotTrade) GetTradeId() string { - if x != nil { - return x.TradeId - } - return "" -} - -func (x *SpotTrade) GetExecutionSide() string { - if x != nil { - return x.ExecutionSide - } - return "" -} - -func (x *SpotTrade) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type PriceLevel struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Price number of the price level. - Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the price level. - Quantity string `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Price level last updated timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *PriceLevel) Reset() { - *x = PriceLevel{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PriceLevel) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PriceLevel) ProtoMessage() {} - -func (x *PriceLevel) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PriceLevel.ProtoReflect.Descriptor instead. -func (*PriceLevel) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{35} -} - -func (x *PriceLevel) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *PriceLevel) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *PriceLevel) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type DerivativeTrade struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Order hash. - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that executed the trade - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The ID of the market that this trade is in - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The execution type of the trade - TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` - // True if the trade is a liquidation - IsLiquidation bool `protobuf:"varint,5,opt,name=is_liquidation,json=isLiquidation,proto3" json:"is_liquidation,omitempty"` - // Position Delta from the trade - PositionDelta *PositionDelta `protobuf:"bytes,6,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` - // The payout associated with the trade - Payout string `protobuf:"bytes,7,opt,name=payout,proto3" json:"payout,omitempty"` - // The fee associated with the trade - Fee string `protobuf:"bytes,8,opt,name=fee,proto3" json:"fee,omitempty"` - // Timestamp of trade execution in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,9,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,10,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // A unique string that helps differentiate between trades - TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker - ExecutionSide string `protobuf:"bytes,12,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,13,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeTrade) Reset() { - *x = DerivativeTrade{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeTrade) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeTrade) ProtoMessage() {} - -func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeTrade.ProtoReflect.Descriptor instead. -func (*DerivativeTrade) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{36} -} - -func (x *DerivativeTrade) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeTrade) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeTrade) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeTrade) GetTradeExecutionType() string { - if x != nil { - return x.TradeExecutionType - } - return "" -} - -func (x *DerivativeTrade) GetIsLiquidation() bool { - if x != nil { - return x.IsLiquidation - } - return false -} - -func (x *DerivativeTrade) GetPositionDelta() *PositionDelta { - if x != nil { - return x.PositionDelta - } - return nil -} - -func (x *DerivativeTrade) GetPayout() string { - if x != nil { - return x.Payout - } - return "" -} - -func (x *DerivativeTrade) GetFee() string { - if x != nil { - return x.Fee - } - return "" -} - -func (x *DerivativeTrade) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -func (x *DerivativeTrade) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *DerivativeTrade) GetTradeId() string { - if x != nil { - return x.TradeId - } - return "" -} - -func (x *DerivativeTrade) GetExecutionSide() string { - if x != nil { - return x.ExecutionSide - } - return "" -} - -func (x *DerivativeTrade) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type PositionDelta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The direction the trade - TradeDirection string `protobuf:"bytes,1,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` - // Execution Price of the trade. - ExecutionPrice string `protobuf:"bytes,2,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` - // Execution Quantity of the trade. - ExecutionQuantity string `protobuf:"bytes,3,opt,name=execution_quantity,json=executionQuantity,proto3" json:"execution_quantity,omitempty"` - // Execution Margin of the trade. - ExecutionMargin string `protobuf:"bytes,4,opt,name=execution_margin,json=executionMargin,proto3" json:"execution_margin,omitempty"` -} - -func (x *PositionDelta) Reset() { - *x = PositionDelta{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionDelta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionDelta) ProtoMessage() {} - -func (x *PositionDelta) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 PositionDelta.ProtoReflect.Descriptor instead. -func (*PositionDelta) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{37} -} - -func (x *PositionDelta) GetTradeDirection() string { - if x != nil { - return x.TradeDirection - } - return "" -} - -func (x *PositionDelta) GetExecutionPrice() string { - if x != nil { - return x.ExecutionPrice - } - return "" -} - -func (x *PositionDelta) GetExecutionQuantity() string { - if x != nil { - return x.ExecutionQuantity - } - return "" -} - -func (x *PositionDelta) GetExecutionMargin() string { - if x != nil { - return x.ExecutionMargin - } - return "" -} - -type OrderResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Order: - // - // *OrderResult_SpotOrder - // *OrderResult_DerivativeOrder - Order isOrderResult_Order `protobuf_oneof:"order"` - // Executed orders update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *OrderResult) Reset() { - *x = OrderResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderResult) ProtoMessage() {} - -func (x *OrderResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 OrderResult.ProtoReflect.Descriptor instead. -func (*OrderResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{38} -} - -func (m *OrderResult) GetOrder() isOrderResult_Order { - if m != nil { - return m.Order - } - return nil -} - -func (x *OrderResult) GetSpotOrder() *SpotLimitOrder { - if x, ok := x.GetOrder().(*OrderResult_SpotOrder); ok { - return x.SpotOrder - } - return nil -} - -func (x *OrderResult) GetDerivativeOrder() *DerivativeLimitOrder { - if x, ok := x.GetOrder().(*OrderResult_DerivativeOrder); ok { - return x.DerivativeOrder - } - return nil -} - -func (x *OrderResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *OrderResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isOrderResult_Order interface { - isOrderResult_Order() -} - -type OrderResult_SpotOrder struct { - // Updated spot market order - SpotOrder *SpotLimitOrder `protobuf:"bytes,1,opt,name=spot_order,json=spotOrder,proto3,oneof"` -} - -type OrderResult_DerivativeOrder struct { - // Updated derivative market order - DerivativeOrder *DerivativeLimitOrder `protobuf:"bytes,2,opt,name=derivative_order,json=derivativeOrder,proto3,oneof"` -} - -func (*OrderResult_SpotOrder) isOrderResult_Order() {} - -func (*OrderResult_DerivativeOrder) isOrderResult_Order() {} - -type SpotLimitOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Price of the order - Price string `protobuf:"bytes,5,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"` - // The amount of the quantity remaining unfilled - UnfilledQuantity string `protobuf:"bytes,7,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` - // Trigger price is the trigger price used by stop/take orders. 0 if the - // trigger price is not set. - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // Order state - State string `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,13,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotLimitOrder) Reset() { - *x = SpotLimitOrder{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotLimitOrder) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotLimitOrder) ProtoMessage() {} - -func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotLimitOrder.ProtoReflect.Descriptor instead. -func (*SpotLimitOrder) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{39} -} - -func (x *SpotLimitOrder) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotLimitOrder) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *SpotLimitOrder) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotLimitOrder) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotLimitOrder) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *SpotLimitOrder) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *SpotLimitOrder) GetUnfilledQuantity() string { - if x != nil { - return x.UnfilledQuantity - } - return "" -} - -func (x *SpotLimitOrder) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *SpotLimitOrder) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *SpotLimitOrder) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SpotLimitOrder) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *SpotLimitOrder) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *SpotLimitOrder) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *SpotLimitOrder) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type DerivativeLimitOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // True if the order is a reduce-only order - IsReduceOnly bool `protobuf:"varint,5,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` - // Margin of the order - Margin string `protobuf:"bytes,6,opt,name=margin,proto3" json:"margin,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,8,opt,name=quantity,proto3" json:"quantity,omitempty"` - // The amount of the quantity remaining unfilled - UnfilledQuantity string `protobuf:"bytes,9,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` - // Trigger price is the trigger price used by stop/take orders - TriggerPrice string `protobuf:"bytes,10,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Fee recipient address - FeeRecipient string `protobuf:"bytes,11,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` - // Order state - State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order number of subaccount - OrderNumber int64 `protobuf:"zigzag64,15,opt,name=order_number,json=orderNumber,proto3" json:"order_number,omitempty"` - // Order type - OrderType string `protobuf:"bytes,16,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Order type - IsConditional bool `protobuf:"varint,17,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` - // Trigger timestamp, only exists for conditional orders - TriggerAt uint64 `protobuf:"varint,18,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` - // OrderHash of order that is triggered by this conditional order - PlacedOrderHash string `protobuf:"bytes,19,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` - // Execution type of conditional order - ExecutionType string `protobuf:"bytes,20,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,21,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,22,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeLimitOrder) Reset() { - *x = DerivativeLimitOrder{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeLimitOrder) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeLimitOrder) ProtoMessage() {} - -func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeLimitOrder.ProtoReflect.Descriptor instead. -func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{40} -} - -func (x *DerivativeLimitOrder) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *DerivativeLimitOrder) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeLimitOrder) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeLimitOrder) GetIsReduceOnly() bool { - if x != nil { - return x.IsReduceOnly - } - return false -} - -func (x *DerivativeLimitOrder) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *DerivativeLimitOrder) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *DerivativeLimitOrder) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *DerivativeLimitOrder) GetUnfilledQuantity() string { - if x != nil { - return x.UnfilledQuantity - } - return "" -} - -func (x *DerivativeLimitOrder) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *DerivativeLimitOrder) GetFeeRecipient() string { - if x != nil { - return x.FeeRecipient - } - return "" -} - -func (x *DerivativeLimitOrder) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *DerivativeLimitOrder) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetOrderNumber() int64 { - if x != nil { - return x.OrderNumber - } - return 0 -} - -func (x *DerivativeLimitOrder) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *DerivativeLimitOrder) GetIsConditional() bool { - if x != nil { - return x.IsConditional - } - return false -} - -func (x *DerivativeLimitOrder) GetTriggerAt() uint64 { - if x != nil { - return x.TriggerAt - } - return 0 -} - -func (x *DerivativeLimitOrder) GetPlacedOrderHash() string { - if x != nil { - return x.PlacedOrderHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *DerivativeLimitOrder) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *DerivativeLimitOrder) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type OrderHistoryResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to OrderHistory: - // - // *OrderHistoryResult_SpotOrderHistory - // *OrderHistoryResult_DerivativeOrderHistory - OrderHistory isOrderHistoryResult_OrderHistory `protobuf_oneof:"order_history"` - // Order update type - OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *OrderHistoryResult) Reset() { - *x = OrderHistoryResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderHistoryResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderHistoryResult) ProtoMessage() {} - -func (x *OrderHistoryResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 OrderHistoryResult.ProtoReflect.Descriptor instead. -func (*OrderHistoryResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{41} -} - -func (m *OrderHistoryResult) GetOrderHistory() isOrderHistoryResult_OrderHistory { - if m != nil { - return m.OrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetSpotOrderHistory() *SpotOrderHistory { - if x, ok := x.GetOrderHistory().(*OrderHistoryResult_SpotOrderHistory); ok { - return x.SpotOrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetDerivativeOrderHistory() *DerivativeOrderHistory { - if x, ok := x.GetOrderHistory().(*OrderHistoryResult_DerivativeOrderHistory); ok { - return x.DerivativeOrderHistory - } - return nil -} - -func (x *OrderHistoryResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *OrderHistoryResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type isOrderHistoryResult_OrderHistory interface { - isOrderHistoryResult_OrderHistory() -} - -type OrderHistoryResult_SpotOrderHistory struct { - // Spot order history - SpotOrderHistory *SpotOrderHistory `protobuf:"bytes,1,opt,name=spot_order_history,json=spotOrderHistory,proto3,oneof"` -} - -type OrderHistoryResult_DerivativeOrderHistory struct { - // Derivative order history - DerivativeOrderHistory *DerivativeOrderHistory `protobuf:"bytes,2,opt,name=derivative_order_history,json=derivativeOrderHistory,proto3,oneof"` -} - -func (*OrderHistoryResult_SpotOrderHistory) isOrderHistoryResult_OrderHistory() {} - -func (*OrderHistoryResult_DerivativeOrderHistory) isOrderHistoryResult_OrderHistory() {} - -type SpotOrderHistory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // active state of the order - IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The execution type - ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // The side of the order - OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Trigger price - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Filled amount - FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` - // Order state - State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order direction (order side) - Direction string `protobuf:"bytes,14,opt,name=direction,proto3" json:"direction,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,15,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,16,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *SpotOrderHistory) Reset() { - *x = SpotOrderHistory{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpotOrderHistory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpotOrderHistory) ProtoMessage() {} - -func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 SpotOrderHistory.ProtoReflect.Descriptor instead. -func (*SpotOrderHistory) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{42} -} - -func (x *SpotOrderHistory) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *SpotOrderHistory) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SpotOrderHistory) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *SpotOrderHistory) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SpotOrderHistory) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *SpotOrderHistory) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *SpotOrderHistory) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *SpotOrderHistory) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *SpotOrderHistory) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *SpotOrderHistory) GetFilledQuantity() string { - if x != nil { - return x.FilledQuantity - } - return "" -} - -func (x *SpotOrderHistory) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SpotOrderHistory) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *SpotOrderHistory) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *SpotOrderHistory) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *SpotOrderHistory) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *SpotOrderHistory) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type DerivativeOrderHistory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // Spot Market ID is keccak265(baseDenom + quoteDenom) - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // active state of the order - IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The execution type - ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` - // The side of the order - OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // Price of the order - Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` - // Trigger price - TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` - // Quantity of the order - Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Filled amount - FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` - // Order state - State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // True if an order is reduce only - IsReduceOnly bool `protobuf:"varint,14,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` - // Order direction (order side) - Direction string `protobuf:"bytes,15,opt,name=direction,proto3" json:"direction,omitempty"` - // True if this is conditional order, otherwise false - IsConditional bool `protobuf:"varint,16,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` - // Trigger timestamp in unix milli - TriggerAt uint64 `protobuf:"varint,17,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` - // Order hash placed when this triggers - PlacedOrderHash string `protobuf:"bytes,18,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` - // Order's margin - Margin string `protobuf:"bytes,19,opt,name=margin,proto3" json:"margin,omitempty"` - // Transaction Hash where order is created. Not all orders have this field - TxHash string `protobuf:"bytes,20,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` - // Custom client order ID - Cid string `protobuf:"bytes,21,opt,name=cid,proto3" json:"cid,omitempty"` -} - -func (x *DerivativeOrderHistory) Reset() { - *x = DerivativeOrderHistory{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativeOrderHistory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativeOrderHistory) ProtoMessage() {} - -func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 DerivativeOrderHistory.ProtoReflect.Descriptor instead. -func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{43} -} - -func (x *DerivativeOrderHistory) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativeOrderHistory) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *DerivativeOrderHistory) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativeOrderHistory) GetExecutionType() string { - if x != nil { - return x.ExecutionType - } - return "" -} - -func (x *DerivativeOrderHistory) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *DerivativeOrderHistory) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *DerivativeOrderHistory) GetTriggerPrice() string { - if x != nil { - return x.TriggerPrice - } - return "" -} - -func (x *DerivativeOrderHistory) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *DerivativeOrderHistory) GetFilledQuantity() string { - if x != nil { - return x.FilledQuantity - } - return "" -} - -func (x *DerivativeOrderHistory) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *DerivativeOrderHistory) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetIsReduceOnly() bool { - if x != nil { - return x.IsReduceOnly - } - return false -} - -func (x *DerivativeOrderHistory) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *DerivativeOrderHistory) GetIsConditional() bool { - if x != nil { - return x.IsConditional - } - return false -} - -func (x *DerivativeOrderHistory) GetTriggerAt() uint64 { - if x != nil { - return x.TriggerAt - } - return 0 -} - -func (x *DerivativeOrderHistory) GetPlacedOrderHash() string { - if x != nil { - return x.PlacedOrderHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *DerivativeOrderHistory) GetTxHash() string { - if x != nil { - return x.TxHash - } - return "" -} - -func (x *DerivativeOrderHistory) GetCid() string { - if x != nil { - return x.Cid - } - return "" -} - -type FundingPaymentResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Funding payments of the account - FundingPayments *FundingPayment `protobuf:"bytes,1,opt,name=funding_payments,json=fundingPayments,proto3" json:"funding_payments,omitempty"` - // Funding payments type - OperationType string `protobuf:"bytes,2,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *FundingPaymentResult) Reset() { - *x = FundingPaymentResult{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundingPaymentResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundingPaymentResult) ProtoMessage() {} - -func (x *FundingPaymentResult) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 FundingPaymentResult.ProtoReflect.Descriptor instead. -func (*FundingPaymentResult) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{44} -} - -func (x *FundingPaymentResult) GetFundingPayments() *FundingPayment { - if x != nil { - return x.FundingPayments - } - return nil -} - -func (x *FundingPaymentResult) GetOperationType() string { - if x != nil { - return x.OperationType - } - return "" -} - -func (x *FundingPaymentResult) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type FundingPayment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Derivative Market ID - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that the position belongs to - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Amount of the funding payment - Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` - // Timestamp of funding payment in UNIX millis - Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *FundingPayment) Reset() { - *x = FundingPayment{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundingPayment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundingPayment) ProtoMessage() {} - -func (x *FundingPayment) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_accounts_rpc_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 FundingPayment.ProtoReflect.Descriptor instead. -func (*FundingPayment) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{45} -} - -func (x *FundingPayment) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *FundingPayment) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *FundingPayment) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *FundingPayment) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -var File_goadesign_goagen_injective_accounts_rpc_proto protoreflect.FileDescriptor - -var file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = []byte{ - 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, - 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x3b, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, - 0x6c, 0x69, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x13, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, - 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, - 0x6c, 0x22, 0x78, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x13, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x10, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2d, - 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x17, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x07, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, - 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x68, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x5d, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x84, - 0x01, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc1, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, - 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x19, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x23, - 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x72, 0x63, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, - 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, - 0x73, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, - 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, - 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, - 0x90, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xde, 0x03, - 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, - 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x7c, - 0x0a, 0x17, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6d, 0x0a, 0x0f, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x3c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe1, 0x02, 0x0a, 0x08, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0xf5, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x42, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, - 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, - 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, - 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xdd, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, - 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x22, 0xff, 0x01, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x10, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, 0x0a, 0x05, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xb8, 0x03, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, - 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, - 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x58, 0x0a, 0x12, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x70, 0x6f, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x6a, 0x0a, 0x18, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, - 0x16, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0f, 0x0a, 0x0d, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xf3, 0x03, - 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, - 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, - 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x74, - 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, - 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xdc, 0x09, 0x0a, 0x14, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x52, 0x50, 0x43, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, - 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, - 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x8c, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, - 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, - 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce sync.Once - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc -) - -func file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP() []byte { - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce.Do(func() { - file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData) - }) - return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData -} - -var file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 46) -var file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = []interface{}{ - (*PortfolioRequest)(nil), // 0: injective_accounts_rpc.PortfolioRequest - (*PortfolioResponse)(nil), // 1: injective_accounts_rpc.PortfolioResponse - (*AccountPortfolio)(nil), // 2: injective_accounts_rpc.AccountPortfolio - (*SubaccountPortfolio)(nil), // 3: injective_accounts_rpc.SubaccountPortfolio - (*OrderStatesRequest)(nil), // 4: injective_accounts_rpc.OrderStatesRequest - (*OrderStatesResponse)(nil), // 5: injective_accounts_rpc.OrderStatesResponse - (*OrderStateRecord)(nil), // 6: injective_accounts_rpc.OrderStateRecord - (*SubaccountsListRequest)(nil), // 7: injective_accounts_rpc.SubaccountsListRequest - (*SubaccountsListResponse)(nil), // 8: injective_accounts_rpc.SubaccountsListResponse - (*SubaccountBalancesListRequest)(nil), // 9: injective_accounts_rpc.SubaccountBalancesListRequest - (*SubaccountBalancesListResponse)(nil), // 10: injective_accounts_rpc.SubaccountBalancesListResponse - (*SubaccountBalance)(nil), // 11: injective_accounts_rpc.SubaccountBalance - (*SubaccountDeposit)(nil), // 12: injective_accounts_rpc.SubaccountDeposit - (*SubaccountBalanceEndpointRequest)(nil), // 13: injective_accounts_rpc.SubaccountBalanceEndpointRequest - (*SubaccountBalanceEndpointResponse)(nil), // 14: injective_accounts_rpc.SubaccountBalanceEndpointResponse - (*StreamSubaccountBalanceRequest)(nil), // 15: injective_accounts_rpc.StreamSubaccountBalanceRequest - (*StreamSubaccountBalanceResponse)(nil), // 16: injective_accounts_rpc.StreamSubaccountBalanceResponse - (*SubaccountHistoryRequest)(nil), // 17: injective_accounts_rpc.SubaccountHistoryRequest - (*SubaccountHistoryResponse)(nil), // 18: injective_accounts_rpc.SubaccountHistoryResponse - (*SubaccountBalanceTransfer)(nil), // 19: injective_accounts_rpc.SubaccountBalanceTransfer - (*CosmosCoin)(nil), // 20: injective_accounts_rpc.CosmosCoin - (*Paging)(nil), // 21: injective_accounts_rpc.Paging - (*SubaccountOrderSummaryRequest)(nil), // 22: injective_accounts_rpc.SubaccountOrderSummaryRequest - (*SubaccountOrderSummaryResponse)(nil), // 23: injective_accounts_rpc.SubaccountOrderSummaryResponse - (*RewardsRequest)(nil), // 24: injective_accounts_rpc.RewardsRequest - (*RewardsResponse)(nil), // 25: injective_accounts_rpc.RewardsResponse - (*Reward)(nil), // 26: injective_accounts_rpc.Reward - (*Coin)(nil), // 27: injective_accounts_rpc.Coin - (*StreamAccountDataRequest)(nil), // 28: injective_accounts_rpc.StreamAccountDataRequest - (*StreamAccountDataResponse)(nil), // 29: injective_accounts_rpc.StreamAccountDataResponse - (*SubaccountBalanceResult)(nil), // 30: injective_accounts_rpc.SubaccountBalanceResult - (*PositionsResult)(nil), // 31: injective_accounts_rpc.PositionsResult - (*Position)(nil), // 32: injective_accounts_rpc.Position - (*TradeResult)(nil), // 33: injective_accounts_rpc.TradeResult - (*SpotTrade)(nil), // 34: injective_accounts_rpc.SpotTrade - (*PriceLevel)(nil), // 35: injective_accounts_rpc.PriceLevel - (*DerivativeTrade)(nil), // 36: injective_accounts_rpc.DerivativeTrade - (*PositionDelta)(nil), // 37: injective_accounts_rpc.PositionDelta - (*OrderResult)(nil), // 38: injective_accounts_rpc.OrderResult - (*SpotLimitOrder)(nil), // 39: injective_accounts_rpc.SpotLimitOrder - (*DerivativeLimitOrder)(nil), // 40: injective_accounts_rpc.DerivativeLimitOrder - (*OrderHistoryResult)(nil), // 41: injective_accounts_rpc.OrderHistoryResult - (*SpotOrderHistory)(nil), // 42: injective_accounts_rpc.SpotOrderHistory - (*DerivativeOrderHistory)(nil), // 43: injective_accounts_rpc.DerivativeOrderHistory - (*FundingPaymentResult)(nil), // 44: injective_accounts_rpc.FundingPaymentResult - (*FundingPayment)(nil), // 45: injective_accounts_rpc.FundingPayment -} -var file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_accounts_rpc.PortfolioResponse.portfolio:type_name -> injective_accounts_rpc.AccountPortfolio - 3, // 1: injective_accounts_rpc.AccountPortfolio.subaccounts:type_name -> injective_accounts_rpc.SubaccountPortfolio - 6, // 2: injective_accounts_rpc.OrderStatesResponse.spot_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 6, // 3: injective_accounts_rpc.OrderStatesResponse.derivative_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 11, // 4: injective_accounts_rpc.SubaccountBalancesListResponse.balances:type_name -> injective_accounts_rpc.SubaccountBalance - 12, // 5: injective_accounts_rpc.SubaccountBalance.deposit:type_name -> injective_accounts_rpc.SubaccountDeposit - 11, // 6: injective_accounts_rpc.SubaccountBalanceEndpointResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 11, // 7: injective_accounts_rpc.StreamSubaccountBalanceResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 19, // 8: injective_accounts_rpc.SubaccountHistoryResponse.transfers:type_name -> injective_accounts_rpc.SubaccountBalanceTransfer - 21, // 9: injective_accounts_rpc.SubaccountHistoryResponse.paging:type_name -> injective_accounts_rpc.Paging - 20, // 10: injective_accounts_rpc.SubaccountBalanceTransfer.amount:type_name -> injective_accounts_rpc.CosmosCoin - 26, // 11: injective_accounts_rpc.RewardsResponse.rewards:type_name -> injective_accounts_rpc.Reward - 27, // 12: injective_accounts_rpc.Reward.rewards:type_name -> injective_accounts_rpc.Coin - 30, // 13: injective_accounts_rpc.StreamAccountDataResponse.subaccount_balance:type_name -> injective_accounts_rpc.SubaccountBalanceResult - 31, // 14: injective_accounts_rpc.StreamAccountDataResponse.position:type_name -> injective_accounts_rpc.PositionsResult - 33, // 15: injective_accounts_rpc.StreamAccountDataResponse.trade:type_name -> injective_accounts_rpc.TradeResult - 38, // 16: injective_accounts_rpc.StreamAccountDataResponse.order:type_name -> injective_accounts_rpc.OrderResult - 41, // 17: injective_accounts_rpc.StreamAccountDataResponse.order_history:type_name -> injective_accounts_rpc.OrderHistoryResult - 44, // 18: injective_accounts_rpc.StreamAccountDataResponse.funding_payment:type_name -> injective_accounts_rpc.FundingPaymentResult - 11, // 19: injective_accounts_rpc.SubaccountBalanceResult.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 32, // 20: injective_accounts_rpc.PositionsResult.position:type_name -> injective_accounts_rpc.Position - 34, // 21: injective_accounts_rpc.TradeResult.spot_trade:type_name -> injective_accounts_rpc.SpotTrade - 36, // 22: injective_accounts_rpc.TradeResult.derivative_trade:type_name -> injective_accounts_rpc.DerivativeTrade - 35, // 23: injective_accounts_rpc.SpotTrade.price:type_name -> injective_accounts_rpc.PriceLevel - 37, // 24: injective_accounts_rpc.DerivativeTrade.position_delta:type_name -> injective_accounts_rpc.PositionDelta - 39, // 25: injective_accounts_rpc.OrderResult.spot_order:type_name -> injective_accounts_rpc.SpotLimitOrder - 40, // 26: injective_accounts_rpc.OrderResult.derivative_order:type_name -> injective_accounts_rpc.DerivativeLimitOrder - 42, // 27: injective_accounts_rpc.OrderHistoryResult.spot_order_history:type_name -> injective_accounts_rpc.SpotOrderHistory - 43, // 28: injective_accounts_rpc.OrderHistoryResult.derivative_order_history:type_name -> injective_accounts_rpc.DerivativeOrderHistory - 45, // 29: injective_accounts_rpc.FundingPaymentResult.funding_payments:type_name -> injective_accounts_rpc.FundingPayment - 0, // 30: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:input_type -> injective_accounts_rpc.PortfolioRequest - 4, // 31: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:input_type -> injective_accounts_rpc.OrderStatesRequest - 7, // 32: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:input_type -> injective_accounts_rpc.SubaccountsListRequest - 9, // 33: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:input_type -> injective_accounts_rpc.SubaccountBalancesListRequest - 13, // 34: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:input_type -> injective_accounts_rpc.SubaccountBalanceEndpointRequest - 15, // 35: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:input_type -> injective_accounts_rpc.StreamSubaccountBalanceRequest - 17, // 36: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:input_type -> injective_accounts_rpc.SubaccountHistoryRequest - 22, // 37: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:input_type -> injective_accounts_rpc.SubaccountOrderSummaryRequest - 24, // 38: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:input_type -> injective_accounts_rpc.RewardsRequest - 28, // 39: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:input_type -> injective_accounts_rpc.StreamAccountDataRequest - 1, // 40: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:output_type -> injective_accounts_rpc.PortfolioResponse - 5, // 41: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:output_type -> injective_accounts_rpc.OrderStatesResponse - 8, // 42: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:output_type -> injective_accounts_rpc.SubaccountsListResponse - 10, // 43: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:output_type -> injective_accounts_rpc.SubaccountBalancesListResponse - 14, // 44: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:output_type -> injective_accounts_rpc.SubaccountBalanceEndpointResponse - 16, // 45: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:output_type -> injective_accounts_rpc.StreamSubaccountBalanceResponse - 18, // 46: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:output_type -> injective_accounts_rpc.SubaccountHistoryResponse - 23, // 47: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:output_type -> injective_accounts_rpc.SubaccountOrderSummaryResponse - 25, // 48: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:output_type -> injective_accounts_rpc.RewardsResponse - 29, // 49: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:output_type -> injective_accounts_rpc.StreamAccountDataResponse - 40, // [40:50] is the sub-list for method output_type - 30, // [30:40] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name -} - -func init() { file_goadesign_goagen_injective_accounts_rpc_proto_init() } -func file_goadesign_goagen_injective_accounts_rpc_proto_init() { - if File_goadesign_goagen_injective_accounts_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStateRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalance); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountDeposit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceTransfer); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CosmosCoin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Paging); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Reward); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Coin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountDataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountDataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionsResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Position); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradeResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotTrade); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceLevel); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeTrade); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionDelta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotLimitOrder); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeLimitOrder); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderHistoryResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpotOrderHistory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeOrderHistory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundingPaymentResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundingPayment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].OneofWrappers = []interface{}{ - (*TradeResult_SpotTrade)(nil), - (*TradeResult_DerivativeTrade)(nil), - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].OneofWrappers = []interface{}{ - (*OrderResult_SpotOrder)(nil), - (*OrderResult_DerivativeOrder)(nil), - } - file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].OneofWrappers = []interface{}{ - (*OrderHistoryResult_SpotOrderHistory)(nil), - (*OrderHistoryResult_DerivativeOrderHistory)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 46, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_goadesign_goagen_injective_accounts_rpc_proto_goTypes, - DependencyIndexes: file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs, - MessageInfos: file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes, - }.Build() - File_goadesign_goagen_injective_accounts_rpc_proto = out.File - file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = nil - file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = nil - file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = nil -} diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go deleted file mode 100644 index ceb634f9..00000000 --- a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go +++ /dev/null @@ -1,508 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 -// source: goadesign_goagen_injective_accounts_rpc.proto - -package injective_accounts_rpcpb - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// InjectiveAccountsRPCClient is the client API for InjectiveAccountsRPC service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type InjectiveAccountsRPCClient interface { - // Provide the account's portfolio value in USD. - Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) - // List order states by order hashes - OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) - // List all subaccounts IDs of an account address - SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) - // List subaccount balances for the provided denoms. - SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) - // Gets a balance for specific coin denom - SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) - // StreamSubaccountBalance streams new balance changes for a specified - // subaccount and denoms. If no denoms are provided, all denom changes are - // streamed. - StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) - // Get subaccount's deposits and withdrawals history - SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) - // Get subaccount's orders summary - SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) - // Provide historical trading rewards - Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) - // Stream live data for an account and respective data - StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) -} - -type injectiveAccountsRPCClient struct { - cc grpc.ClientConnInterface -} - -func NewInjectiveAccountsRPCClient(cc grpc.ClientConnInterface) InjectiveAccountsRPCClient { - return &injectiveAccountsRPCClient{cc} -} - -func (c *injectiveAccountsRPCClient) Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) { - out := new(PortfolioResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) { - out := new(OrderStatesResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) { - out := new(SubaccountsListResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) { - out := new(SubaccountBalancesListResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) { - out := new(SubaccountBalanceEndpointResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[0], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", opts...) - if err != nil { - return nil, err - } - x := &injectiveAccountsRPCStreamSubaccountBalanceClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type InjectiveAccountsRPC_StreamSubaccountBalanceClient interface { - Recv() (*StreamSubaccountBalanceResponse, error) - grpc.ClientStream -} - -type injectiveAccountsRPCStreamSubaccountBalanceClient struct { - grpc.ClientStream -} - -func (x *injectiveAccountsRPCStreamSubaccountBalanceClient) Recv() (*StreamSubaccountBalanceResponse, error) { - m := new(StreamSubaccountBalanceResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) { - out := new(SubaccountHistoryResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) { - out := new(SubaccountOrderSummaryResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) { - out := new(RewardsResponse) - err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *injectiveAccountsRPCClient) StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[1], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", opts...) - if err != nil { - return nil, err - } - x := &injectiveAccountsRPCStreamAccountDataClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type InjectiveAccountsRPC_StreamAccountDataClient interface { - Recv() (*StreamAccountDataResponse, error) - grpc.ClientStream -} - -type injectiveAccountsRPCStreamAccountDataClient struct { - grpc.ClientStream -} - -func (x *injectiveAccountsRPCStreamAccountDataClient) Recv() (*StreamAccountDataResponse, error) { - m := new(StreamAccountDataResponse) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -// InjectiveAccountsRPCServer is the server API for InjectiveAccountsRPC service. -// All implementations must embed UnimplementedInjectiveAccountsRPCServer -// for forward compatibility -type InjectiveAccountsRPCServer interface { - // Provide the account's portfolio value in USD. - Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) - // List order states by order hashes - OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) - // List all subaccounts IDs of an account address - SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) - // List subaccount balances for the provided denoms. - SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) - // Gets a balance for specific coin denom - SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) - // StreamSubaccountBalance streams new balance changes for a specified - // subaccount and denoms. If no denoms are provided, all denom changes are - // streamed. - StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error - // Get subaccount's deposits and withdrawals history - SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) - // Get subaccount's orders summary - SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) - // Provide historical trading rewards - Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) - // Stream live data for an account and respective data - StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error - mustEmbedUnimplementedInjectiveAccountsRPCServer() -} - -// UnimplementedInjectiveAccountsRPCServer must be embedded to have forward compatible implementations. -type UnimplementedInjectiveAccountsRPCServer struct { -} - -func (UnimplementedInjectiveAccountsRPCServer) Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Portfolio not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method OrderStates not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountsList not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalancesList not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalanceEndpoint not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error { - return status.Errorf(codes.Unimplemented, "method StreamSubaccountBalance not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountHistory not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubaccountOrderSummary not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Rewards not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error { - return status.Errorf(codes.Unimplemented, "method StreamAccountData not implemented") -} -func (UnimplementedInjectiveAccountsRPCServer) mustEmbedUnimplementedInjectiveAccountsRPCServer() {} - -// UnsafeInjectiveAccountsRPCServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to InjectiveAccountsRPCServer will -// result in compilation errors. -type UnsafeInjectiveAccountsRPCServer interface { - mustEmbedUnimplementedInjectiveAccountsRPCServer() -} - -func RegisterInjectiveAccountsRPCServer(s grpc.ServiceRegistrar, srv InjectiveAccountsRPCServer) { - s.RegisterService(&InjectiveAccountsRPC_ServiceDesc, srv) -} - -func _InjectiveAccountsRPC_Portfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PortfolioRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, req.(*PortfolioRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_OrderStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OrderStatesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, req.(*OrderStatesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountsListRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, req.(*SubaccountsListRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountBalancesList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountBalancesListRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, req.(*SubaccountBalancesListRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountBalanceEndpointRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, req.(*SubaccountBalanceEndpointRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_StreamSubaccountBalance_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(StreamSubaccountBalanceRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(InjectiveAccountsRPCServer).StreamSubaccountBalance(m, &injectiveAccountsRPCStreamSubaccountBalanceServer{stream}) -} - -type InjectiveAccountsRPC_StreamSubaccountBalanceServer interface { - Send(*StreamSubaccountBalanceResponse) error - grpc.ServerStream -} - -type injectiveAccountsRPCStreamSubaccountBalanceServer struct { - grpc.ServerStream -} - -func (x *injectiveAccountsRPCStreamSubaccountBalanceServer) Send(m *StreamSubaccountBalanceResponse) error { - return x.ServerStream.SendMsg(m) -} - -func _InjectiveAccountsRPC_SubaccountHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountHistoryRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, req.(*SubaccountHistoryRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_SubaccountOrderSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubaccountOrderSummaryRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, req.(*SubaccountOrderSummaryRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_Rewards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RewardsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveAccountsRPCServer).Rewards(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveAccountsRPCServer).Rewards(ctx, req.(*RewardsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _InjectiveAccountsRPC_StreamAccountData_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(StreamAccountDataRequest) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(InjectiveAccountsRPCServer).StreamAccountData(m, &injectiveAccountsRPCStreamAccountDataServer{stream}) -} - -type InjectiveAccountsRPC_StreamAccountDataServer interface { - Send(*StreamAccountDataResponse) error - grpc.ServerStream -} - -type injectiveAccountsRPCStreamAccountDataServer struct { - grpc.ServerStream -} - -func (x *injectiveAccountsRPCStreamAccountDataServer) Send(m *StreamAccountDataResponse) error { - return x.ServerStream.SendMsg(m) -} - -// InjectiveAccountsRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveAccountsRPC service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var InjectiveAccountsRPC_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "injective_accounts_rpc.InjectiveAccountsRPC", - HandlerType: (*InjectiveAccountsRPCServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Portfolio", - Handler: _InjectiveAccountsRPC_Portfolio_Handler, - }, - { - MethodName: "OrderStates", - Handler: _InjectiveAccountsRPC_OrderStates_Handler, - }, - { - MethodName: "SubaccountsList", - Handler: _InjectiveAccountsRPC_SubaccountsList_Handler, - }, - { - MethodName: "SubaccountBalancesList", - Handler: _InjectiveAccountsRPC_SubaccountBalancesList_Handler, - }, - { - MethodName: "SubaccountBalanceEndpoint", - Handler: _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler, - }, - { - MethodName: "SubaccountHistory", - Handler: _InjectiveAccountsRPC_SubaccountHistory_Handler, - }, - { - MethodName: "SubaccountOrderSummary", - Handler: _InjectiveAccountsRPC_SubaccountOrderSummary_Handler, - }, - { - MethodName: "Rewards", - Handler: _InjectiveAccountsRPC_Rewards_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "StreamSubaccountBalance", - Handler: _InjectiveAccountsRPC_StreamSubaccountBalance_Handler, - ServerStreams: true, - }, - { - StreamName: "StreamAccountData", - Handler: _InjectiveAccountsRPC_StreamAccountData_Handler, - ServerStreams: true, - }, - }, - Metadata: "goadesign_goagen_injective_accounts_rpc.proto", -} diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go deleted file mode 100644 index 4ceab949..00000000 --- a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go +++ /dev/null @@ -1,882 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_accounts_rpc.proto - -/* -Package injective_accounts_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_accounts_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Portfolio(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Portfolio(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderStates(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderStates(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountsList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountsList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalancesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalancesList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalanceEndpoint(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalanceEndpoint(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamSubaccountBalance_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, runtime.ServerMetadata, error) { - var protoReq StreamSubaccountBalanceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamSubaccountBalance(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountHistory(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountOrderSummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountOrderSummary(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Rewards(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Rewards(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamAccountData_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamAccountDataClient, runtime.ServerMetadata, error) { - var protoReq StreamAccountDataRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamAccountData(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveAccountsRPCHandlerServer registers the http handlers for service InjectiveAccountsRPC to "mux". -// UnaryRPC :call InjectiveAccountsRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveAccountsRPCHandlerFromEndpoint instead. -func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveAccountsRPCServer) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveAccountsRPCHandlerFromEndpoint is same as RegisterInjectiveAccountsRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveAccountsRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveAccountsRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveAccountsRPCHandler registers the http handlers for service InjectiveAccountsRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveAccountsRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveAccountsRPCHandlerClient(ctx, mux, NewInjectiveAccountsRPCClient(conn)) -} - -// RegisterInjectiveAccountsRPCHandlerClient registers the http handlers for service InjectiveAccountsRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveAccountsRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveAccountsRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveAccountsRPCClient" to call the correct interceptors. -func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveAccountsRPCClient) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveAccountsRPC_Portfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Portfolio"}, "")) - - pattern_InjectiveAccountsRPC_OrderStates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "OrderStates"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountsList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountsList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalancesList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalanceEndpoint"}, "")) - - pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamSubaccountBalance"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountHistory"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountOrderSummary"}, "")) - - pattern_InjectiveAccountsRPC_Rewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Rewards"}, "")) - - pattern_InjectiveAccountsRPC_StreamAccountData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamAccountData"}, "")) -) - -var ( - forward_InjectiveAccountsRPC_Portfolio_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_OrderStates_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountsList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.ForwardResponseStream - - forward_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_Rewards_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamAccountData_0 = runtime.ForwardResponseStream -) diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto deleted file mode 100644 index e28956da..00000000 --- a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto +++ /dev/null @@ -1,623 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_accounts_rpc; - -option go_package = "/injective_accounts_rpcpb"; - -// InjectiveAccountsRPC defines API of Exchange Accounts provider. -service InjectiveAccountsRPC { - // Provide the account's portfolio value in USD. - rpc Portfolio (PortfolioRequest) returns (PortfolioResponse); - // List order states by order hashes - rpc OrderStates (OrderStatesRequest) returns (OrderStatesResponse); - // List all subaccounts IDs of an account address - rpc SubaccountsList (SubaccountsListRequest) returns (SubaccountsListResponse); - // List subaccount balances for the provided denoms. - rpc SubaccountBalancesList (SubaccountBalancesListRequest) returns (SubaccountBalancesListResponse); - // Gets a balance for specific coin denom - rpc SubaccountBalanceEndpoint (SubaccountBalanceEndpointRequest) returns (SubaccountBalanceEndpointResponse); - // StreamSubaccountBalance streams new balance changes for a specified -// subaccount and denoms. If no denoms are provided, all denom changes are -// streamed. - rpc StreamSubaccountBalance (StreamSubaccountBalanceRequest) returns (stream StreamSubaccountBalanceResponse); - // Get subaccount's deposits and withdrawals history - rpc SubaccountHistory (SubaccountHistoryRequest) returns (SubaccountHistoryResponse); - // Get subaccount's orders summary - rpc SubaccountOrderSummary (SubaccountOrderSummaryRequest) returns (SubaccountOrderSummaryResponse); - // Provide historical trading rewards - rpc Rewards (RewardsRequest) returns (RewardsResponse); - // Stream live data for an account and respective data - rpc StreamAccountData (StreamAccountDataRequest) returns (stream StreamAccountDataResponse); -} - -message PortfolioRequest { - // Account address - string account_address = 1; -} - -message PortfolioResponse { - // The portfolio of this account - AccountPortfolio portfolio = 1; -} - -message AccountPortfolio { - // The account's portfolio value in USD. - string portfolio_value = 1; - // The account's available balance value in USD. - string available_balance = 2; - // The account's locked balance value in USD. - string locked_balance = 3; - // The account's total unrealized PnL value in USD. - string unrealized_pnl = 4; - // List of all subaccounts' portfolio - repeated SubaccountPortfolio subaccounts = 5; -} - -message SubaccountPortfolio { - // The ID of this subaccount - string subaccount_id = 1; - // The subaccount's available balance value in USD. - string available_balance = 2; - // The subaccount's locked balance value in USD. - string locked_balance = 3; - // The subaccount's total unrealized PnL value in USD. - string unrealized_pnl = 4; -} - -message OrderStatesRequest { - repeated string spot_order_hashes = 1; - repeated string derivative_order_hashes = 2; -} - -message OrderStatesResponse { - // List of the spot order state records - repeated OrderStateRecord spot_order_states = 1; - // List of the derivative order state records - repeated OrderStateRecord derivative_order_states = 2; -} - -message OrderStateRecord { - // Hash of the order - string order_hash = 1; - // The subaccountId that this order belongs to - string subaccount_id = 2; - // The Market ID of the order - string market_id = 3; - // The type of the order - string order_type = 4; - // The side of the order - string order_side = 5; - // The state (status) of the order - string state = 6; - // The filled quantity of the order - string quantity_filled = 7; - // The filled quantity of the order - string quantity_remaining = 8; - // Order committed timestamp in UNIX millis. - sint64 created_at = 9; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Order prices - string price = 11; - // Margin for derivative order - string margin = 12; -} - -message SubaccountsListRequest { - // Account address, the subaccounts owner - string account_address = 1; -} - -message SubaccountsListResponse { - repeated string subaccounts = 1; -} - -message SubaccountBalancesListRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message SubaccountBalancesListResponse { - // List of subaccount balances - repeated SubaccountBalance balances = 1; -} - -message SubaccountBalance { - // Related subaccount ID - string subaccount_id = 1; - // Account address, owner of this subaccount - string account_address = 2; - // Coin denom on the chain. - string denom = 3; - SubaccountDeposit deposit = 4; -} - -message SubaccountDeposit { - string total_balance = 1; - string available_balance = 2; -} - -message SubaccountBalanceEndpointRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Specify denom to get balance - string denom = 2; -} - -message SubaccountBalanceEndpointResponse { - // Subaccount balance - SubaccountBalance balance = 1; -} - -message StreamSubaccountBalanceRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message StreamSubaccountBalanceResponse { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message SubaccountHistoryRequest { - // SubaccountId of the trader we want to get the history from - string subaccount_id = 1; - // Filter history by denom - string denom = 2; - // Filter history by transfer type - repeated string transfer_types = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 5; - // Upper bound of account transfer history's executedAt - sint64 end_time = 6; -} - -message SubaccountHistoryResponse { - // List of subaccount transfers - repeated SubaccountBalanceTransfer transfers = 1; - Paging paging = 2; -} - -message SubaccountBalanceTransfer { - // Type of the subaccount balance transfer - string transfer_type = 1; - // Subaccount ID of the sending side - string src_subaccount_id = 2; - // Account address of the sending side - string src_account_address = 3; - // Subaccount ID of the receiving side - string dst_subaccount_id = 4; - // Account address of the receiving side - string dst_account_address = 5; - // Coin amount of the transfer - CosmosCoin amount = 6; - // Timestamp of the transfer in UNIX millis - sint64 executed_at = 7; -} - -message CosmosCoin { - // Coin denominator - string denom = 1; - // Coin amount (big int) - string amount = 2; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message SubaccountOrderSummaryRequest { - // SubaccountId of the trader we want to get the summary from - string subaccount_id = 1; - // MarketId is limiting order summary to specific market only - string market_id = 2; - // Filter by direction of the orders - string order_direction = 3; -} - -message SubaccountOrderSummaryResponse { - // Total count of subaccount's spot orders in given market and direction - sint64 spot_orders_total = 1; - // Total count of subaccount's derivative orders in given market and direction - sint64 derivative_orders_total = 2; -} - -message RewardsRequest { - // The distribution epoch sequence number. -1 for latest. - sint64 epoch = 1; - // Account address for the rewards distribution - string account_address = 2; -} - -message RewardsResponse { - // The trading rewards distributed - repeated Reward rewards = 1; -} - -message Reward { - // Account address - string account_address = 1; - // Reward coins distributed - repeated Coin rewards = 2; - // Rewards distribution timestamp in UNIX millis. - sint64 distributed_at = 3; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message StreamAccountDataRequest { - // account address - string account_address = 1; -} - -message StreamAccountDataResponse { - SubaccountBalanceResult subaccount_balance = 1; - PositionsResult position = 2; - TradeResult trade = 3; - OrderResult order = 4; - OrderHistoryResult order_history = 5; - FundingPaymentResult funding_payment = 6; -} - -message SubaccountBalanceResult { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message PositionsResult { - // Updated derivative Position - Position position = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message Position { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Position created timestamp in UNIX millis. - sint64 created_at = 11; -} - -message TradeResult { - oneof trade { - // New spot market trade - SpotTrade spot_trade = 1; - // New derivative market trade - DerivativeTrade derivative_trade = 2; - } - // Executed trades update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotTrade { - // Maker order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // The direction the trade - string trade_direction = 5; - // Price level at which trade has been executed - PriceLevel price = 6; - // The fee associated with the trade (quote asset denom) - string fee = 7; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 8; - // Fee recipient address - string fee_recipient = 9; - // A unique string that helps differentiate between trades - string trade_id = 10; - // Trade's execution side, marker/taker - string execution_side = 11; - // Custom client order ID - string cid = 12; -} - -message PriceLevel { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message DerivativeTrade { - // Order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // True if the trade is a liquidation - bool is_liquidation = 5; - // Position Delta from the trade - PositionDelta position_delta = 6; - // The payout associated with the trade - string payout = 7; - // The fee associated with the trade - string fee = 8; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 9; - // Fee recipient address - string fee_recipient = 10; - // A unique string that helps differentiate between trades - string trade_id = 11; - // Trade's execution side, marker/taker - string execution_side = 12; - // Custom client order ID - string cid = 13; -} - -message PositionDelta { - // The direction the trade - string trade_direction = 1; - // Execution Price of the trade. - string execution_price = 2; - // Execution Quantity of the trade. - string execution_quantity = 3; - // Execution Margin of the trade. - string execution_margin = 4; -} - -message OrderResult { - oneof order { - // Updated spot market order - SpotLimitOrder spot_order = 1; - // Updated derivative market order - DerivativeLimitOrder derivative_order = 2; - } - // Executed orders update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // Price of the order - string price = 5; - // Quantity of the order - string quantity = 6; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 7; - // Trigger price is the trigger price used by stop/take orders. 0 if the -// trigger price is not set. - string trigger_price = 8; - // Fee recipient address - string fee_recipient = 9; - // Order state - string state = 10; - // Order committed timestamp in UNIX millis. - sint64 created_at = 11; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 13; - // Custom client order ID - string cid = 14; -} - -message DerivativeLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Derivative Market ID - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // True if the order is a reduce-only order - bool is_reduce_only = 5; - // Margin of the order - string margin = 6; - // Price of the order - string price = 7; - // Quantity of the order - string quantity = 8; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 9; - // Trigger price is the trigger price used by stop/take orders - string trigger_price = 10; - // Fee recipient address - string fee_recipient = 11; - // Order state - string state = 12; - // Order committed timestamp in UNIX millis. - sint64 created_at = 13; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 14; - // Order number of subaccount - sint64 order_number = 15; - // Order type - string order_type = 16; - // Order type - bool is_conditional = 17; - // Trigger timestamp, only exists for conditional orders - uint64 trigger_at = 18; - // OrderHash of order that is triggered by this conditional order - string placed_order_hash = 19; - // Execution type of conditional order - string execution_type = 20; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 21; - // Custom client order ID - string cid = 22; -} - -message OrderHistoryResult { - oneof order_history { - // Spot order history - SpotOrderHistory spot_order_history = 1; - // Derivative order history - DerivativeOrderHistory derivative_order_history = 2; - } - // Order update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // Order direction (order side) - string direction = 14; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 15; - // Custom client order ID - string cid = 16; -} - -message DerivativeOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // True if an order is reduce only - bool is_reduce_only = 14; - // Order direction (order side) - string direction = 15; - // True if this is conditional order, otherwise false - bool is_conditional = 16; - // Trigger timestamp in unix milli - uint64 trigger_at = 17; - // Order hash placed when this triggers - string placed_order_hash = 18; - // Order's margin - string margin = 19; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 20; - // Custom client order ID - string cid = 21; -} - -message FundingPaymentResult { - // Funding payments of the account - FundingPayment funding_payments = 1; - // Funding payments type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message FundingPayment { - // Derivative Market ID - string market_id = 1; - // The subaccountId that the position belongs to - string subaccount_id = 2; - // Amount of the funding payment - string amount = 3; - // Timestamp of funding payment in UNIX millis - sint64 timestamp = 4; -} diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go index 865f0882..0640a809 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go index 4100ffbf..3c89d6b5 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go index da99cb0b..cb9eacab 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb @@ -792,12 +792,23 @@ type CampaignsV2Request struct { // Campaign type Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Whether the campaign is active + // Whether the campaign is active. + // Deprecated: use status instead. Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` // Limit number of returned campaigns Limit int32 `protobuf:"zigzag32,3,opt,name=limit,proto3" json:"limit,omitempty"` // Cursor for pagination Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"` + // Filter campaigns by start date greater than this value in milliseconds + FromStartDate int64 `protobuf:"zigzag64,5,opt,name=from_start_date,json=fromStartDate,proto3" json:"from_start_date,omitempty"` + // Filter campaigns by start date lower than this value in milliseconds + ToStartDate int64 `protobuf:"zigzag64,6,opt,name=to_start_date,json=toStartDate,proto3" json:"to_start_date,omitempty"` + // Filter campaigns by end date greater than this value in milliseconds + FromEndDate int64 `protobuf:"zigzag64,7,opt,name=from_end_date,json=fromEndDate,proto3" json:"from_end_date,omitempty"` + // Filter campaigns by end date lower than this value in milliseconds + ToEndDate int64 `protobuf:"zigzag64,8,opt,name=to_end_date,json=toEndDate,proto3" json:"to_end_date,omitempty"` + // Filter campaigns by status + Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"` } func (x *CampaignsV2Request) Reset() { @@ -860,6 +871,41 @@ func (x *CampaignsV2Request) GetCursor() string { return "" } +func (x *CampaignsV2Request) GetFromStartDate() int64 { + if x != nil { + return x.FromStartDate + } + return 0 +} + +func (x *CampaignsV2Request) GetToStartDate() int64 { + if x != nil { + return x.ToStartDate + } + return 0 +} + +func (x *CampaignsV2Request) GetFromEndDate() int64 { + if x != nil { + return x.FromEndDate + } + return 0 +} + +func (x *CampaignsV2Request) GetToEndDate() int64 { + if x != nil { + return x.ToEndDate + } + return 0 +} + +func (x *CampaignsV2Request) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + type CampaignsV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2085,246 +2131,256 @@ var file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc = []byte{ 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x6e, 0x0a, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, - 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x74, 0x22, 0x96, 0x02, 0x0a, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x66, 0x72, + 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, + 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x0b, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x45, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x6f, 0x45, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6f, 0x0a, 0x13, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0xc3, 0x04, 0x0a, + 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, + 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, - 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x22, 0xc3, 0x04, 0x0a, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, - 0x69, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, - 0xf6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x36, 0x0a, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0xe5, 0x03, 0x0a, 0x05, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, - 0x79, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x72, 0x61, 0x6e, - 0x6b, 0x42, 0x79, 0x54, 0x76, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, - 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x82, 0x03, 0x0a, 0x0f, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x2a, 0x0a, - 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, 0x76, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x17, 0x0a, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x22, 0xf6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3c, - 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x03, 0x0a, - 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, - 0x12, 0x30, 0x0a, 0x14, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, - 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x76, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x74, 0x76, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x41, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x22, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1d, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x52, 0x0a, + 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x0f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x22, 0xe5, 0x03, 0x0a, 0x05, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 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, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, + 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x6e, + 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0b, 0x72, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x79, 0x54, 0x76, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, + 0x6f, 0x67, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x03, 0x0a, 0x0f, 0x43, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x49, 0x64, 0x12, 0x2b, + 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x76, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd2, + 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x6f, + 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x72, + 0x74, 0x42, 0x79, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, + 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3c, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x03, 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x76, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, + 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x76, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x74, 0x76, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, + 0x76, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x74, + 0x76, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x41, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x5e, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 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, 0x22, 0x51, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x89, + 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x89, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x5a, - 0x0a, 0x07, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, - 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, + 0x72, 0x70, 0x63, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, - 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go index f45711c2..7b8d6047 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto index f5095311..13acc8b2 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto +++ b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto @@ -149,12 +149,23 @@ message CampaignsResponse { message CampaignsV2Request { // Campaign type string type = 1; - // Whether the campaign is active + // Whether the campaign is active. +// Deprecated: use status instead. bool active = 2; // Limit number of returned campaigns sint32 limit = 3; // Cursor for pagination string cursor = 4; + // Filter campaigns by start date greater than this value in milliseconds + sint64 from_start_date = 5; + // Filter campaigns by start date lower than this value in milliseconds + sint64 to_start_date = 6; + // Filter campaigns by end date greater than this value in milliseconds + sint64 from_end_date = 7; + // Filter campaigns by end date lower than this value in milliseconds + sint64 to_end_date = 8; + // Filter campaigns by status + string status = 9; } message CampaignsV2Response { diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go index 98af60fa..cae3c64a 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -170,7 +170,7 @@ type DerivativeMarketInfo struct { MaintenanceMarginRatio string `protobuf:"bytes,9,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3" json:"maintenance_margin_ratio,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,10,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,11,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -377,7 +377,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -1033,7 +1033,7 @@ type BinaryOptionsMarketInfo struct { SettlementTimestamp int64 `protobuf:"zigzag64,9,opt,name=settlement_timestamp,json=settlementTimestamp,proto3" json:"settlement_timestamp,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,10,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,11,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -4256,6 +4256,8 @@ type TradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesRequest) Reset() { @@ -4388,6 +4390,13 @@ func (x *TradesRequest) GetCid() string { return "" } +func (x *TradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4710,6 +4719,8 @@ type TradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesV2Request) Reset() { @@ -4842,6 +4853,13 @@ func (x *TradesV2Request) GetCid() string { return "" } +func (x *TradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4933,6 +4951,8 @@ type StreamTradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesRequest) Reset() { @@ -5065,6 +5085,13 @@ func (x *StreamTradesRequest) GetCid() string { return "" } +func (x *StreamTradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5166,6 +5193,8 @@ type StreamTradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Filter by fee recipient + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesV2Request) Reset() { @@ -5298,6 +5327,13 @@ func (x *StreamTradesV2Request) GetCid() string { return "" } +func (x *StreamTradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6952,7 +6988,7 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xbf, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, @@ -6981,542 +7017,551 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, - 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, - 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, - 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, - 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xbb, 0x01, - 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, - 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0xc1, 0x03, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, - 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x22, 0xc5, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x22, 0xc7, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xa7, 0x01, - 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, + 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, + 0x69, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, + 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, + 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, + 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, + 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, + 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, - 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, - 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc4, 0x1a, 0x0a, 0x1e, 0x49, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, + 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, + 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc4, 0x1a, 0x0a, 0x1e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, + 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, - 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, - 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, + 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, - 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x36, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, - 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, - 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, - 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, - 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, + 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, - 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go index 3fe28e50..4ca27953 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto index 468da6c6..b65d2df4 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto +++ b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto @@ -107,7 +107,7 @@ message DerivativeMarketInfo { string maintenance_margin_ratio = 9; // Coin denom used for the quote asset. string quote_denom = 10; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 11; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 12; @@ -131,7 +131,7 @@ message DerivativeMarketInfo { message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; @@ -238,7 +238,7 @@ message BinaryOptionsMarketInfo { sint64 settlement_timestamp = 9; // Coin denom used for the quote asset. string quote_denom = 10; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 11; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 12; @@ -755,6 +755,8 @@ message TradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message TradesResponse { @@ -834,6 +836,8 @@ message TradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message TradesV2Response { @@ -873,6 +877,8 @@ message StreamTradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message StreamTradesResponse { @@ -915,6 +921,8 @@ message StreamTradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Filter by fee recipient + string fee_recipient = 15; } message StreamTradesV2Response { diff --git a/exchange/event_provider_api/pb/event_provider_api.pb.gw.go b/exchange/event_provider_api/pb/event_provider_api.pb.gw.go new file mode 100644 index 00000000..03cf7f4d --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api.pb.gw.go @@ -0,0 +1,569 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: event_provider_api.proto + +/* +Package event_provider_apipb is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package event_provider_apipb + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetLatestHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetLatestHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetLatestHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetLatestHeight(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_StreamBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (EventProviderAPI_StreamBlockEventsClient, runtime.ServerMetadata, error) { + var protoReq StreamBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.StreamBlockEvents(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +func request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBlockEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetBlockEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBlockEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetBlockEventsRPC(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetCustomEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetCustomEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetCustomEventsRPCRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetCustomEventsRPC(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetABCIBlockEvents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetABCIBlockEvents(ctx, &protoReq) + return msg, metadata, err + +} + +func request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsAtHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetABCIBlockEventsAtHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetABCIBlockEventsAtHeightRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetABCIBlockEventsAtHeight(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterEventProviderAPIHandlerServer registers the http handlers for service EventProviderAPI to "mux". +// UnaryRPC :call EventProviderAPIServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterEventProviderAPIHandlerFromEndpoint instead. +func RegisterEventProviderAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server EventProviderAPIServer) error { + + mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterEventProviderAPIHandlerFromEndpoint is same as RegisterEventProviderAPIHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterEventProviderAPIHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterEventProviderAPIHandler(ctx, mux, conn) +} + +// RegisterEventProviderAPIHandler registers the http handlers for service EventProviderAPI to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterEventProviderAPIHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterEventProviderAPIHandlerClient(ctx, mux, NewEventProviderAPIClient(conn)) +} + +// RegisterEventProviderAPIHandlerClient registers the http handlers for service EventProviderAPI +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "EventProviderAPIClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "EventProviderAPIClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "EventProviderAPIClient" to call the correct interceptors. +func RegisterEventProviderAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client EventProviderAPIClient) error { + + mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/StreamBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/StreamBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_StreamBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_StreamBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_EventProviderAPI_GetLatestHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetLatestHeight"}, "")) + + pattern_EventProviderAPI_StreamBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "StreamBlockEvents"}, "")) + + pattern_EventProviderAPI_GetBlockEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetBlockEventsRPC"}, "")) + + pattern_EventProviderAPI_GetCustomEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetCustomEventsRPC"}, "")) + + pattern_EventProviderAPI_GetABCIBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEvents"}, "")) + + pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEventsAtHeight"}, "")) +) + +var ( + forward_EventProviderAPI_GetLatestHeight_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_StreamBlockEvents_0 = runtime.ForwardResponseStream + + forward_EventProviderAPI_GetBlockEventsRPC_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetCustomEventsRPC_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetABCIBlockEvents_0 = runtime.ForwardResponseMessage + + forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.ForwardResponseMessage +) diff --git a/exchange/event_provider_api/pb/event_provider_api.proto b/exchange/event_provider_api/pb/event_provider_api.proto new file mode 100644 index 00000000..7b85e866 --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api.proto @@ -0,0 +1,180 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// EventProviderAPI protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +syntax = "proto3"; + +package event_provider_api; + +option go_package = "/event_provider_apipb"; + +// EventProviderAPI provides processed block events for different backends. +service EventProviderAPI { + // Get latest block from event provider + rpc GetLatestHeight (GetLatestHeightRequest) returns (GetLatestHeightResponse); + // Stream processed block events for selected backend + rpc StreamBlockEvents (StreamBlockEventsRequest) returns (stream StreamBlockEventsResponse); + // Get processed block events for selected backend + rpc GetBlockEventsRPC (GetBlockEventsRPCRequest) returns (GetBlockEventsRPCResponse); + // Get custom processed block events for selected backend + rpc GetCustomEventsRPC (GetCustomEventsRPCRequest) returns (GetCustomEventsRPCResponse); + // Get raw block events for selected height + rpc GetABCIBlockEvents (GetABCIBlockEventsRequest) returns (GetABCIBlockEventsResponse); + // Get all raw block events for selected height + rpc GetABCIBlockEventsAtHeight (GetABCIBlockEventsAtHeightRequest) returns (GetABCIBlockEventsAtHeightResponse); +} + +message GetLatestHeightRequest { +} + +message GetLatestHeightResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + LatestBlockHeight data = 4; +} +// Latest block height from event provider db +message LatestBlockHeight { + uint64 height = 1; +} + +message StreamBlockEventsRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; +} + +message StreamBlockEventsResponse { + repeated Block blocks = 1; +} + +message Block { + sint64 height = 1; + string version = 2; + // Processed block events in the block + repeated BlockEvent events = 3; + // Indicates whether the block is the latest one available in the event provider + bool in_sync = 4; +} + +message BlockEvent { + // Event type + string type_url = 1; + // Event data + bytes value = 2; + // TX hash + bytes tx_hash = 3; + // Set only if it's a BeginBlock or EndBlock event + string mode = 4; +} + +message GetBlockEventsRPCRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; + bool human_readable = 3; +} + +message GetBlockEventsRPCResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + BlockEventsRPC data = 4; +} +// Processed block events for backend processor to consume +message BlockEventsRPC { + // Array of event types + repeated string types = 1; + // Array of parsed events + repeated bytes events = 2; + // Map of event index - tx hash + map tx_hashes = 3; +} + +message GetCustomEventsRPCRequest { + // Select backend processor + string backend = 1; + sint32 height = 2; + // Specify custom events to get + string events = 3; +} + +message GetCustomEventsRPCResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + BlockEventsRPC data = 4; +} + +message GetABCIBlockEventsRequest { + sint32 height = 1; + // Array of event types + repeated string event_types = 2; +} + +message GetABCIBlockEventsResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + RawBlock raw_block = 4; +} + +message RawBlock { + sint64 height = 1; + string block_time = 5; + // Block timestamp in UNIX millis. + sint64 block_timestamp = 6; + repeated ABCIResponseDeliverTx txs_results = 2; + repeated ABCIEvent begin_block_events = 3; + repeated ABCIEvent end_block_events = 4; +} + +message ABCIResponseDeliverTx { + sint32 code = 1; + string log = 2; + string info = 3; + sint64 gas_wanted = 4; + sint64 gas_used = 5; + repeated ABCIEvent events = 6; + string codespace = 7; + bytes tx_hash = 8; +} + +message ABCIEvent { + string type = 1; + repeated ABCIAttribute attributes = 2; +} + +message ABCIAttribute { + string key = 1; + string value = 2; +} + +message GetABCIBlockEventsAtHeightRequest { + sint32 height = 1; +} + +message GetABCIBlockEventsAtHeightResponse { + // Response version. + string v = 1; + // Status of the response. + string s = 2; + // Error message. + string e = 3; + RawBlock raw_block = 4; +} diff --git a/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go b/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go new file mode 100644 index 00000000..2acb375b --- /dev/null +++ b/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go @@ -0,0 +1,563 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go +// +// Generated by this command: +// +// mockgen -source=api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go -destination=api/gen/grpc/event_provider_api/pb/event_provider_api_grpc.pb_mock.go -package=event_provider_apipb +// + +// Package event_provider_apipb is a generated GoMock package. +package event_provider_apipb + +import ( + context "context" + reflect "reflect" + + gomock "go.uber.org/mock/gomock" + grpc "google.golang.org/grpc" + metadata "google.golang.org/grpc/metadata" +) + +// MockEventProviderAPIClient is a mock of EventProviderAPIClient interface. +type MockEventProviderAPIClient struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPIClientMockRecorder +} + +// MockEventProviderAPIClientMockRecorder is the mock recorder for MockEventProviderAPIClient. +type MockEventProviderAPIClientMockRecorder struct { + mock *MockEventProviderAPIClient +} + +// NewMockEventProviderAPIClient creates a new mock instance. +func NewMockEventProviderAPIClient(ctrl *gomock.Controller) *MockEventProviderAPIClient { + mock := &MockEventProviderAPIClient{ctrl: ctrl} + mock.recorder = &MockEventProviderAPIClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPIClient) EXPECT() *MockEventProviderAPIClientMockRecorder { + return m.recorder +} + +// GetABCIBlockEvents mocks base method. +func (m *MockEventProviderAPIClient) GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetABCIBlockEvents", varargs...) + ret0, _ := ret[0].(*GetABCIBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. +func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEvents(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEvents), varargs...) +} + +// GetABCIBlockEventsAtHeight mocks base method. +func (m *MockEventProviderAPIClient) GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", varargs...) + ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. +func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEventsAtHeight(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEventsAtHeight), varargs...) +} + +// GetBlockEventsRPC mocks base method. +func (m *MockEventProviderAPIClient) GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetBlockEventsRPC", varargs...) + ret0, _ := ret[0].(*GetBlockEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. +func (mr *MockEventProviderAPIClientMockRecorder) GetBlockEventsRPC(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetBlockEventsRPC), varargs...) +} + +// GetCustomEventsRPC mocks base method. +func (m *MockEventProviderAPIClient) GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetCustomEventsRPC", varargs...) + ret0, _ := ret[0].(*GetCustomEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. +func (mr *MockEventProviderAPIClientMockRecorder) GetCustomEventsRPC(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetCustomEventsRPC), varargs...) +} + +// GetLatestHeight mocks base method. +func (m *MockEventProviderAPIClient) GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetLatestHeight", varargs...) + ret0, _ := ret[0].(*GetLatestHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestHeight indicates an expected call of GetLatestHeight. +func (mr *MockEventProviderAPIClientMockRecorder) GetLatestHeight(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetLatestHeight), varargs...) +} + +// StreamBlockEvents mocks base method. +func (m *MockEventProviderAPIClient) StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "StreamBlockEvents", varargs...) + ret0, _ := ret[0].(EventProviderAPI_StreamBlockEventsClient) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// StreamBlockEvents indicates an expected call of StreamBlockEvents. +func (mr *MockEventProviderAPIClientMockRecorder) StreamBlockEvents(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).StreamBlockEvents), varargs...) +} + +// MockEventProviderAPI_StreamBlockEventsClient is a mock of EventProviderAPI_StreamBlockEventsClient interface. +type MockEventProviderAPI_StreamBlockEventsClient struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPI_StreamBlockEventsClientMockRecorder +} + +// MockEventProviderAPI_StreamBlockEventsClientMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsClient. +type MockEventProviderAPI_StreamBlockEventsClientMockRecorder struct { + mock *MockEventProviderAPI_StreamBlockEventsClient +} + +// NewMockEventProviderAPI_StreamBlockEventsClient creates a new mock instance. +func NewMockEventProviderAPI_StreamBlockEventsClient(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsClient { + mock := &MockEventProviderAPI_StreamBlockEventsClient{ctrl: ctrl} + mock.recorder = &MockEventProviderAPI_StreamBlockEventsClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPI_StreamBlockEventsClient) EXPECT() *MockEventProviderAPI_StreamBlockEventsClientMockRecorder { + return m.recorder +} + +// CloseSend mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) CloseSend() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CloseSend") + ret0, _ := ret[0].(error) + return ret0 +} + +// CloseSend indicates an expected call of CloseSend. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) CloseSend() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).CloseSend)) +} + +// Context mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Context)) +} + +// Header mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Header() (metadata.MD, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Header") + ret0, _ := ret[0].(metadata.MD) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Header indicates an expected call of Header. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Header() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Header)) +} + +// Recv mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Recv() (*StreamBlockEventsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Recv") + ret0, _ := ret[0].(*StreamBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Recv indicates an expected call of Recv. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Recv() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Recv)) +} + +// RecvMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) RecvMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).RecvMsg), m) +} + +// SendMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) SendMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).SendMsg), m) +} + +// Trailer mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsClient) Trailer() metadata.MD { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Trailer") + ret0, _ := ret[0].(metadata.MD) + return ret0 +} + +// Trailer indicates an expected call of Trailer. +func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Trailer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Trailer)) +} + +// MockEventProviderAPIServer is a mock of EventProviderAPIServer interface. +type MockEventProviderAPIServer struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPIServerMockRecorder +} + +// MockEventProviderAPIServerMockRecorder is the mock recorder for MockEventProviderAPIServer. +type MockEventProviderAPIServerMockRecorder struct { + mock *MockEventProviderAPIServer +} + +// NewMockEventProviderAPIServer creates a new mock instance. +func NewMockEventProviderAPIServer(ctrl *gomock.Controller) *MockEventProviderAPIServer { + mock := &MockEventProviderAPIServer{ctrl: ctrl} + mock.recorder = &MockEventProviderAPIServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPIServer) EXPECT() *MockEventProviderAPIServerMockRecorder { + return m.recorder +} + +// GetABCIBlockEvents mocks base method. +func (m *MockEventProviderAPIServer) GetABCIBlockEvents(arg0 context.Context, arg1 *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetABCIBlockEvents", arg0, arg1) + ret0, _ := ret[0].(*GetABCIBlockEventsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. +func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEvents(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEvents), arg0, arg1) +} + +// GetABCIBlockEventsAtHeight mocks base method. +func (m *MockEventProviderAPIServer) GetABCIBlockEventsAtHeight(arg0 context.Context, arg1 *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", arg0, arg1) + ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. +func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEventsAtHeight(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEventsAtHeight), arg0, arg1) +} + +// GetBlockEventsRPC mocks base method. +func (m *MockEventProviderAPIServer) GetBlockEventsRPC(arg0 context.Context, arg1 *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBlockEventsRPC", arg0, arg1) + ret0, _ := ret[0].(*GetBlockEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. +func (mr *MockEventProviderAPIServerMockRecorder) GetBlockEventsRPC(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetBlockEventsRPC), arg0, arg1) +} + +// GetCustomEventsRPC mocks base method. +func (m *MockEventProviderAPIServer) GetCustomEventsRPC(arg0 context.Context, arg1 *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCustomEventsRPC", arg0, arg1) + ret0, _ := ret[0].(*GetCustomEventsRPCResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. +func (mr *MockEventProviderAPIServerMockRecorder) GetCustomEventsRPC(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetCustomEventsRPC), arg0, arg1) +} + +// GetLatestHeight mocks base method. +func (m *MockEventProviderAPIServer) GetLatestHeight(arg0 context.Context, arg1 *GetLatestHeightRequest) (*GetLatestHeightResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLatestHeight", arg0, arg1) + ret0, _ := ret[0].(*GetLatestHeightResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLatestHeight indicates an expected call of GetLatestHeight. +func (mr *MockEventProviderAPIServerMockRecorder) GetLatestHeight(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetLatestHeight), arg0, arg1) +} + +// StreamBlockEvents mocks base method. +func (m *MockEventProviderAPIServer) StreamBlockEvents(arg0 *StreamBlockEventsRequest, arg1 EventProviderAPI_StreamBlockEventsServer) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "StreamBlockEvents", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// StreamBlockEvents indicates an expected call of StreamBlockEvents. +func (mr *MockEventProviderAPIServerMockRecorder) StreamBlockEvents(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).StreamBlockEvents), arg0, arg1) +} + +// mustEmbedUnimplementedEventProviderAPIServer mocks base method. +func (m *MockEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") +} + +// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. +func (mr *MockEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) +} + +// MockUnsafeEventProviderAPIServer is a mock of UnsafeEventProviderAPIServer interface. +type MockUnsafeEventProviderAPIServer struct { + ctrl *gomock.Controller + recorder *MockUnsafeEventProviderAPIServerMockRecorder +} + +// MockUnsafeEventProviderAPIServerMockRecorder is the mock recorder for MockUnsafeEventProviderAPIServer. +type MockUnsafeEventProviderAPIServerMockRecorder struct { + mock *MockUnsafeEventProviderAPIServer +} + +// NewMockUnsafeEventProviderAPIServer creates a new mock instance. +func NewMockUnsafeEventProviderAPIServer(ctrl *gomock.Controller) *MockUnsafeEventProviderAPIServer { + mock := &MockUnsafeEventProviderAPIServer{ctrl: ctrl} + mock.recorder = &MockUnsafeEventProviderAPIServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockUnsafeEventProviderAPIServer) EXPECT() *MockUnsafeEventProviderAPIServerMockRecorder { + return m.recorder +} + +// mustEmbedUnimplementedEventProviderAPIServer mocks base method. +func (m *MockUnsafeEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { + m.ctrl.T.Helper() + m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") +} + +// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. +func (mr *MockUnsafeEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockUnsafeEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) +} + +// MockEventProviderAPI_StreamBlockEventsServer is a mock of EventProviderAPI_StreamBlockEventsServer interface. +type MockEventProviderAPI_StreamBlockEventsServer struct { + ctrl *gomock.Controller + recorder *MockEventProviderAPI_StreamBlockEventsServerMockRecorder +} + +// MockEventProviderAPI_StreamBlockEventsServerMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsServer. +type MockEventProviderAPI_StreamBlockEventsServerMockRecorder struct { + mock *MockEventProviderAPI_StreamBlockEventsServer +} + +// NewMockEventProviderAPI_StreamBlockEventsServer creates a new mock instance. +func NewMockEventProviderAPI_StreamBlockEventsServer(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsServer { + mock := &MockEventProviderAPI_StreamBlockEventsServer{ctrl: ctrl} + mock.recorder = &MockEventProviderAPI_StreamBlockEventsServerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockEventProviderAPI_StreamBlockEventsServer) EXPECT() *MockEventProviderAPI_StreamBlockEventsServerMockRecorder { + return m.recorder +} + +// Context mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) Context() context.Context { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Context") + ret0, _ := ret[0].(context.Context) + return ret0 +} + +// Context indicates an expected call of Context. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Context() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Context)) +} + +// RecvMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) RecvMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "RecvMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// RecvMsg indicates an expected call of RecvMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) RecvMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).RecvMsg), m) +} + +// Send mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) Send(arg0 *StreamBlockEventsResponse) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Send", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// Send indicates an expected call of Send. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Send(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Send), arg0) +} + +// SendHeader mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SendHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SendHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendHeader indicates an expected call of SendHeader. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendHeader(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendHeader), arg0) +} + +// SendMsg mocks base method. +func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) SendMsg(m any) error { + m_2.ctrl.T.Helper() + ret := m_2.ctrl.Call(m_2, "SendMsg", m) + ret0, _ := ret[0].(error) + return ret0 +} + +// SendMsg indicates an expected call of SendMsg. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendMsg(m any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendMsg), m) +} + +// SetHeader mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SetHeader(arg0 metadata.MD) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SetHeader", arg0) + ret0, _ := ret[0].(error) + return ret0 +} + +// SetHeader indicates an expected call of SetHeader. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetHeader(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetHeader), arg0) +} + +// SetTrailer mocks base method. +func (m *MockEventProviderAPI_StreamBlockEventsServer) SetTrailer(arg0 metadata.MD) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "SetTrailer", arg0) +} + +// SetTrailer indicates an expected call of SetTrailer. +func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetTrailer(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetTrailer), arg0) +} diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go new file mode 100644 index 00000000..1389f949 --- /dev/null +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go @@ -0,0 +1,1881 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// EventProviderAPI protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.21.12 +// source: goadesign_goagen_event_provider_api.proto + +package event_provider_apipb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GetLatestHeightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetLatestHeightRequest) Reset() { + *x = GetLatestHeightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLatestHeightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLatestHeightRequest) ProtoMessage() {} + +func (x *GetLatestHeightRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[0] + 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 GetLatestHeightRequest.ProtoReflect.Descriptor instead. +func (*GetLatestHeightRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{0} +} + +type GetLatestHeightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *LatestBlockHeight `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetLatestHeightResponse) Reset() { + *x = GetLatestHeightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLatestHeightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLatestHeightResponse) ProtoMessage() {} + +func (x *GetLatestHeightResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[1] + 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 GetLatestHeightResponse.ProtoReflect.Descriptor instead. +func (*GetLatestHeightResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{1} +} + +func (x *GetLatestHeightResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetLatestHeightResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetLatestHeightResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetLatestHeightResponse) GetData() *LatestBlockHeight { + if x != nil { + return x.Data + } + return nil +} + +// Latest block height from event provider db +type LatestBlockHeight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *LatestBlockHeight) Reset() { + *x = LatestBlockHeight{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LatestBlockHeight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LatestBlockHeight) ProtoMessage() {} + +func (x *LatestBlockHeight) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[2] + 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 LatestBlockHeight.ProtoReflect.Descriptor instead. +func (*LatestBlockHeight) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{2} +} + +func (x *LatestBlockHeight) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type StreamBlockEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *StreamBlockEventsRequest) Reset() { + *x = StreamBlockEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamBlockEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamBlockEventsRequest) ProtoMessage() {} + +func (x *StreamBlockEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[3] + 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 StreamBlockEventsRequest.ProtoReflect.Descriptor instead. +func (*StreamBlockEventsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{3} +} + +func (x *StreamBlockEventsRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *StreamBlockEventsRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +type StreamBlockEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blocks []*Block `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"` +} + +func (x *StreamBlockEventsResponse) Reset() { + *x = StreamBlockEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamBlockEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamBlockEventsResponse) ProtoMessage() {} + +func (x *StreamBlockEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_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 mi.MessageOf(x) +} + +// Deprecated: Use StreamBlockEventsResponse.ProtoReflect.Descriptor instead. +func (*StreamBlockEventsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{4} +} + +func (x *StreamBlockEventsResponse) GetBlocks() []*Block { + if x != nil { + return x.Blocks + } + return nil +} + +type Block struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int64 `protobuf:"zigzag64,1,opt,name=height,proto3" json:"height,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // Processed block events in the block + Events []*BlockEvent `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + // Indicates whether the block is the latest one available in the event provider + InSync bool `protobuf:"varint,4,opt,name=in_sync,json=inSync,proto3" json:"in_sync,omitempty"` +} + +func (x *Block) Reset() { + *x = Block{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Block) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Block) ProtoMessage() {} + +func (x *Block) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[5] + 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 Block.ProtoReflect.Descriptor instead. +func (*Block) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{5} +} + +func (x *Block) GetHeight() int64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *Block) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Block) GetEvents() []*BlockEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *Block) GetInSync() bool { + if x != nil { + return x.InSync + } + return false +} + +type BlockEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Event type + TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + // Event data + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // TX hash + TxHash []byte `protobuf:"bytes,3,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Set only if it's a BeginBlock or EndBlock event + Mode string `protobuf:"bytes,4,opt,name=mode,proto3" json:"mode,omitempty"` +} + +func (x *BlockEvent) Reset() { + *x = BlockEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockEvent) ProtoMessage() {} + +func (x *BlockEvent) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[6] + 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 BlockEvent.ProtoReflect.Descriptor instead. +func (*BlockEvent) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{6} +} + +func (x *BlockEvent) GetTypeUrl() string { + if x != nil { + return x.TypeUrl + } + return "" +} + +func (x *BlockEvent) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *BlockEvent) GetTxHash() []byte { + if x != nil { + return x.TxHash + } + return nil +} + +func (x *BlockEvent) GetMode() string { + if x != nil { + return x.Mode + } + return "" +} + +type GetBlockEventsRPCRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` + HumanReadable bool `protobuf:"varint,3,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"` +} + +func (x *GetBlockEventsRPCRequest) Reset() { + *x = GetBlockEventsRPCRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockEventsRPCRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockEventsRPCRequest) ProtoMessage() {} + +func (x *GetBlockEventsRPCRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[7] + 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 GetBlockEventsRPCRequest.ProtoReflect.Descriptor instead. +func (*GetBlockEventsRPCRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{7} +} + +func (x *GetBlockEventsRPCRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *GetBlockEventsRPCRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetBlockEventsRPCRequest) GetHumanReadable() bool { + if x != nil { + return x.HumanReadable + } + return false +} + +type GetBlockEventsRPCResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *BlockEventsRPC `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBlockEventsRPCResponse) Reset() { + *x = GetBlockEventsRPCResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockEventsRPCResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockEventsRPCResponse) ProtoMessage() {} + +func (x *GetBlockEventsRPCResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[8] + 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 GetBlockEventsRPCResponse.ProtoReflect.Descriptor instead. +func (*GetBlockEventsRPCResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{8} +} + +func (x *GetBlockEventsRPCResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetBlockEventsRPCResponse) GetData() *BlockEventsRPC { + if x != nil { + return x.Data + } + return nil +} + +// Processed block events for backend processor to consume +type BlockEventsRPC struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array of event types + Types []string `protobuf:"bytes,1,rep,name=types,proto3" json:"types,omitempty"` + // Array of parsed events + Events [][]byte `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` + // Map of event index - tx hash + TxHashes map[int32][]byte `protobuf:"bytes,3,rep,name=tx_hashes,json=txHashes,proto3" json:"tx_hashes,omitempty" protobuf_key:"zigzag32,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *BlockEventsRPC) Reset() { + *x = BlockEventsRPC{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockEventsRPC) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockEventsRPC) ProtoMessage() {} + +func (x *BlockEventsRPC) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[9] + 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 BlockEventsRPC.ProtoReflect.Descriptor instead. +func (*BlockEventsRPC) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{9} +} + +func (x *BlockEventsRPC) GetTypes() []string { + if x != nil { + return x.Types + } + return nil +} + +func (x *BlockEventsRPC) GetEvents() [][]byte { + if x != nil { + return x.Events + } + return nil +} + +func (x *BlockEventsRPC) GetTxHashes() map[int32][]byte { + if x != nil { + return x.TxHashes + } + return nil +} + +type GetCustomEventsRPCRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Select backend processor + Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` + Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` + // Specify custom events to get + Events string `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"` +} + +func (x *GetCustomEventsRPCRequest) Reset() { + *x = GetCustomEventsRPCRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCustomEventsRPCRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCustomEventsRPCRequest) ProtoMessage() {} + +func (x *GetCustomEventsRPCRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[10] + 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 GetCustomEventsRPCRequest.ProtoReflect.Descriptor instead. +func (*GetCustomEventsRPCRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{10} +} + +func (x *GetCustomEventsRPCRequest) GetBackend() string { + if x != nil { + return x.Backend + } + return "" +} + +func (x *GetCustomEventsRPCRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetCustomEventsRPCRequest) GetEvents() string { + if x != nil { + return x.Events + } + return "" +} + +type GetCustomEventsRPCResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + Data *BlockEventsRPC `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetCustomEventsRPCResponse) Reset() { + *x = GetCustomEventsRPCResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCustomEventsRPCResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCustomEventsRPCResponse) ProtoMessage() {} + +func (x *GetCustomEventsRPCResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[11] + 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 GetCustomEventsRPCResponse.ProtoReflect.Descriptor instead. +func (*GetCustomEventsRPCResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{11} +} + +func (x *GetCustomEventsRPCResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetCustomEventsRPCResponse) GetData() *BlockEventsRPC { + if x != nil { + return x.Data + } + return nil +} + +type GetABCIBlockEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int32 `protobuf:"zigzag32,1,opt,name=height,proto3" json:"height,omitempty"` + // Array of event types + EventTypes []string `protobuf:"bytes,2,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` +} + +func (x *GetABCIBlockEventsRequest) Reset() { + *x = GetABCIBlockEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsRequest) ProtoMessage() {} + +func (x *GetABCIBlockEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[12] + 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 GetABCIBlockEventsRequest.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{12} +} + +func (x *GetABCIBlockEventsRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetABCIBlockEventsRequest) GetEventTypes() []string { + if x != nil { + return x.EventTypes + } + return nil +} + +type GetABCIBlockEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + RawBlock *RawBlock `protobuf:"bytes,4,opt,name=raw_block,json=rawBlock,proto3" json:"raw_block,omitempty"` +} + +func (x *GetABCIBlockEventsResponse) Reset() { + *x = GetABCIBlockEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsResponse) ProtoMessage() {} + +func (x *GetABCIBlockEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[13] + 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 GetABCIBlockEventsResponse.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{13} +} + +func (x *GetABCIBlockEventsResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetABCIBlockEventsResponse) GetRawBlock() *RawBlock { + if x != nil { + return x.RawBlock + } + return nil +} + +type RawBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int64 `protobuf:"zigzag64,1,opt,name=height,proto3" json:"height,omitempty"` + BlockTime string `protobuf:"bytes,5,opt,name=block_time,json=blockTime,proto3" json:"block_time,omitempty"` + // Block timestamp in UNIX millis. + BlockTimestamp int64 `protobuf:"zigzag64,6,opt,name=block_timestamp,json=blockTimestamp,proto3" json:"block_timestamp,omitempty"` + TxsResults []*ABCIResponseDeliverTx `protobuf:"bytes,2,rep,name=txs_results,json=txsResults,proto3" json:"txs_results,omitempty"` + BeginBlockEvents []*ABCIEvent `protobuf:"bytes,3,rep,name=begin_block_events,json=beginBlockEvents,proto3" json:"begin_block_events,omitempty"` + EndBlockEvents []*ABCIEvent `protobuf:"bytes,4,rep,name=end_block_events,json=endBlockEvents,proto3" json:"end_block_events,omitempty"` +} + +func (x *RawBlock) Reset() { + *x = RawBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RawBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RawBlock) ProtoMessage() {} + +func (x *RawBlock) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[14] + 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 RawBlock.ProtoReflect.Descriptor instead. +func (*RawBlock) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{14} +} + +func (x *RawBlock) GetHeight() int64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *RawBlock) GetBlockTime() string { + if x != nil { + return x.BlockTime + } + return "" +} + +func (x *RawBlock) GetBlockTimestamp() int64 { + if x != nil { + return x.BlockTimestamp + } + return 0 +} + +func (x *RawBlock) GetTxsResults() []*ABCIResponseDeliverTx { + if x != nil { + return x.TxsResults + } + return nil +} + +func (x *RawBlock) GetBeginBlockEvents() []*ABCIEvent { + if x != nil { + return x.BeginBlockEvents + } + return nil +} + +func (x *RawBlock) GetEndBlockEvents() []*ABCIEvent { + if x != nil { + return x.EndBlockEvents + } + return nil +} + +type ABCIResponseDeliverTx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code int32 `protobuf:"zigzag32,1,opt,name=code,proto3" json:"code,omitempty"` + Log string `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"zigzag64,4,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"zigzag64,5,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Events []*ABCIEvent `protobuf:"bytes,6,rep,name=events,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,7,opt,name=codespace,proto3" json:"codespace,omitempty"` + TxHash []byte `protobuf:"bytes,8,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` +} + +func (x *ABCIResponseDeliverTx) Reset() { + *x = ABCIResponseDeliverTx{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIResponseDeliverTx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIResponseDeliverTx) ProtoMessage() {} + +func (x *ABCIResponseDeliverTx) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[15] + 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 ABCIResponseDeliverTx.ProtoReflect.Descriptor instead. +func (*ABCIResponseDeliverTx) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{15} +} + +func (x *ABCIResponseDeliverTx) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetLog() string { + if x != nil { + return x.Log + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetInfo() string { + if x != nil { + return x.Info + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetGasWanted() int64 { + if x != nil { + return x.GasWanted + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetGasUsed() int64 { + if x != nil { + return x.GasUsed + } + return 0 +} + +func (x *ABCIResponseDeliverTx) GetEvents() []*ABCIEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *ABCIResponseDeliverTx) GetCodespace() string { + if x != nil { + return x.Codespace + } + return "" +} + +func (x *ABCIResponseDeliverTx) GetTxHash() []byte { + if x != nil { + return x.TxHash + } + return nil +} + +type ABCIEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Attributes []*ABCIAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (x *ABCIEvent) Reset() { + *x = ABCIEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIEvent) ProtoMessage() {} + +func (x *ABCIEvent) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[16] + 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 ABCIEvent.ProtoReflect.Descriptor instead. +func (*ABCIEvent) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{16} +} + +func (x *ABCIEvent) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ABCIEvent) GetAttributes() []*ABCIAttribute { + if x != nil { + return x.Attributes + } + return nil +} + +type ABCIAttribute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *ABCIAttribute) Reset() { + *x = ABCIAttribute{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABCIAttribute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABCIAttribute) ProtoMessage() {} + +func (x *ABCIAttribute) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[17] + 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 ABCIAttribute.ProtoReflect.Descriptor instead. +func (*ABCIAttribute) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{17} +} + +func (x *ABCIAttribute) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *ABCIAttribute) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type GetABCIBlockEventsAtHeightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height int32 `protobuf:"zigzag32,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *GetABCIBlockEventsAtHeightRequest) Reset() { + *x = GetABCIBlockEventsAtHeightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsAtHeightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsAtHeightRequest) ProtoMessage() {} + +func (x *GetABCIBlockEventsAtHeightRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[18] + 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 GetABCIBlockEventsAtHeightRequest.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsAtHeightRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{18} +} + +func (x *GetABCIBlockEventsAtHeightRequest) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +type GetABCIBlockEventsAtHeightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response version. + V string `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + // Status of the response. + S string `protobuf:"bytes,2,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + E string `protobuf:"bytes,3,opt,name=e,proto3" json:"e,omitempty"` + RawBlock *RawBlock `protobuf:"bytes,4,opt,name=raw_block,json=rawBlock,proto3" json:"raw_block,omitempty"` +} + +func (x *GetABCIBlockEventsAtHeightResponse) Reset() { + *x = GetABCIBlockEventsAtHeightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetABCIBlockEventsAtHeightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetABCIBlockEventsAtHeightResponse) ProtoMessage() {} + +func (x *GetABCIBlockEventsAtHeightResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_event_provider_api_proto_msgTypes[19] + 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 GetABCIBlockEventsAtHeightResponse.ProtoReflect.Descriptor instead. +func (*GetABCIBlockEventsAtHeightResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_event_provider_api_proto_rawDescGZIP(), []int{19} +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetV() string { + if x != nil { + return x.V + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetE() string { + if x != nil { + return x.E + } + return "" +} + +func (x *GetABCIBlockEventsAtHeightResponse) GetRawBlock() *RawBlock { + if x != nil { + return x.RawBlock + } + return nil +} + +var File_goadesign_goagen_event_provider_api_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, + 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x11, 0x4c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4c, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, + 0x63, 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, + 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, + 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, + 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, + 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0b, + 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, + 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf9, + 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, 0x42, + 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x37, + 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x42, + 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, + 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x32, 0xdc, 0x05, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_event_provider_api_proto_rawDescOnce sync.Once + file_goadesign_goagen_event_provider_api_proto_rawDescData = file_goadesign_goagen_event_provider_api_proto_rawDesc +) + +func file_goadesign_goagen_event_provider_api_proto_rawDescGZIP() []byte { + file_goadesign_goagen_event_provider_api_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_event_provider_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_event_provider_api_proto_rawDescData) + }) + return file_goadesign_goagen_event_provider_api_proto_rawDescData +} + +var file_goadesign_goagen_event_provider_api_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_goadesign_goagen_event_provider_api_proto_goTypes = []interface{}{ + (*GetLatestHeightRequest)(nil), // 0: event_provider_api.GetLatestHeightRequest + (*GetLatestHeightResponse)(nil), // 1: event_provider_api.GetLatestHeightResponse + (*LatestBlockHeight)(nil), // 2: event_provider_api.LatestBlockHeight + (*StreamBlockEventsRequest)(nil), // 3: event_provider_api.StreamBlockEventsRequest + (*StreamBlockEventsResponse)(nil), // 4: event_provider_api.StreamBlockEventsResponse + (*Block)(nil), // 5: event_provider_api.Block + (*BlockEvent)(nil), // 6: event_provider_api.BlockEvent + (*GetBlockEventsRPCRequest)(nil), // 7: event_provider_api.GetBlockEventsRPCRequest + (*GetBlockEventsRPCResponse)(nil), // 8: event_provider_api.GetBlockEventsRPCResponse + (*BlockEventsRPC)(nil), // 9: event_provider_api.BlockEventsRPC + (*GetCustomEventsRPCRequest)(nil), // 10: event_provider_api.GetCustomEventsRPCRequest + (*GetCustomEventsRPCResponse)(nil), // 11: event_provider_api.GetCustomEventsRPCResponse + (*GetABCIBlockEventsRequest)(nil), // 12: event_provider_api.GetABCIBlockEventsRequest + (*GetABCIBlockEventsResponse)(nil), // 13: event_provider_api.GetABCIBlockEventsResponse + (*RawBlock)(nil), // 14: event_provider_api.RawBlock + (*ABCIResponseDeliverTx)(nil), // 15: event_provider_api.ABCIResponseDeliverTx + (*ABCIEvent)(nil), // 16: event_provider_api.ABCIEvent + (*ABCIAttribute)(nil), // 17: event_provider_api.ABCIAttribute + (*GetABCIBlockEventsAtHeightRequest)(nil), // 18: event_provider_api.GetABCIBlockEventsAtHeightRequest + (*GetABCIBlockEventsAtHeightResponse)(nil), // 19: event_provider_api.GetABCIBlockEventsAtHeightResponse + nil, // 20: event_provider_api.BlockEventsRPC.TxHashesEntry +} +var file_goadesign_goagen_event_provider_api_proto_depIdxs = []int32{ + 2, // 0: event_provider_api.GetLatestHeightResponse.data:type_name -> event_provider_api.LatestBlockHeight + 5, // 1: event_provider_api.StreamBlockEventsResponse.blocks:type_name -> event_provider_api.Block + 6, // 2: event_provider_api.Block.events:type_name -> event_provider_api.BlockEvent + 9, // 3: event_provider_api.GetBlockEventsRPCResponse.data:type_name -> event_provider_api.BlockEventsRPC + 20, // 4: event_provider_api.BlockEventsRPC.tx_hashes:type_name -> event_provider_api.BlockEventsRPC.TxHashesEntry + 9, // 5: event_provider_api.GetCustomEventsRPCResponse.data:type_name -> event_provider_api.BlockEventsRPC + 14, // 6: event_provider_api.GetABCIBlockEventsResponse.raw_block:type_name -> event_provider_api.RawBlock + 15, // 7: event_provider_api.RawBlock.txs_results:type_name -> event_provider_api.ABCIResponseDeliverTx + 16, // 8: event_provider_api.RawBlock.begin_block_events:type_name -> event_provider_api.ABCIEvent + 16, // 9: event_provider_api.RawBlock.end_block_events:type_name -> event_provider_api.ABCIEvent + 16, // 10: event_provider_api.ABCIResponseDeliverTx.events:type_name -> event_provider_api.ABCIEvent + 17, // 11: event_provider_api.ABCIEvent.attributes:type_name -> event_provider_api.ABCIAttribute + 14, // 12: event_provider_api.GetABCIBlockEventsAtHeightResponse.raw_block:type_name -> event_provider_api.RawBlock + 0, // 13: event_provider_api.EventProviderAPI.GetLatestHeight:input_type -> event_provider_api.GetLatestHeightRequest + 3, // 14: event_provider_api.EventProviderAPI.StreamBlockEvents:input_type -> event_provider_api.StreamBlockEventsRequest + 7, // 15: event_provider_api.EventProviderAPI.GetBlockEventsRPC:input_type -> event_provider_api.GetBlockEventsRPCRequest + 10, // 16: event_provider_api.EventProviderAPI.GetCustomEventsRPC:input_type -> event_provider_api.GetCustomEventsRPCRequest + 12, // 17: event_provider_api.EventProviderAPI.GetABCIBlockEvents:input_type -> event_provider_api.GetABCIBlockEventsRequest + 18, // 18: event_provider_api.EventProviderAPI.GetABCIBlockEventsAtHeight:input_type -> event_provider_api.GetABCIBlockEventsAtHeightRequest + 1, // 19: event_provider_api.EventProviderAPI.GetLatestHeight:output_type -> event_provider_api.GetLatestHeightResponse + 4, // 20: event_provider_api.EventProviderAPI.StreamBlockEvents:output_type -> event_provider_api.StreamBlockEventsResponse + 8, // 21: event_provider_api.EventProviderAPI.GetBlockEventsRPC:output_type -> event_provider_api.GetBlockEventsRPCResponse + 11, // 22: event_provider_api.EventProviderAPI.GetCustomEventsRPC:output_type -> event_provider_api.GetCustomEventsRPCResponse + 13, // 23: event_provider_api.EventProviderAPI.GetABCIBlockEvents:output_type -> event_provider_api.GetABCIBlockEventsResponse + 19, // 24: event_provider_api.EventProviderAPI.GetABCIBlockEventsAtHeight:output_type -> event_provider_api.GetABCIBlockEventsAtHeightResponse + 19, // [19:25] is the sub-list for method output_type + 13, // [13:19] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_event_provider_api_proto_init() } +func file_goadesign_goagen_event_provider_api_proto_init() { + if File_goadesign_goagen_event_provider_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_event_provider_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLatestHeightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLatestHeightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatestBlockHeight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlockEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlockEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Block); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockEventsRPCRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockEventsRPCResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockEventsRPC); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCustomEventsRPCRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCustomEventsRPCResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RawBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIResponseDeliverTx); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABCIAttribute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsAtHeightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_event_provider_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetABCIBlockEventsAtHeightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_event_provider_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 21, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_event_provider_api_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_event_provider_api_proto_depIdxs, + MessageInfos: file_goadesign_goagen_event_provider_api_proto_msgTypes, + }.Build() + File_goadesign_goagen_event_provider_api_proto = out.File + file_goadesign_goagen_event_provider_api_proto_rawDesc = nil + file_goadesign_goagen_event_provider_api_proto_goTypes = nil + file_goadesign_goagen_event_provider_api_proto_depIdxs = nil +} diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go new file mode 100644 index 00000000..d83f56c5 --- /dev/null +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go @@ -0,0 +1,325 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.21.12 +// source: goadesign_goagen_event_provider_api.proto + +package event_provider_apipb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// EventProviderAPIClient is the client API for EventProviderAPI service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type EventProviderAPIClient interface { + // Get latest block from event provider + GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) + // Stream processed block events for selected backend + StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) + // Get processed block events for selected backend + GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) + // Get custom processed block events for selected backend + GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) + // Get raw block events for selected height + GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) + // Get all raw block events for selected height + GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) +} + +type eventProviderAPIClient struct { + cc grpc.ClientConnInterface +} + +func NewEventProviderAPIClient(cc grpc.ClientConnInterface) EventProviderAPIClient { + return &eventProviderAPIClient{cc} +} + +func (c *eventProviderAPIClient) GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) { + out := new(GetLatestHeightResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetLatestHeight", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &EventProviderAPI_ServiceDesc.Streams[0], "/event_provider_api.EventProviderAPI/StreamBlockEvents", opts...) + if err != nil { + return nil, err + } + x := &eventProviderAPIStreamBlockEventsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type EventProviderAPI_StreamBlockEventsClient interface { + Recv() (*StreamBlockEventsResponse, error) + grpc.ClientStream +} + +type eventProviderAPIStreamBlockEventsClient struct { + grpc.ClientStream +} + +func (x *eventProviderAPIStreamBlockEventsClient) Recv() (*StreamBlockEventsResponse, error) { + m := new(StreamBlockEventsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *eventProviderAPIClient) GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) { + out := new(GetBlockEventsRPCResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) { + out := new(GetCustomEventsRPCResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) { + out := new(GetABCIBlockEventsResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eventProviderAPIClient) GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) { + out := new(GetABCIBlockEventsAtHeightResponse) + err := c.cc.Invoke(ctx, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// EventProviderAPIServer is the server API for EventProviderAPI service. +// All implementations must embed UnimplementedEventProviderAPIServer +// for forward compatibility +type EventProviderAPIServer interface { + // Get latest block from event provider + GetLatestHeight(context.Context, *GetLatestHeightRequest) (*GetLatestHeightResponse, error) + // Stream processed block events for selected backend + StreamBlockEvents(*StreamBlockEventsRequest, EventProviderAPI_StreamBlockEventsServer) error + // Get processed block events for selected backend + GetBlockEventsRPC(context.Context, *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) + // Get custom processed block events for selected backend + GetCustomEventsRPC(context.Context, *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) + // Get raw block events for selected height + GetABCIBlockEvents(context.Context, *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) + // Get all raw block events for selected height + GetABCIBlockEventsAtHeight(context.Context, *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) + mustEmbedUnimplementedEventProviderAPIServer() +} + +// UnimplementedEventProviderAPIServer must be embedded to have forward compatible implementations. +type UnimplementedEventProviderAPIServer struct { +} + +func (UnimplementedEventProviderAPIServer) GetLatestHeight(context.Context, *GetLatestHeightRequest) (*GetLatestHeightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLatestHeight not implemented") +} +func (UnimplementedEventProviderAPIServer) StreamBlockEvents(*StreamBlockEventsRequest, EventProviderAPI_StreamBlockEventsServer) error { + return status.Errorf(codes.Unimplemented, "method StreamBlockEvents not implemented") +} +func (UnimplementedEventProviderAPIServer) GetBlockEventsRPC(context.Context, *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockEventsRPC not implemented") +} +func (UnimplementedEventProviderAPIServer) GetCustomEventsRPC(context.Context, *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCustomEventsRPC not implemented") +} +func (UnimplementedEventProviderAPIServer) GetABCIBlockEvents(context.Context, *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetABCIBlockEvents not implemented") +} +func (UnimplementedEventProviderAPIServer) GetABCIBlockEventsAtHeight(context.Context, *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetABCIBlockEventsAtHeight not implemented") +} +func (UnimplementedEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() {} + +// UnsafeEventProviderAPIServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to EventProviderAPIServer will +// result in compilation errors. +type UnsafeEventProviderAPIServer interface { + mustEmbedUnimplementedEventProviderAPIServer() +} + +func RegisterEventProviderAPIServer(s grpc.ServiceRegistrar, srv EventProviderAPIServer) { + s.RegisterService(&EventProviderAPI_ServiceDesc, srv) +} + +func _EventProviderAPI_GetLatestHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLatestHeightRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetLatestHeight(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetLatestHeight", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetLatestHeight(ctx, req.(*GetLatestHeightRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_StreamBlockEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamBlockEventsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(EventProviderAPIServer).StreamBlockEvents(m, &eventProviderAPIStreamBlockEventsServer{stream}) +} + +type EventProviderAPI_StreamBlockEventsServer interface { + Send(*StreamBlockEventsResponse) error + grpc.ServerStream +} + +type eventProviderAPIStreamBlockEventsServer struct { + grpc.ServerStream +} + +func (x *eventProviderAPIStreamBlockEventsServer) Send(m *StreamBlockEventsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _EventProviderAPI_GetBlockEventsRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockEventsRPCRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetBlockEventsRPC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetBlockEventsRPC(ctx, req.(*GetBlockEventsRPCRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetCustomEventsRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomEventsRPCRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetCustomEventsRPC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetCustomEventsRPC(ctx, req.(*GetCustomEventsRPCRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetABCIBlockEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetABCIBlockEventsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetABCIBlockEvents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetABCIBlockEvents(ctx, req.(*GetABCIBlockEventsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _EventProviderAPI_GetABCIBlockEventsAtHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetABCIBlockEventsAtHeightRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EventProviderAPIServer).GetABCIBlockEventsAtHeight(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EventProviderAPIServer).GetABCIBlockEventsAtHeight(ctx, req.(*GetABCIBlockEventsAtHeightRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// EventProviderAPI_ServiceDesc is the grpc.ServiceDesc for EventProviderAPI service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var EventProviderAPI_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "event_provider_api.EventProviderAPI", + HandlerType: (*EventProviderAPIServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetLatestHeight", + Handler: _EventProviderAPI_GetLatestHeight_Handler, + }, + { + MethodName: "GetBlockEventsRPC", + Handler: _EventProviderAPI_GetBlockEventsRPC_Handler, + }, + { + MethodName: "GetCustomEventsRPC", + Handler: _EventProviderAPI_GetCustomEventsRPC_Handler, + }, + { + MethodName: "GetABCIBlockEvents", + Handler: _EventProviderAPI_GetABCIBlockEvents_Handler, + }, + { + MethodName: "GetABCIBlockEventsAtHeight", + Handler: _EventProviderAPI_GetABCIBlockEventsAtHeight_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamBlockEvents", + Handler: _EventProviderAPI_StreamBlockEvents_Handler, + ServerStreams: true, + }, + }, + Metadata: "goadesign_goagen_event_provider_api.proto", +} diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go index 9011281f..9b02dbe9 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -206,7 +206,7 @@ type PrepareTxRequest struct { Fee *CosmosTxFee `protobuf:"bytes,6,opt,name=fee,proto3" json:"fee,omitempty"` // List of Cosmos proto3-encoded Msgs to include in a single tx Msgs [][]byte `protobuf:"bytes,7,rep,name=msgs,proto3" json:"msgs,omitempty"` - // The wrapper of the EIP712 message, V1 or V2 + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' Eip712Wrapper string `protobuf:"bytes,8,opt,name=eip712_wrapper,json=eip712Wrapper,proto3" json:"eip712_wrapper,omitempty"` } @@ -515,6 +515,174 @@ func (x *PrepareTxResponse) GetFeePayerSig() string { return "" } +type PrepareEip712Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specify chainID for the target tx + ChainId uint64 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // Specify Ethereum address of a signer + SignerAddress string `protobuf:"bytes,2,opt,name=signer_address,json=signerAddress,proto3" json:"signer_address,omitempty"` + // Sequence number of the transaction signer + Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` + // Account number of the transaction signer + AccountNumber uint64 `protobuf:"varint,4,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + // Textual memo information to attach with tx + Memo string `protobuf:"bytes,5,opt,name=memo,proto3" json:"memo,omitempty"` + // Block height until which the transaction is valid. + TimeoutHeight uint64 `protobuf:"varint,6,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + // Transaction fee details. + Fee *CosmosTxFee `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` + // List of Cosmos proto3-encoded Msgs to include in a single tx + Msgs [][]byte `protobuf:"bytes,8,rep,name=msgs,proto3" json:"msgs,omitempty"` + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' + Eip712Wrapper string `protobuf:"bytes,9,opt,name=eip712_wrapper,json=eip712Wrapper,proto3" json:"eip712_wrapper,omitempty"` +} + +func (x *PrepareEip712Request) Reset() { + *x = PrepareEip712Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrepareEip712Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrepareEip712Request) ProtoMessage() {} + +func (x *PrepareEip712Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + 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 PrepareEip712Request.ProtoReflect.Descriptor instead. +func (*PrepareEip712Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *PrepareEip712Request) GetChainId() uint64 { + if x != nil { + return x.ChainId + } + return 0 +} + +func (x *PrepareEip712Request) GetSignerAddress() string { + if x != nil { + return x.SignerAddress + } + return "" +} + +func (x *PrepareEip712Request) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + +func (x *PrepareEip712Request) GetAccountNumber() uint64 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *PrepareEip712Request) GetMemo() string { + if x != nil { + return x.Memo + } + return "" +} + +func (x *PrepareEip712Request) GetTimeoutHeight() uint64 { + if x != nil { + return x.TimeoutHeight + } + return 0 +} + +func (x *PrepareEip712Request) GetFee() *CosmosTxFee { + if x != nil { + return x.Fee + } + return nil +} + +func (x *PrepareEip712Request) GetMsgs() [][]byte { + if x != nil { + return x.Msgs + } + return nil +} + +func (x *PrepareEip712Request) GetEip712Wrapper() string { + if x != nil { + return x.Eip712Wrapper + } + return "" +} + +type PrepareEip712Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // EIP712-compatible message suitable for signing with eth_signTypedData_v4 + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PrepareEip712Response) Reset() { + *x = PrepareEip712Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrepareEip712Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrepareEip712Response) ProtoMessage() {} + +func (x *PrepareEip712Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + 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 PrepareEip712Response.ProtoReflect.Descriptor instead. +func (*PrepareEip712Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *PrepareEip712Response) GetData() string { + if x != nil { + return x.Data + } + return "" +} + type BroadcastTxRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -541,7 +709,7 @@ type BroadcastTxRequest struct { func (x *BroadcastTxRequest) Reset() { *x = BroadcastTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -554,7 +722,7 @@ func (x *BroadcastTxRequest) String() string { func (*BroadcastTxRequest) ProtoMessage() {} func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -567,7 +735,7 @@ func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} } func (x *BroadcastTxRequest) GetChainId() uint64 { @@ -640,7 +808,7 @@ type CosmosPubKey struct { func (x *CosmosPubKey) Reset() { *x = CosmosPubKey{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -653,7 +821,7 @@ func (x *CosmosPubKey) String() string { func (*CosmosPubKey) ProtoMessage() {} func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -666,7 +834,7 @@ func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosPubKey.ProtoReflect.Descriptor instead. func (*CosmosPubKey) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} } func (x *CosmosPubKey) GetType() string { @@ -710,7 +878,7 @@ type BroadcastTxResponse struct { func (x *BroadcastTxResponse) Reset() { *x = BroadcastTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -723,7 +891,7 @@ func (x *BroadcastTxResponse) String() string { func (*BroadcastTxResponse) ProtoMessage() {} func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -736,7 +904,7 @@ func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} } func (x *BroadcastTxResponse) GetTxHash() string { @@ -817,7 +985,7 @@ type PrepareCosmosTxRequest struct { func (x *PrepareCosmosTxRequest) Reset() { *x = PrepareCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -830,7 +998,7 @@ func (x *PrepareCosmosTxRequest) String() string { func (*PrepareCosmosTxRequest) ProtoMessage() {} func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -843,7 +1011,7 @@ func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxRequest.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} } func (x *PrepareCosmosTxRequest) GetChainId() uint64 { @@ -910,7 +1078,7 @@ type PrepareCosmosTxResponse struct { func (x *PrepareCosmosTxResponse) Reset() { *x = PrepareCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -923,7 +1091,7 @@ func (x *PrepareCosmosTxResponse) String() string { func (*PrepareCosmosTxResponse) ProtoMessage() {} func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -936,7 +1104,7 @@ func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxResponse.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} } func (x *PrepareCosmosTxResponse) GetTx() []byte { @@ -999,7 +1167,7 @@ type BroadcastCosmosTxRequest struct { func (x *BroadcastCosmosTxRequest) Reset() { *x = BroadcastCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1012,7 +1180,7 @@ func (x *BroadcastCosmosTxRequest) String() string { func (*BroadcastCosmosTxRequest) ProtoMessage() {} func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1025,7 +1193,7 @@ func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} } func (x *BroadcastCosmosTxRequest) GetTx() []byte { @@ -1083,7 +1251,7 @@ type BroadcastCosmosTxResponse struct { func (x *BroadcastCosmosTxResponse) Reset() { *x = BroadcastCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1096,7 +1264,7 @@ func (x *BroadcastCosmosTxResponse) String() string { func (*BroadcastCosmosTxResponse) ProtoMessage() {} func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1109,7 +1277,7 @@ func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} } func (x *BroadcastCosmosTxResponse) GetTxHash() string { @@ -1177,7 +1345,7 @@ type GetFeePayerRequest struct { func (x *GetFeePayerRequest) Reset() { *x = GetFeePayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1190,7 +1358,7 @@ func (x *GetFeePayerRequest) String() string { func (*GetFeePayerRequest) ProtoMessage() {} func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1203,7 +1371,7 @@ func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerRequest.ProtoReflect.Descriptor instead. func (*GetFeePayerRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{15} } type GetFeePayerResponse struct { @@ -1220,7 +1388,7 @@ type GetFeePayerResponse struct { func (x *GetFeePayerResponse) Reset() { *x = GetFeePayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1233,7 +1401,7 @@ func (x *GetFeePayerResponse) String() string { func (*GetFeePayerResponse) ProtoMessage() {} func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1246,7 +1414,7 @@ func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerResponse.ProtoReflect.Descriptor instead. func (*GetFeePayerResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{16} } func (x *GetFeePayerResponse) GetFeePayer() string { @@ -1328,148 +1496,179 @@ var file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x67, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, - 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, - 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, - 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x67, 0x22, 0xc8, 0x02, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, + 0x37, 0x31, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, + 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x65, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x69, 0x70, 0x37, 0x31, 0x32, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, + 0x69, 0x70, 0x37, 0x31, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x15, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, + 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, + 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, - 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, - 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, - 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, - 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, - 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, - 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, - 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, - 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x32, 0x8c, 0x05, 0x0a, 0x14, 0x49, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, + 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, + 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, + 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, + 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, + 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, + 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, + 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, - 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, - 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x32, 0xfa, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, + 0x70, 0x37, 0x31, 0x32, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, + 0x61, 0x72, 0x65, 0x45, 0x69, 0x70, 0x37, 0x31, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, + 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, + 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1484,7 +1683,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = []interface{}{ (*GetTxRequest)(nil), // 0: injective_exchange_rpc.GetTxRequest (*GetTxResponse)(nil), // 1: injective_exchange_rpc.GetTxResponse @@ -1492,41 +1691,46 @@ var file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = []interface{}{ (*CosmosTxFee)(nil), // 3: injective_exchange_rpc.CosmosTxFee (*CosmosCoin)(nil), // 4: injective_exchange_rpc.CosmosCoin (*PrepareTxResponse)(nil), // 5: injective_exchange_rpc.PrepareTxResponse - (*BroadcastTxRequest)(nil), // 6: injective_exchange_rpc.BroadcastTxRequest - (*CosmosPubKey)(nil), // 7: injective_exchange_rpc.CosmosPubKey - (*BroadcastTxResponse)(nil), // 8: injective_exchange_rpc.BroadcastTxResponse - (*PrepareCosmosTxRequest)(nil), // 9: injective_exchange_rpc.PrepareCosmosTxRequest - (*PrepareCosmosTxResponse)(nil), // 10: injective_exchange_rpc.PrepareCosmosTxResponse - (*BroadcastCosmosTxRequest)(nil), // 11: injective_exchange_rpc.BroadcastCosmosTxRequest - (*BroadcastCosmosTxResponse)(nil), // 12: injective_exchange_rpc.BroadcastCosmosTxResponse - (*GetFeePayerRequest)(nil), // 13: injective_exchange_rpc.GetFeePayerRequest - (*GetFeePayerResponse)(nil), // 14: injective_exchange_rpc.GetFeePayerResponse + (*PrepareEip712Request)(nil), // 6: injective_exchange_rpc.PrepareEip712Request + (*PrepareEip712Response)(nil), // 7: injective_exchange_rpc.PrepareEip712Response + (*BroadcastTxRequest)(nil), // 8: injective_exchange_rpc.BroadcastTxRequest + (*CosmosPubKey)(nil), // 9: injective_exchange_rpc.CosmosPubKey + (*BroadcastTxResponse)(nil), // 10: injective_exchange_rpc.BroadcastTxResponse + (*PrepareCosmosTxRequest)(nil), // 11: injective_exchange_rpc.PrepareCosmosTxRequest + (*PrepareCosmosTxResponse)(nil), // 12: injective_exchange_rpc.PrepareCosmosTxResponse + (*BroadcastCosmosTxRequest)(nil), // 13: injective_exchange_rpc.BroadcastCosmosTxRequest + (*BroadcastCosmosTxResponse)(nil), // 14: injective_exchange_rpc.BroadcastCosmosTxResponse + (*GetFeePayerRequest)(nil), // 15: injective_exchange_rpc.GetFeePayerRequest + (*GetFeePayerResponse)(nil), // 16: injective_exchange_rpc.GetFeePayerResponse } var file_goadesign_goagen_injective_exchange_rpc_proto_depIdxs = []int32{ 3, // 0: injective_exchange_rpc.PrepareTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee 4, // 1: injective_exchange_rpc.CosmosTxFee.price:type_name -> injective_exchange_rpc.CosmosCoin - 7, // 2: injective_exchange_rpc.BroadcastTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 3, // 3: injective_exchange_rpc.PrepareCosmosTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee - 7, // 4: injective_exchange_rpc.PrepareCosmosTxResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 7, // 5: injective_exchange_rpc.BroadcastCosmosTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 7, // 6: injective_exchange_rpc.GetFeePayerResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey - 0, // 7: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:input_type -> injective_exchange_rpc.GetTxRequest - 2, // 8: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:input_type -> injective_exchange_rpc.PrepareTxRequest - 6, // 9: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:input_type -> injective_exchange_rpc.BroadcastTxRequest - 9, // 10: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:input_type -> injective_exchange_rpc.PrepareCosmosTxRequest - 11, // 11: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:input_type -> injective_exchange_rpc.BroadcastCosmosTxRequest - 13, // 12: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:input_type -> injective_exchange_rpc.GetFeePayerRequest - 1, // 13: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:output_type -> injective_exchange_rpc.GetTxResponse - 5, // 14: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:output_type -> injective_exchange_rpc.PrepareTxResponse - 8, // 15: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:output_type -> injective_exchange_rpc.BroadcastTxResponse - 10, // 16: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:output_type -> injective_exchange_rpc.PrepareCosmosTxResponse - 12, // 17: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:output_type -> injective_exchange_rpc.BroadcastCosmosTxResponse - 14, // 18: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:output_type -> injective_exchange_rpc.GetFeePayerResponse - 13, // [13:19] is the sub-list for method output_type - 7, // [7:13] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 3, // 2: injective_exchange_rpc.PrepareEip712Request.fee:type_name -> injective_exchange_rpc.CosmosTxFee + 9, // 3: injective_exchange_rpc.BroadcastTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 3, // 4: injective_exchange_rpc.PrepareCosmosTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee + 9, // 5: injective_exchange_rpc.PrepareCosmosTxResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 9, // 6: injective_exchange_rpc.BroadcastCosmosTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 9, // 7: injective_exchange_rpc.GetFeePayerResponse.fee_payer_pub_key:type_name -> injective_exchange_rpc.CosmosPubKey + 0, // 8: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:input_type -> injective_exchange_rpc.GetTxRequest + 2, // 9: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:input_type -> injective_exchange_rpc.PrepareTxRequest + 6, // 10: injective_exchange_rpc.InjectiveExchangeRPC.PrepareEip712:input_type -> injective_exchange_rpc.PrepareEip712Request + 8, // 11: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:input_type -> injective_exchange_rpc.BroadcastTxRequest + 11, // 12: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:input_type -> injective_exchange_rpc.PrepareCosmosTxRequest + 13, // 13: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:input_type -> injective_exchange_rpc.BroadcastCosmosTxRequest + 15, // 14: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:input_type -> injective_exchange_rpc.GetFeePayerRequest + 1, // 15: injective_exchange_rpc.InjectiveExchangeRPC.GetTx:output_type -> injective_exchange_rpc.GetTxResponse + 5, // 16: injective_exchange_rpc.InjectiveExchangeRPC.PrepareTx:output_type -> injective_exchange_rpc.PrepareTxResponse + 7, // 17: injective_exchange_rpc.InjectiveExchangeRPC.PrepareEip712:output_type -> injective_exchange_rpc.PrepareEip712Response + 10, // 18: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastTx:output_type -> injective_exchange_rpc.BroadcastTxResponse + 12, // 19: injective_exchange_rpc.InjectiveExchangeRPC.PrepareCosmosTx:output_type -> injective_exchange_rpc.PrepareCosmosTxResponse + 14, // 20: injective_exchange_rpc.InjectiveExchangeRPC.BroadcastCosmosTx:output_type -> injective_exchange_rpc.BroadcastCosmosTxResponse + 16, // 21: injective_exchange_rpc.InjectiveExchangeRPC.GetFeePayer:output_type -> injective_exchange_rpc.GetFeePayerResponse + 15, // [15:22] is the sub-list for method output_type + 8, // [8:15] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_exchange_rpc_proto_init() } @@ -1608,7 +1812,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastTxRequest); i { + switch v := v.(*PrepareEip712Request); i { case 0: return &v.state case 1: @@ -1620,7 +1824,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CosmosPubKey); i { + switch v := v.(*PrepareEip712Response); i { case 0: return &v.state case 1: @@ -1632,7 +1836,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastTxResponse); i { + switch v := v.(*BroadcastTxRequest); i { case 0: return &v.state case 1: @@ -1644,7 +1848,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareCosmosTxRequest); i { + switch v := v.(*CosmosPubKey); i { case 0: return &v.state case 1: @@ -1656,7 +1860,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareCosmosTxResponse); i { + switch v := v.(*BroadcastTxResponse); i { case 0: return &v.state case 1: @@ -1668,7 +1872,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastCosmosTxRequest); i { + switch v := v.(*PrepareCosmosTxRequest); i { case 0: return &v.state case 1: @@ -1680,7 +1884,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BroadcastCosmosTxResponse); i { + switch v := v.(*PrepareCosmosTxResponse); i { case 0: return &v.state case 1: @@ -1692,7 +1896,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFeePayerRequest); i { + switch v := v.(*BroadcastCosmosTxRequest); i { case 0: return &v.state case 1: @@ -1704,6 +1908,30 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BroadcastCosmosTxResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeePayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFeePayerResponse); i { case 0: return &v.state @@ -1722,7 +1950,7 @@ func file_goadesign_goagen_injective_exchange_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go index c7e2827d..721f4ef7 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -26,6 +26,8 @@ type InjectiveExchangeRPCClient interface { GetTx(ctx context.Context, in *GetTxRequest, opts ...grpc.CallOption) (*GetTxResponse, error) // PrepareTx generates a Web3-signable body for a Cosmos transaction PrepareTx(ctx context.Context, in *PrepareTxRequest, opts ...grpc.CallOption) (*PrepareTxResponse, error) + // prepareEip712 generates EIP712 for an Injective Message + PrepareEip712(ctx context.Context, in *PrepareEip712Request, opts ...grpc.CallOption) (*PrepareEip712Response, error) // BroadcastTx broadcasts a signed Web3 transaction BroadcastTx(ctx context.Context, in *BroadcastTxRequest, opts ...grpc.CallOption) (*BroadcastTxResponse, error) // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -62,6 +64,15 @@ func (c *injectiveExchangeRPCClient) PrepareTx(ctx context.Context, in *PrepareT return out, nil } +func (c *injectiveExchangeRPCClient) PrepareEip712(ctx context.Context, in *PrepareEip712Request, opts ...grpc.CallOption) (*PrepareEip712Response, error) { + out := new(PrepareEip712Response) + err := c.cc.Invoke(ctx, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveExchangeRPCClient) BroadcastTx(ctx context.Context, in *BroadcastTxRequest, opts ...grpc.CallOption) (*BroadcastTxResponse, error) { out := new(BroadcastTxResponse) err := c.cc.Invoke(ctx, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", in, out, opts...) @@ -106,6 +117,8 @@ type InjectiveExchangeRPCServer interface { GetTx(context.Context, *GetTxRequest) (*GetTxResponse, error) // PrepareTx generates a Web3-signable body for a Cosmos transaction PrepareTx(context.Context, *PrepareTxRequest) (*PrepareTxResponse, error) + // prepareEip712 generates EIP712 for an Injective Message + PrepareEip712(context.Context, *PrepareEip712Request) (*PrepareEip712Response, error) // BroadcastTx broadcasts a signed Web3 transaction BroadcastTx(context.Context, *BroadcastTxRequest) (*BroadcastTxResponse, error) // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -127,6 +140,9 @@ func (UnimplementedInjectiveExchangeRPCServer) GetTx(context.Context, *GetTxRequ func (UnimplementedInjectiveExchangeRPCServer) PrepareTx(context.Context, *PrepareTxRequest) (*PrepareTxResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PrepareTx not implemented") } +func (UnimplementedInjectiveExchangeRPCServer) PrepareEip712(context.Context, *PrepareEip712Request) (*PrepareEip712Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method PrepareEip712 not implemented") +} func (UnimplementedInjectiveExchangeRPCServer) BroadcastTx(context.Context, *BroadcastTxRequest) (*BroadcastTxResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BroadcastTx not implemented") } @@ -188,6 +204,24 @@ func _InjectiveExchangeRPC_PrepareTx_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _InjectiveExchangeRPC_PrepareEip712_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PrepareEip712Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExchangeRPCServer).PrepareEip712(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExchangeRPCServer).PrepareEip712(ctx, req.(*PrepareEip712Request)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveExchangeRPC_BroadcastTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BroadcastTxRequest) if err := dec(in); err != nil { @@ -275,6 +309,10 @@ var InjectiveExchangeRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "PrepareTx", Handler: _InjectiveExchangeRPC_PrepareTx_Handler, }, + { + MethodName: "PrepareEip712", + Handler: _InjectiveExchangeRPC_PrepareEip712_Handler, + }, { MethodName: "BroadcastTx", Handler: _InjectiveExchangeRPC_BroadcastTx_Handler, diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go index d5d28a2a..11748a98 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go @@ -99,6 +99,40 @@ func local_request_InjectiveExchangeRPC_PrepareTx_0(ctx context.Context, marshal } +func request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PrepareEip712Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PrepareEip712(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PrepareEip712Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PrepareEip712(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectiveExchangeRPC_BroadcastTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq BroadcastTxRequest var metadata runtime.ServerMetadata @@ -291,6 +325,31 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -476,6 +535,28 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -572,6 +653,8 @@ var ( pattern_InjectiveExchangeRPC_PrepareTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareTx"}, "")) + pattern_InjectiveExchangeRPC_PrepareEip712_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareEip712"}, "")) + pattern_InjectiveExchangeRPC_BroadcastTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "BroadcastTx"}, "")) pattern_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareCosmosTx"}, "")) @@ -586,6 +669,8 @@ var ( forward_InjectiveExchangeRPC_PrepareTx_0 = runtime.ForwardResponseMessage + forward_InjectiveExchangeRPC_PrepareEip712_0 = runtime.ForwardResponseMessage + forward_InjectiveExchangeRPC_BroadcastTx_0 = runtime.ForwardResponseMessage forward_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.ForwardResponseMessage diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto index 54536b59..5c6a877d 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto @@ -17,6 +17,8 @@ service InjectiveExchangeRPC { rpc GetTx (GetTxRequest) returns (GetTxResponse); // PrepareTx generates a Web3-signable body for a Cosmos transaction rpc PrepareTx (PrepareTxRequest) returns (PrepareTxResponse); + // prepareEip712 generates EIP712 for an Injective Message + rpc PrepareEip712 (PrepareEip712Request) returns (PrepareEip712Response); // BroadcastTx broadcasts a signed Web3 transaction rpc BroadcastTx (BroadcastTxRequest) returns (BroadcastTxResponse); // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction @@ -67,7 +69,7 @@ message PrepareTxRequest { CosmosTxFee fee = 6; // List of Cosmos proto3-encoded Msgs to include in a single tx repeated bytes msgs = 7; - // The wrapper of the EIP712 message, V1 or V2 + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' string eip712_wrapper = 8; } @@ -103,6 +105,32 @@ message PrepareTxResponse { string fee_payer_sig = 6; } +message PrepareEip712Request { + // Specify chainID for the target tx + uint64 chain_id = 1; + // Specify Ethereum address of a signer + string signer_address = 2; + // Sequence number of the transaction signer + uint64 sequence = 3; + // Account number of the transaction signer + uint64 account_number = 4; + // Textual memo information to attach with tx + string memo = 5; + // Block height until which the transaction is valid. + uint64 timeout_height = 6; + // Transaction fee details. + CosmosTxFee fee = 7; + // List of Cosmos proto3-encoded Msgs to include in a single tx + repeated bytes msgs = 8; + // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' + string eip712_wrapper = 9; +} + +message PrepareEip712Response { + // EIP712-compatible message suitable for signing with eth_signTypedData_v4 + string data = 1; +} + message BroadcastTxRequest { // Specify Web3 chainID (from prepateTx) for the target Tx uint64 chain_id = 1; diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index d59b7740..c63dc9a5 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -1679,7 +1679,8 @@ type TxData struct { // transaction event logs Logs []byte `protobuf:"bytes,11,opt,name=logs,proto3" json:"logs,omitempty"` // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - ClaimIds []int64 `protobuf:"zigzag64,12,rep,packed,name=claim_ids,json=claimIds,proto3" json:"claim_ids,omitempty"` + ClaimIds []int64 `protobuf:"zigzag64,12,rep,packed,name=claim_ids,json=claimIds,proto3" json:"claim_ids,omitempty"` + Signatures []*Signature `protobuf:"bytes,13,rep,name=signatures,proto3" json:"signatures,omitempty"` } func (x *TxData) Reset() { @@ -1798,6 +1799,13 @@ func (x *TxData) GetClaimIds() []int64 { return nil } +func (x *TxData) GetSignatures() []*Signature { + if x != nil { + return x.Signatures + } + return nil +} + type GetValidatorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6253,6 +6261,164 @@ func (x *StreamBlocksResponse) GetTimestamp() string { return "" } +type GetStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetStatsRequest) Reset() { + *x = GetStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsRequest) ProtoMessage() {} + +func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + 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 GetStatsRequest.ProtoReflect.Descriptor instead. +func (*GetStatsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} +} + +type GetStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total of unique addresses + Addresses uint64 `protobuf:"varint,1,opt,name=addresses,proto3" json:"addresses,omitempty"` + // Total number of assets + Assets uint64 `protobuf:"varint,2,opt,name=assets,proto3" json:"assets,omitempty"` + // Total circulating supply of INJ + InjSupply uint64 `protobuf:"varint,3,opt,name=inj_supply,json=injSupply,proto3" json:"inj_supply,omitempty"` + // Avg of TX per second in the past 24hs + TxsPs24H uint64 `protobuf:"varint,4,opt,name=txs_ps24_h,json=txsPs24H,proto3" json:"txs_ps24_h,omitempty"` + // Avg of TX per second in the 100 blocks + TxsPs100B uint64 `protobuf:"varint,5,opt,name=txs_ps100_b,json=txsPs100B,proto3" json:"txs_ps100_b,omitempty"` + // Total number of TXs + TxsTotal uint64 `protobuf:"varint,6,opt,name=txs_total,json=txsTotal,proto3" json:"txs_total,omitempty"` + // Total number of TXs in the past 24hs + Txs24H uint64 `protobuf:"varint,7,opt,name=txs24_h,json=txs24H,proto3" json:"txs24_h,omitempty"` + // Total number of TXs in the past 30 days + Txs30D uint64 `protobuf:"varint,8,opt,name=txs30_d,json=txs30D,proto3" json:"txs30_d,omitempty"` + // Number of blocks produced in the past 24hs + BlockCount24H uint64 `protobuf:"varint,9,opt,name=block_count24_h,json=blockCount24H,proto3" json:"block_count24_h,omitempty"` +} + +func (x *GetStatsResponse) Reset() { + *x = GetStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsResponse) ProtoMessage() {} + +func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + 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 GetStatsResponse.ProtoReflect.Descriptor instead. +func (*GetStatsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} +} + +func (x *GetStatsResponse) GetAddresses() uint64 { + if x != nil { + return x.Addresses + } + return 0 +} + +func (x *GetStatsResponse) GetAssets() uint64 { + if x != nil { + return x.Assets + } + return 0 +} + +func (x *GetStatsResponse) GetInjSupply() uint64 { + if x != nil { + return x.InjSupply + } + return 0 +} + +func (x *GetStatsResponse) GetTxsPs24H() uint64 { + if x != nil { + return x.TxsPs24H + } + return 0 +} + +func (x *GetStatsResponse) GetTxsPs100B() uint64 { + if x != nil { + return x.TxsPs100B + } + return 0 +} + +func (x *GetStatsResponse) GetTxsTotal() uint64 { + if x != nil { + return x.TxsTotal + } + return 0 +} + +func (x *GetStatsResponse) GetTxs24H() uint64 { + if x != nil { + return x.Txs24H + } + return 0 +} + +func (x *GetStatsResponse) GetTxs30D() uint64 { + if x != nil { + return x.Txs30D + } + return 0 +} + +func (x *GetStatsResponse) GetBlockCount24H() uint64 { + if x != nil { + return x.BlockCount24H + } + return 0 +} + var File_goadesign_goagen_injective_explorer_rpc_proto protoreflect.FileDescriptor var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ @@ -6491,7 +6657,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd3, 0x02, 0x0a, 0x06, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x96, 0x03, 0x0a, 0x06, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, @@ -6512,817 +6678,846 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x74, 0x78, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, 0x09, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, - 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, - 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, 0x61, 0x73, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, - 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, - 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, - 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x4c, 0x0a, 0x0f, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x16, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, + 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, + 0x69, 0x6b, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, + 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, + 0x65, 0x52, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x55, 0x72, 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, + 0x4c, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, + 0x0a, 0x0d, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, - 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x73, - 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x2f, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 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, 0x22, 0x73, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 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, 0x22, 0x7f, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x3b, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, + 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x22, 0x2f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 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, 0x22, 0x73, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, + 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 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, 0x22, 0x7f, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, + 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x02, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, - 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 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, 0x77, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 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, 0x77, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, + 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, + 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, + 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, - 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, - 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, - 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, - 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, - 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, - 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, - 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, - 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, - 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, - 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, - 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, + 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, + 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, - 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, - 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, - 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, - 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, + 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, + 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, + 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, + 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, + 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, - 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, - 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, - 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, - 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, + 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, + 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, + 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, - 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, + 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, + 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, + 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, + 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, - 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, - 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, - 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, - 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, - 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x75, 0x6d, - 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, - 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x6e, 0x75, 0x6d, - 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc6, 0x13, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, - 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, - 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, - 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, - 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, + 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, + 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, + 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, + 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, + 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, + 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, + 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, + 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, + 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x6a, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x6a, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, + 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x50, + 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, 0x31, 0x30, + 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x78, 0x73, 0x50, 0x73, + 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, + 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, 0x32, 0xa5, 0x14, 0x0a, 0x14, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, - 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, - 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, + 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, + 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, + 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, + 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, + 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, + 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x34, 0x2e, 0x69, 0x6e, 0x6a, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, - 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x42, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x12, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, - 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, - 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x77, - 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, - 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, - 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, + 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, + 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7337,7 +7532,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 75) +var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 77) var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetAccountTxsRequest)(nil), // 0: injective_explorer_rpc.GetAccountTxsRequest (*GetAccountTxsResponse)(nil), // 1: injective_explorer_rpc.GetAccountTxsResponse @@ -7413,7 +7608,9 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*StreamTxsResponse)(nil), // 71: injective_explorer_rpc.StreamTxsResponse (*StreamBlocksRequest)(nil), // 72: injective_explorer_rpc.StreamBlocksRequest (*StreamBlocksResponse)(nil), // 73: injective_explorer_rpc.StreamBlocksResponse - nil, // 74: injective_explorer_rpc.Event.AttributesEntry + (*GetStatsRequest)(nil), // 74: injective_explorer_rpc.GetStatsRequest + (*GetStatsResponse)(nil), // 75: injective_explorer_rpc.GetStatsResponse + nil, // 76: injective_explorer_rpc.Event.AttributesEntry } var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 2, // 0: injective_explorer_rpc.GetAccountTxsResponse.paging:type_name -> injective_explorer_rpc.Paging @@ -7422,7 +7619,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 6, // 3: injective_explorer_rpc.TxDetailData.events:type_name -> injective_explorer_rpc.Event 7, // 4: injective_explorer_rpc.TxDetailData.signatures:type_name -> injective_explorer_rpc.Signature 5, // 5: injective_explorer_rpc.GasFee.amount:type_name -> injective_explorer_rpc.CosmosCoin - 74, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry + 76, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry 2, // 7: injective_explorer_rpc.GetContractTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 8: injective_explorer_rpc.GetContractTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData 3, // 9: injective_explorer_rpc.GetContractTxsV2Response.data:type_name -> injective_explorer_rpc.TxDetailData @@ -7431,89 +7628,92 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 15, // 12: injective_explorer_rpc.BlockInfo.txs:type_name -> injective_explorer_rpc.TxDataRPC 18, // 13: injective_explorer_rpc.GetBlockResponse.data:type_name -> injective_explorer_rpc.BlockDetailInfo 19, // 14: injective_explorer_rpc.BlockDetailInfo.txs:type_name -> injective_explorer_rpc.TxData - 22, // 15: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator - 23, // 16: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription - 24, // 17: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime - 25, // 18: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent - 22, // 19: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator - 24, // 20: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime - 2, // 21: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging - 19, // 22: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData - 3, // 23: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 36, // 24: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx - 39, // 25: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx - 42, // 26: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx - 2, // 27: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging - 45, // 28: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode - 46, // 29: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 30: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission - 46, // 31: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission - 2, // 33: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging - 52, // 34: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract - 53, // 35: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 36: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 55, // 37: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo - 56, // 38: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo - 53, // 39: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 61, // 41: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance - 54, // 42: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 64, // 43: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets - 65, // 44: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer - 2, // 45: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging - 68, // 46: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer - 69, // 47: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin - 15, // 48: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC - 0, // 49: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest - 8, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest - 10, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request - 12, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest - 16, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest - 20, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest - 26, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest - 28, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest - 30, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest - 32, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest - 34, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest - 37, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - 40, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest - 43, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest - 48, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest - 50, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest - 57, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest - 59, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest - 62, // 67: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest - 66, // 68: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest - 70, // 69: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest - 72, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest - 1, // 71: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse - 9, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse - 11, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response - 13, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse - 17, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse - 21, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse - 27, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse - 29, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse - 31, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse - 33, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse - 35, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse - 38, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - 41, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse - 44, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse - 49, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse - 51, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse - 58, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse - 60, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse - 63, // 89: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse - 67, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse - 71, // 91: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse - 73, // 92: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse - 71, // [71:93] is the sub-list for method output_type - 49, // [49:71] is the sub-list for method input_type - 49, // [49:49] is the sub-list for extension type_name - 49, // [49:49] is the sub-list for extension extendee - 0, // [0:49] is the sub-list for field type_name + 7, // 15: injective_explorer_rpc.TxData.signatures:type_name -> injective_explorer_rpc.Signature + 22, // 16: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator + 23, // 17: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription + 24, // 18: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime + 25, // 19: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent + 22, // 20: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator + 24, // 21: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime + 2, // 22: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging + 19, // 23: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData + 3, // 24: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData + 36, // 25: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx + 39, // 26: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx + 42, // 27: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx + 2, // 28: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging + 45, // 29: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode + 46, // 30: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 31: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission + 46, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 33: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission + 2, // 34: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging + 52, // 35: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract + 53, // 36: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 37: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 55, // 38: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo + 56, // 39: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo + 53, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 41: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 61, // 42: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance + 54, // 43: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 64, // 44: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets + 65, // 45: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer + 2, // 46: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging + 68, // 47: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer + 69, // 48: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin + 15, // 49: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC + 0, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest + 8, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest + 10, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request + 12, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest + 16, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest + 20, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest + 26, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest + 28, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest + 30, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest + 32, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest + 34, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest + 37, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + 40, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest + 43, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest + 48, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest + 50, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest + 57, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest + 59, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest + 62, // 68: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest + 66, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest + 70, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest + 72, // 71: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest + 74, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest + 1, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse + 9, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse + 11, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response + 13, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse + 17, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse + 21, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse + 27, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse + 29, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse + 31, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse + 33, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse + 35, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse + 38, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + 41, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse + 44, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse + 49, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse + 51, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse + 58, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse + 60, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse + 63, // 91: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse + 67, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse + 71, // 93: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse + 73, // 94: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse + 75, // 95: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse + 73, // [73:96] is the sub-list for method output_type + 50, // [50:73] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_explorer_rpc_proto_init() } @@ -8410,6 +8610,30 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -8417,7 +8641,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 75, + NumMessages: 77, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go index bbcb920f..933865b7 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -70,6 +70,8 @@ type InjectiveExplorerRPCClient interface { StreamTxs(ctx context.Context, in *StreamTxsRequest, opts ...grpc.CallOption) (InjectiveExplorerRPC_StreamTxsClient, error) // StreamBlocks returns the latest blocks StreamBlocks(ctx context.Context, in *StreamBlocksRequest, opts ...grpc.CallOption) (InjectiveExplorerRPC_StreamBlocksClient, error) + // GetStats returns global exchange statistics in the last 24hs + GetStats(ctx context.Context, in *GetStatsRequest, opts ...grpc.CallOption) (*GetStatsResponse, error) } type injectiveExplorerRPCClient struct { @@ -324,6 +326,15 @@ func (x *injectiveExplorerRPCStreamBlocksClient) Recv() (*StreamBlocksResponse, return m, nil } +func (c *injectiveExplorerRPCClient) GetStats(ctx context.Context, in *GetStatsRequest, opts ...grpc.CallOption) (*GetStatsResponse, error) { + out := new(GetStatsResponse) + err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // InjectiveExplorerRPCServer is the server API for InjectiveExplorerRPC service. // All implementations must embed UnimplementedInjectiveExplorerRPCServer // for forward compatibility @@ -376,6 +387,8 @@ type InjectiveExplorerRPCServer interface { StreamTxs(*StreamTxsRequest, InjectiveExplorerRPC_StreamTxsServer) error // StreamBlocks returns the latest blocks StreamBlocks(*StreamBlocksRequest, InjectiveExplorerRPC_StreamBlocksServer) error + // GetStats returns global exchange statistics in the last 24hs + GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) mustEmbedUnimplementedInjectiveExplorerRPCServer() } @@ -449,6 +462,9 @@ func (UnimplementedInjectiveExplorerRPCServer) StreamTxs(*StreamTxsRequest, Inje func (UnimplementedInjectiveExplorerRPCServer) StreamBlocks(*StreamBlocksRequest, InjectiveExplorerRPC_StreamBlocksServer) error { return status.Errorf(codes.Unimplemented, "method StreamBlocks not implemented") } +func (UnimplementedInjectiveExplorerRPCServer) GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStats not implemented") +} func (UnimplementedInjectiveExplorerRPCServer) mustEmbedUnimplementedInjectiveExplorerRPCServer() {} // UnsafeInjectiveExplorerRPCServer may be embedded to opt out of forward compatibility for this service. @@ -864,6 +880,24 @@ func (x *injectiveExplorerRPCStreamBlocksServer) Send(m *StreamBlocksResponse) e return x.ServerStream.SendMsg(m) } +func _InjectiveExplorerRPC_GetStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExplorerRPCServer).GetStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExplorerRPCServer).GetStats(ctx, req.(*GetStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // InjectiveExplorerRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveExplorerRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -951,6 +985,10 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetBankTransfers", Handler: _InjectiveExplorerRPC_GetBankTransfers_Handler, }, + { + MethodName: "GetStats", + Handler: _InjectiveExplorerRPC_GetStats_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go index 06257030..86e23918 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go @@ -761,6 +761,40 @@ func request_InjectiveExplorerRPC_StreamBlocks_0(ctx context.Context, marshaler } +func request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetStats(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterInjectiveExplorerRPCHandlerServer registers the http handlers for service InjectiveExplorerRPC to "mux". // UnaryRPC :call InjectiveExplorerRPCServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1281,6 +1315,31 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime return }) + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1806,6 +1865,28 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime }) + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1853,6 +1934,8 @@ var ( pattern_InjectiveExplorerRPC_StreamTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamTxs"}, "")) pattern_InjectiveExplorerRPC_StreamBlocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamBlocks"}, "")) + + pattern_InjectiveExplorerRPC_GetStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetStats"}, "")) ) var ( @@ -1899,4 +1982,6 @@ var ( forward_InjectiveExplorerRPC_StreamTxs_0 = runtime.ForwardResponseStream forward_InjectiveExplorerRPC_StreamBlocks_0 = runtime.ForwardResponseStream + + forward_InjectiveExplorerRPC_GetStats_0 = runtime.ForwardResponseMessage ) diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto index 077fc0bc..72446b66 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto @@ -61,6 +61,8 @@ service InjectiveExplorerRPC { rpc StreamTxs (StreamTxsRequest) returns (stream StreamTxsResponse); // StreamBlocks returns the latest blocks rpc StreamBlocks (StreamBlocksRequest) returns (stream StreamBlocksResponse); + // GetStats returns global exchange statistics in the last 24hs + rpc GetStats (GetStatsRequest) returns (GetStatsResponse); } message GetAccountTxsRequest { @@ -274,6 +276,7 @@ message TxData { bytes logs = 11; // peggy bridge claim id, non-zero if tx contains MsgDepositClaim repeated sint64 claim_ids = 12; + repeated Signature signatures = 13; } message GetValidatorsRequest { @@ -868,3 +871,27 @@ message StreamBlocksResponse { repeated TxDataRPC txs = 8; string timestamp = 9; } + +message GetStatsRequest { +} + +message GetStatsResponse { + // Total of unique addresses + uint64 addresses = 1; + // Total number of assets + uint64 assets = 2; + // Total circulating supply of INJ + uint64 inj_supply = 3; + // Avg of TX per second in the past 24hs + uint64 txs_ps24_h = 4; + // Avg of TX per second in the 100 blocks + uint64 txs_ps100_b = 5; + // Total number of TXs + uint64 txs_total = 6; + // Total number of TXs in the past 24hs + uint64 txs24_h = 7; + // Total number of TXs in the past 30 days + uint64 txs30_d = 8; + // Number of blocks produced in the past 24hs + uint64 block_count24_h = 9; +} diff --git a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go index 1a3968ae..9b896f97 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_health.proto package api_v1pb @@ -152,6 +152,8 @@ type HealthStatus struct { HoracleHeight int32 `protobuf:"zigzag32,3,opt,name=horacle_height,json=horacleHeight,proto3" json:"horacle_height,omitempty"` // block timestamp from Horacle service. HoracleTimestamp int32 `protobuf:"zigzag32,4,opt,name=horacle_timestamp,json=horacleTimestamp,proto3" json:"horacle_timestamp,omitempty"` + // Migration version of the database. + MigrationLastVersion int32 `protobuf:"zigzag32,5,opt,name=migration_last_version,json=migrationLastVersion,proto3" json:"migration_last_version,omitempty"` } func (x *HealthStatus) Reset() { @@ -214,6 +216,13 @@ func (x *HealthStatus) GetHoracleTimestamp() int32 { return 0 } +func (x *HealthStatus) GetMigrationLastVersion() int32 { + if x != nil { + return x.MigrationLastVersion + } + return 0 +} + var File_goadesign_goagen_health_proto protoreflect.FileDescriptor var file_goadesign_goagen_health_proto_rawDesc = []byte{ @@ -228,7 +237,7 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0f, @@ -239,13 +248,16 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x14, 0x6d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, + 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2f, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go index 193c66cf..aaf42a53 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_health.proto package api_v1pb diff --git a/exchange/health_rpc/pb/health.proto b/exchange/health_rpc/pb/health.proto index 0d503603..cc5a190d 100644 --- a/exchange/health_rpc/pb/health.proto +++ b/exchange/health_rpc/pb/health.proto @@ -38,4 +38,6 @@ message HealthStatus { sint32 horacle_height = 3; // block timestamp from Horacle service. sint32 horacle_timestamp = 4; + // Migration version of the database. + sint32 migration_last_version = 5; } diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go index 400542ac..99aa0d6a 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb @@ -137,7 +137,7 @@ type InsuranceFund struct { OracleType string `protobuf:"bytes,10,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` // Defines the expiry, if any Expiry int64 `protobuf:"zigzag64,11,opt,name=expiry,proto3" json:"expiry,omitempty"` - // Token metadata for the deposit asset, only for Ethereum-based assets + // Token metadata for the deposit asset DepositTokenMeta *TokenMeta `protobuf:"bytes,12,opt,name=deposit_token_meta,json=depositTokenMeta,proto3" json:"deposit_token_meta,omitempty"` } @@ -264,7 +264,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go index 5a87cd1a..ba318673 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto index b670ddea..29726fb6 100644 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto +++ b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto @@ -49,14 +49,14 @@ message InsuranceFund { string oracle_type = 10; // Defines the expiry, if any sint64 expiry = 11; - // Token metadata for the deposit asset, only for Ethereum-based assets + // Token metadata for the deposit asset TokenMeta deposit_token_meta = 12; } message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go index e6f93ea1..3ddf3838 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go index 3266ca1a..53281e05 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go index 3308dfee..23d0f553 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go index 4c24eee8..e3b84c89 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go index 4a6d0331..12ee3ba2 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go index 86b88e4d..f109be41 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go index e42a27b8..34363beb 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.19.4 +// protoc v3.21.12 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb @@ -163,11 +163,11 @@ type SpotMarketInfo struct { Ticker string `protobuf:"bytes,3,opt,name=ticker,proto3" json:"ticker,omitempty"` // Coin denom used for the base asset. BaseDenom string `protobuf:"bytes,4,opt,name=base_denom,json=baseDenom,proto3" json:"base_denom,omitempty"` - // Token metadata for base asset, only for Ethereum-based assets + // Token metadata for base asset BaseTokenMeta *TokenMeta `protobuf:"bytes,5,opt,name=base_token_meta,json=baseTokenMeta,proto3" json:"base_token_meta,omitempty"` // Coin denom used for the quote asset. QuoteDenom string `protobuf:"bytes,6,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset QuoteTokenMeta *TokenMeta `protobuf:"bytes,7,opt,name=quote_token_meta,json=quoteTokenMeta,proto3" json:"quote_token_meta,omitempty"` // Defines the fee percentage makers pay when trading (in quote asset) MakerFeeRate string `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3" json:"maker_fee_rate,omitempty"` @@ -313,7 +313,7 @@ type TokenMeta struct { // Token full name Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address + // Token contract address (native or not) Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Token symbol short name Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -2107,6 +2107,8 @@ type TradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesRequest) Reset() { @@ -2239,6 +2241,13 @@ func (x *TradesRequest) GetCid() string { return "" } +func (x *TradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2477,6 +2486,8 @@ type StreamTradesRequest struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesRequest) Reset() { @@ -2609,6 +2620,13 @@ func (x *StreamTradesRequest) GetCid() string { return "" } +func (x *StreamTradesRequest) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2709,6 +2727,8 @@ type TradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *TradesV2Request) Reset() { @@ -2841,6 +2861,13 @@ func (x *TradesV2Request) GetCid() string { return "" } +func (x *TradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type TradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2932,6 +2959,8 @@ type StreamTradesV2Request struct { AccountAddress string `protobuf:"bytes,13,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // Client order ID Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,15,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` } func (x *StreamTradesV2Request) Reset() { @@ -3064,6 +3093,13 @@ func (x *StreamTradesV2Request) GetCid() string { return "" } +func (x *StreamTradesV2Request) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + type StreamTradesV2Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4611,7 +4647,7 @@ var file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xbf, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, @@ -4639,485 +4675,494 @@ var file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x22, 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xc5, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc1, 0x03, 0x0a, - 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x22, 0xc7, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xea, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, + 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, + 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, - 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, + 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5e, + 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, + 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, + 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x45, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xf3, 0x03, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, + 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, + 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, + 0x01, 0x0a, 0x19, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5e, 0x0a, 0x1c, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, + 0x63, 0x53, 0x77, 0x61, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, + 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, 0x03, 0x0a, 0x14, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x63, 0x69, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x22, 0xf3, 0x03, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, + 0x65, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x41, - 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, - 0x42, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, + 0x75, 0x6e, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x32, + 0x9e, 0x11, 0x0a, 0x18, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, + 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x70, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x73, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, + 0x32, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, - 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, - 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x9e, 0x11, 0x0a, 0x18, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, - 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, + 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x61, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, - 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, - 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x30, 0x2e, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, + 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x15, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, - 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, + 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x67, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x2c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x0e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, + 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, + 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, + 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x11, + 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, + 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x20, 0x5a, 0x1e, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x6f, 0x6d, - 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, - 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, 0x1e, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go index e276906a..12b1c14e 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc v3.21.12 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto index aa7b07f4..feba38c6 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto +++ b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto @@ -76,11 +76,11 @@ message SpotMarketInfo { string ticker = 3; // Coin denom used for the base asset. string base_denom = 4; - // Token metadata for base asset, only for Ethereum-based assets + // Token metadata for base asset TokenMeta base_token_meta = 5; // Coin denom used for the quote asset. string quote_denom = 6; - // Token metadata for quote asset, only for Ethereum-based assets + // Token metadata for quote asset TokenMeta quote_token_meta = 7; // Defines the fee percentage makers pay when trading (in quote asset) string maker_fee_rate = 8; @@ -99,7 +99,7 @@ message SpotMarketInfo { message TokenMeta { // Token full name string name = 1; - // Token Ethereum contract address + // Token contract address (native or not) string address = 2; // Token symbol short name string symbol = 3; @@ -384,6 +384,8 @@ message TradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message TradesResponse { @@ -450,6 +452,8 @@ message StreamTradesRequest { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message StreamTradesResponse { @@ -491,6 +495,8 @@ message TradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message TradesV2Response { @@ -530,6 +536,8 @@ message StreamTradesV2Request { string account_address = 13; // Client order ID string cid = 14; + // Fee recipient address + string fee_recipient = 15; } message StreamTradesV2Response { diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go index fa06c65a..1c19aa31 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v4.25.3 +// protoc v3.21.12 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -53,6 +53,16 @@ type ListTradingStrategiesRequest struct { StrategyType []string `protobuf:"bytes,10,rep,name=strategy_type,json=strategyType,proto3" json:"strategy_type,omitempty"` // Filter by market type MarketType string `protobuf:"bytes,11,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` + // The last executed timestamp in UNIX milliseconds for the last executed time + // of the trading strategy + LastExecutedTime int64 `protobuf:"zigzag64,12,opt,name=last_executed_time,json=lastExecutedTime,proto3" json:"last_executed_time,omitempty"` + // Include TVL in the response + WithTvl bool `protobuf:"varint,13,opt,name=with_tvl,json=withTvl,proto3" json:"with_tvl,omitempty"` + // Indicates whether the trading strategy is a trailing strategy + IsTrailingStrategy bool `protobuf:"varint,14,opt,name=is_trailing_strategy,json=isTrailingStrategy,proto3" json:"is_trailing_strategy,omitempty"` + // Indicates whether the trading strategy performance should be included in the + // response + WithPerformance bool `protobuf:"varint,15,opt,name=with_performance,json=withPerformance,proto3" json:"with_performance,omitempty"` } func (x *ListTradingStrategiesRequest) Reset() { @@ -164,6 +174,34 @@ func (x *ListTradingStrategiesRequest) GetMarketType() string { return "" } +func (x *ListTradingStrategiesRequest) GetLastExecutedTime() int64 { + if x != nil { + return x.LastExecutedTime + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetWithTvl() bool { + if x != nil { + return x.WithTvl + } + return false +} + +func (x *ListTradingStrategiesRequest) GetIsTrailingStrategy() bool { + if x != nil { + return x.IsTrailingStrategy + } + return false +} + +func (x *ListTradingStrategiesRequest) GetWithPerformance() bool { + if x != nil { + return x.WithPerformance + } + return false +} + type ListTradingStrategiesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -291,6 +329,28 @@ type TradingStrategy struct { ContractName string `protobuf:"bytes,32,opt,name=contract_name,json=contractName,proto3" json:"contract_name,omitempty"` // Type of the market MarketType string `protobuf:"bytes,33,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` + // lastExecutedAt timestamp in UNIX millis. + LastExecutedAt int64 `protobuf:"zigzag64,34,opt,name=last_executed_at,json=lastExecutedAt,proto3" json:"last_executed_at,omitempty"` + // trailing up price + TrailUpPrice string `protobuf:"bytes,35,opt,name=trail_up_price,json=trailUpPrice,proto3" json:"trail_up_price,omitempty"` + // trailing down price + TrailDownPrice string `protobuf:"bytes,36,opt,name=trail_down_price,json=trailDownPrice,proto3" json:"trail_down_price,omitempty"` + // trailing up counter + TrailUpCounter int64 `protobuf:"zigzag64,37,opt,name=trail_up_counter,json=trailUpCounter,proto3" json:"trail_up_counter,omitempty"` + // trailing down counter + TrailDownCounter int64 `protobuf:"zigzag64,38,opt,name=trail_down_counter,json=trailDownCounter,proto3" json:"trail_down_counter,omitempty"` + // TVL of the trading strategy + Tvl string `protobuf:"bytes,39,opt,name=tvl,proto3" json:"tvl,omitempty"` + // PnL of the trading strategy + Pnl string `protobuf:"bytes,40,opt,name=pnl,proto3" json:"pnl,omitempty"` + // PnL percentage of the trading strategy + PnlPerc string `protobuf:"bytes,41,opt,name=pnl_perc,json=pnlPerc,proto3" json:"pnl_perc,omitempty"` + // pnlUpdatedAt timestamp in UNIX millis. + PnlUpdatedAt int64 `protobuf:"zigzag64,42,opt,name=pnl_updated_at,json=pnlUpdatedAt,proto3" json:"pnl_updated_at,omitempty"` + // Indicates the performance of the trading strategy + Performance string `protobuf:"bytes,43,opt,name=performance,proto3" json:"performance,omitempty"` + // Return on investment of the trading strategy + Roi string `protobuf:"bytes,44,opt,name=roi,proto3" json:"roi,omitempty"` } func (x *TradingStrategy) Reset() { @@ -556,6 +616,83 @@ func (x *TradingStrategy) GetMarketType() string { return "" } +func (x *TradingStrategy) GetLastExecutedAt() int64 { + if x != nil { + return x.LastExecutedAt + } + return 0 +} + +func (x *TradingStrategy) GetTrailUpPrice() string { + if x != nil { + return x.TrailUpPrice + } + return "" +} + +func (x *TradingStrategy) GetTrailDownPrice() string { + if x != nil { + return x.TrailDownPrice + } + return "" +} + +func (x *TradingStrategy) GetTrailUpCounter() int64 { + if x != nil { + return x.TrailUpCounter + } + return 0 +} + +func (x *TradingStrategy) GetTrailDownCounter() int64 { + if x != nil { + return x.TrailDownCounter + } + return 0 +} + +func (x *TradingStrategy) GetTvl() string { + if x != nil { + return x.Tvl + } + return "" +} + +func (x *TradingStrategy) GetPnl() string { + if x != nil { + return x.Pnl + } + return "" +} + +func (x *TradingStrategy) GetPnlPerc() string { + if x != nil { + return x.PnlPerc + } + return "" +} + +func (x *TradingStrategy) GetPnlUpdatedAt() int64 { + if x != nil { + return x.PnlUpdatedAt + } + return 0 +} + +func (x *TradingStrategy) GetPerformance() string { + if x != nil { + return x.Performance + } + return "" +} + +func (x *TradingStrategy) GetRoi() string { + if x != nil { + return x.Roi + } + return "" +} + type ExitConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -698,6 +835,176 @@ func (x *Paging) GetNext() []string { return nil } +type GetTradingStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetTradingStatsRequest) Reset() { + *x = GetTradingStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTradingStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTradingStatsRequest) ProtoMessage() {} + +func (x *GetTradingStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5] + 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 GetTradingStatsRequest.ProtoReflect.Descriptor instead. +func (*GetTradingStatsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{5} +} + +type GetTradingStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total of unique active trading strategies + ActiveTradingStrategies uint64 `protobuf:"varint,1,opt,name=active_trading_strategies,json=activeTradingStrategies,proto3" json:"active_trading_strategies,omitempty"` + // Total number of created trading strategies + TotalTradingStrategiesCreated uint64 `protobuf:"varint,2,opt,name=total_trading_strategies_created,json=totalTradingStrategiesCreated,proto3" json:"total_trading_strategies_created,omitempty"` + // Total TVL of all active trading strategies + TotalTvl string `protobuf:"bytes,3,opt,name=total_tvl,json=totalTvl,proto3" json:"total_tvl,omitempty"` + // Market stats + Markets []*Market `protobuf:"bytes,4,rep,name=markets,proto3" json:"markets,omitempty"` +} + +func (x *GetTradingStatsResponse) Reset() { + *x = GetTradingStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTradingStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTradingStatsResponse) ProtoMessage() {} + +func (x *GetTradingStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6] + 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 GetTradingStatsResponse.ProtoReflect.Descriptor instead. +func (*GetTradingStatsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *GetTradingStatsResponse) GetActiveTradingStrategies() uint64 { + if x != nil { + return x.ActiveTradingStrategies + } + return 0 +} + +func (x *GetTradingStatsResponse) GetTotalTradingStrategiesCreated() uint64 { + if x != nil { + return x.TotalTradingStrategiesCreated + } + return 0 +} + +func (x *GetTradingStatsResponse) GetTotalTvl() string { + if x != nil { + return x.TotalTvl + } + return "" +} + +func (x *GetTradingStatsResponse) GetMarkets() []*Market { + if x != nil { + return x.Markets + } + return nil +} + +type Market struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MarketId of the trading strategy + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Total of unique active trading strategies + ActiveTradingStrategies uint64 `protobuf:"varint,2,opt,name=active_trading_strategies,json=activeTradingStrategies,proto3" json:"active_trading_strategies,omitempty"` +} + +func (x *Market) Reset() { + *x = Market{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Market) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Market) ProtoMessage() {} + +func (x *Market) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7] + 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 Market.ProtoReflect.Descriptor instead. +func (*Market) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *Market) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *Market) GetActiveTradingStrategies() uint64 { + if x != nil { + return x.ActiveTradingStrategies + } + return 0 +} + var File_goadesign_goagen_injective_trading_rpc_proto protoreflect.FileDescriptor var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ @@ -705,7 +1012,7 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xf6, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x67, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x9c, 0x04, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, @@ -728,128 +1035,192 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, - 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, - 0xd9, 0x0a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, - 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, - 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, - 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, - 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, - 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, - 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x47, 0x72, 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, - 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, - 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, - 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x45, - 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, - 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, 0x74, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, - 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x32, 0x9a, - 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, - 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x77, 0x69, 0x74, 0x68, 0x54, 0x76, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x74, 0x72, + 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x35, + 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xc4, 0x0d, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, + 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x6b, + 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x77, + 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, + 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x73, + 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, + 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x47, 0x72, + 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x68, 0x6f, 0x75, + 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, + 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, + 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, + 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, + 0x4c, 0x6f, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x61, + 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6c, 0x61, 0x73, + 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x55, 0x70, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, + 0x69, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x55, 0x70, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x76, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x74, 0x76, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6e, 0x6c, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x70, 0x6e, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6e, 0x6c, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6e, 0x6c, 0x50, 0x65, + 0x72, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x6e, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x70, 0x6e, 0x6c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, + 0x69, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x6f, 0x69, 0x22, 0x48, 0x0a, 0x0a, + 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, + 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, + 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, + 0x73, 0x12, 0x47, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x69, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, + 0x22, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x69, 0x65, 0x73, 0x32, 0x8c, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x70, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -864,26 +1235,32 @@ func file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_trading_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_goadesign_goagen_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_goadesign_goagen_injective_trading_rpc_proto_goTypes = []interface{}{ (*ListTradingStrategiesRequest)(nil), // 0: injective_trading_rpc.ListTradingStrategiesRequest (*ListTradingStrategiesResponse)(nil), // 1: injective_trading_rpc.ListTradingStrategiesResponse (*TradingStrategy)(nil), // 2: injective_trading_rpc.TradingStrategy (*ExitConfig)(nil), // 3: injective_trading_rpc.ExitConfig (*Paging)(nil), // 4: injective_trading_rpc.Paging + (*GetTradingStatsRequest)(nil), // 5: injective_trading_rpc.GetTradingStatsRequest + (*GetTradingStatsResponse)(nil), // 6: injective_trading_rpc.GetTradingStatsResponse + (*Market)(nil), // 7: injective_trading_rpc.Market } var file_goadesign_goagen_injective_trading_rpc_proto_depIdxs = []int32{ 2, // 0: injective_trading_rpc.ListTradingStrategiesResponse.strategies:type_name -> injective_trading_rpc.TradingStrategy 4, // 1: injective_trading_rpc.ListTradingStrategiesResponse.paging:type_name -> injective_trading_rpc.Paging 3, // 2: injective_trading_rpc.TradingStrategy.stop_loss_config:type_name -> injective_trading_rpc.ExitConfig 3, // 3: injective_trading_rpc.TradingStrategy.take_profit_config:type_name -> injective_trading_rpc.ExitConfig - 0, // 4: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest - 1, // 5: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse - 5, // [5:6] is the sub-list for method output_type - 4, // [4:5] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 4: injective_trading_rpc.GetTradingStatsResponse.markets:type_name -> injective_trading_rpc.Market + 0, // 5: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest + 5, // 6: injective_trading_rpc.InjectiveTradingRPC.GetTradingStats:input_type -> injective_trading_rpc.GetTradingStatsRequest + 1, // 7: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse + 6, // 8: injective_trading_rpc.InjectiveTradingRPC.GetTradingStats:output_type -> injective_trading_rpc.GetTradingStatsResponse + 7, // [7:9] is the sub-list for method output_type + 5, // [5:7] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_trading_rpc_proto_init() } @@ -952,6 +1329,42 @@ func file_goadesign_goagen_injective_trading_rpc_proto_init() { return nil } } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTradingStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTradingStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Market); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -959,7 +1372,7 @@ func file_goadesign_goagen_injective_trading_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_trading_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go index ec918fd5..db5c53ae 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v4.25.3 +// - protoc v3.21.12 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -24,6 +24,8 @@ const _ = grpc.SupportPackageIsVersion7 type InjectiveTradingRPCClient interface { // Lists all trading strategies ListTradingStrategies(ctx context.Context, in *ListTradingStrategiesRequest, opts ...grpc.CallOption) (*ListTradingStrategiesResponse, error) + // GetStats returns global statistics in the last 24hs + GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) } type injectiveTradingRPCClient struct { @@ -43,12 +45,23 @@ func (c *injectiveTradingRPCClient) ListTradingStrategies(ctx context.Context, i return out, nil } +func (c *injectiveTradingRPCClient) GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) { + out := new(GetTradingStatsResponse) + err := c.cc.Invoke(ctx, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // InjectiveTradingRPCServer is the server API for InjectiveTradingRPC service. // All implementations must embed UnimplementedInjectiveTradingRPCServer // for forward compatibility type InjectiveTradingRPCServer interface { // Lists all trading strategies ListTradingStrategies(context.Context, *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) + // GetStats returns global statistics in the last 24hs + GetTradingStats(context.Context, *GetTradingStatsRequest) (*GetTradingStatsResponse, error) mustEmbedUnimplementedInjectiveTradingRPCServer() } @@ -59,6 +72,9 @@ type UnimplementedInjectiveTradingRPCServer struct { func (UnimplementedInjectiveTradingRPCServer) ListTradingStrategies(context.Context, *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListTradingStrategies not implemented") } +func (UnimplementedInjectiveTradingRPCServer) GetTradingStats(context.Context, *GetTradingStatsRequest) (*GetTradingStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTradingStats not implemented") +} func (UnimplementedInjectiveTradingRPCServer) mustEmbedUnimplementedInjectiveTradingRPCServer() {} // UnsafeInjectiveTradingRPCServer may be embedded to opt out of forward compatibility for this service. @@ -90,6 +106,24 @@ func _InjectiveTradingRPC_ListTradingStrategies_Handler(srv interface{}, ctx con return interceptor(ctx, in, info, handler) } +func _InjectiveTradingRPC_GetTradingStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTradingStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveTradingRPCServer).GetTradingStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveTradingRPCServer).GetTradingStats(ctx, req.(*GetTradingStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // InjectiveTradingRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveTradingRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -101,6 +135,10 @@ var InjectiveTradingRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListTradingStrategies", Handler: _InjectiveTradingRPC_ListTradingStrategies_Handler, }, + { + MethodName: "GetTradingStats", + Handler: _InjectiveTradingRPC_GetTradingStats_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "goadesign_goagen_injective_trading_rpc.proto", diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go index 6e6cf424..cbd4dcd2 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go @@ -65,6 +65,40 @@ func local_request_InjectiveTradingRPC_ListTradingStrategies_0(ctx context.Conte } +func request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveTradingRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTradingStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetTradingStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveTradingRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTradingStatsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetTradingStats(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterInjectiveTradingRPCHandlerServer registers the http handlers for service InjectiveTradingRPC to "mux". // UnaryRPC :call InjectiveTradingRPCServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -96,6 +130,31 @@ func RegisterInjectiveTradingRPCHandlerServer(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -159,13 +218,39 @@ func RegisterInjectiveTradingRPCHandlerClient(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "ListTradingStrategies"}, "")) + + pattern_InjectiveTradingRPC_GetTradingStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "GetTradingStats"}, "")) ) var ( forward_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.ForwardResponseMessage + + forward_InjectiveTradingRPC_GetTradingStats_0 = runtime.ForwardResponseMessage ) diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.proto b/exchange/trading_rpc/pb/injective_trading_rpc.proto index 18b00922..681ff769 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.proto +++ b/exchange/trading_rpc/pb/injective_trading_rpc.proto @@ -16,6 +16,8 @@ option go_package = "/injective_trading_rpcpb"; service InjectiveTradingRPC { // Lists all trading strategies rpc ListTradingStrategies (ListTradingStrategiesRequest) returns (ListTradingStrategiesResponse); + // GetStats returns global statistics in the last 24hs + rpc GetTradingStats (GetTradingStatsRequest) returns (GetTradingStatsResponse); } message ListTradingStrategiesRequest { @@ -40,6 +42,16 @@ message ListTradingStrategiesRequest { repeated string strategy_type = 10; // Filter by market type string market_type = 11; + // The last executed timestamp in UNIX milliseconds for the last executed time +// of the trading strategy + sint64 last_executed_time = 12; + // Include TVL in the response + bool with_tvl = 13; + // Indicates whether the trading strategy is a trailing strategy + bool is_trailing_strategy = 14; + // Indicates whether the trading strategy performance should be included in the +// response + bool with_performance = 15; } message ListTradingStrategiesResponse { @@ -115,6 +127,28 @@ message TradingStrategy { string contract_name = 32; // Type of the market string market_type = 33; + // lastExecutedAt timestamp in UNIX millis. + sint64 last_executed_at = 34; + // trailing up price + string trail_up_price = 35; + // trailing down price + string trail_down_price = 36; + // trailing up counter + sint64 trail_up_counter = 37; + // trailing down counter + sint64 trail_down_counter = 38; + // TVL of the trading strategy + string tvl = 39; + // PnL of the trading strategy + string pnl = 40; + // PnL percentage of the trading strategy + string pnl_perc = 41; + // pnlUpdatedAt timestamp in UNIX millis. + sint64 pnl_updated_at = 42; + // Indicates the performance of the trading strategy + string performance = 43; + // Return on investment of the trading strategy + string roi = 44; } message ExitConfig { @@ -136,3 +170,24 @@ message Paging { // array of tokens to navigate to the next pages repeated string next = 5; } + +message GetTradingStatsRequest { +} + +message GetTradingStatsResponse { + // Total of unique active trading strategies + uint64 active_trading_strategies = 1; + // Total number of created trading strategies + uint64 total_trading_strategies_created = 2; + // Total TVL of all active trading strategies + string total_tvl = 3; + // Market stats + repeated Market markets = 4; +} + +message Market { + // MarketId of the trading strategy + string market_id = 1; + // Total of unique active trading strategies + uint64 active_trading_strategies = 2; +} diff --git a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go index 17ef5dbc..1a3cc73b 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go @@ -1,5 +1,10 @@ // Code generated by MockGen. DO NOT EDIT. // Source: api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go +// +// Generated by this command: +// +// mockgen -source=api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go -destination=api/gen/grpc/injective_trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go -package=injective_trading_rpcpb +// // Package injective_trading_rpcpb is a generated GoMock package. package injective_trading_rpcpb @@ -8,7 +13,7 @@ import ( context "context" reflect "reflect" - gomock "github.com/golang/mock/gomock" + gomock "go.uber.org/mock/gomock" grpc "google.golang.org/grpc" ) @@ -35,10 +40,30 @@ func (m *MockInjectiveTradingRPCClient) EXPECT() *MockInjectiveTradingRPCClientM return m.recorder } +// GetTradingStats mocks base method. +func (m *MockInjectiveTradingRPCClient) GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetTradingStats", varargs...) + ret0, _ := ret[0].(*GetTradingStatsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTradingStats indicates an expected call of GetTradingStats. +func (mr *MockInjectiveTradingRPCClientMockRecorder) GetTradingStats(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).GetTradingStats), varargs...) +} + // ListTradingStrategies mocks base method. func (m *MockInjectiveTradingRPCClient) ListTradingStrategies(ctx context.Context, in *ListTradingStrategiesRequest, opts ...grpc.CallOption) (*ListTradingStrategiesResponse, error) { m.ctrl.T.Helper() - varargs := []interface{}{ctx, in} + varargs := []any{ctx, in} for _, a := range opts { varargs = append(varargs, a) } @@ -49,9 +74,9 @@ func (m *MockInjectiveTradingRPCClient) ListTradingStrategies(ctx context.Contex } // ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCClientMockRecorder) ListTradingStrategies(ctx, in interface{}, opts ...interface{}) *gomock.Call { +func (mr *MockInjectiveTradingRPCClientMockRecorder) ListTradingStrategies(ctx, in any, opts ...any) *gomock.Call { mr.mock.ctrl.T.Helper() - varargs := append([]interface{}{ctx, in}, opts...) + varargs := append([]any{ctx, in}, opts...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).ListTradingStrategies), varargs...) } @@ -78,6 +103,21 @@ func (m *MockInjectiveTradingRPCServer) EXPECT() *MockInjectiveTradingRPCServerM return m.recorder } +// GetTradingStats mocks base method. +func (m *MockInjectiveTradingRPCServer) GetTradingStats(arg0 context.Context, arg1 *GetTradingStatsRequest) (*GetTradingStatsResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetTradingStats", arg0, arg1) + ret0, _ := ret[0].(*GetTradingStatsResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetTradingStats indicates an expected call of GetTradingStats. +func (mr *MockInjectiveTradingRPCServerMockRecorder) GetTradingStats(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).GetTradingStats), arg0, arg1) +} + // ListTradingStrategies mocks base method. func (m *MockInjectiveTradingRPCServer) ListTradingStrategies(arg0 context.Context, arg1 *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) { m.ctrl.T.Helper() @@ -88,7 +128,7 @@ func (m *MockInjectiveTradingRPCServer) ListTradingStrategies(arg0 context.Conte } // ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCServerMockRecorder) ListTradingStrategies(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockInjectiveTradingRPCServerMockRecorder) ListTradingStrategies(arg0, arg1 any) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).ListTradingStrategies), arg0, arg1) } diff --git a/go.mod b/go.mod index 411a8b43..fdab5254 100644 --- a/go.mod +++ b/go.mod @@ -1,29 +1,28 @@ module github.com/InjectiveLabs/sdk-go -go 1.22 +go 1.22.2 + +toolchain go1.22.5 require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 - cosmossdk.io/store v1.1.0 - cosmossdk.io/x/evidence v0.1.0 - cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.3 - cosmossdk.io/x/upgrade v0.1.1 + cosmossdk.io/x/evidence v0.1.1 + cosmossdk.io/x/feegrant v0.1.1 + cosmossdk.io/x/tx v0.13.4 + cosmossdk.io/x/upgrade v0.1.3 github.com/CosmWasm/wasmd v0.40.2 github.com/InjectiveLabs/suplog v1.3.3 - github.com/bandprotocol/bandchain-packet v0.0.4 + github.com/bandprotocol/bandchain-packet v0.0.0-00010101000000-000000000000 github.com/btcsuite/btcd v0.23.4 github.com/btcsuite/btcd/btcutil v1.1.3 - github.com/cometbft/cometbft v0.38.9 + github.com/cometbft/cometbft v0.38.10 github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/cosmos-sdk v0.50.7 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.5.0 - github.com/cosmos/ibc-go/modules/capability v1.0.0 - github.com/cosmos/ibc-go/v8 v8.2.0 + github.com/cosmos/ibc-go/v8 v8.3.2 github.com/ethereum/go-ethereum v1.11.5 - github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 @@ -33,25 +32,25 @@ require ( github.com/shopspring/decimal v1.2.0 github.com/stretchr/testify v1.9.0 github.com/tyler-smith/go-bip39 v1.1.0 - golang.org/x/crypto v0.24.0 - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de - google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.33.0 - gopkg.in/ini.v1 v1.67.0 - gopkg.in/yaml.v2 v2.4.0 + go.uber.org/mock v0.5.0 + golang.org/x/crypto v0.25.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 + google.golang.org/grpc v1.64.1 + google.golang.org/protobuf v1.34.2 gotest.tools/v3 v3.5.1 ) require ( cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/core v0.11.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/core v0.11.1 // indirect + cosmossdk.io/depinject v1.0.0 // indirect cosmossdk.io/log v1.3.1 // indirect + cosmossdk.io/store v1.1.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/CosmWasm/wasmvm/v2 v2.0.0 // indirect + github.com/CosmWasm/wasmvm/v2 v2.1.2 // indirect github.com/DataDog/appsec-internal-go v1.5.0 // indirect github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 // indirect github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 // indirect @@ -87,7 +86,8 @@ require ( github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-db v1.0.2 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.1.2 // indirect + github.com/cosmos/iavl v1.2.0 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.0 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -164,11 +164,11 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.52.2 // indirect github.com/prometheus/procfs v0.13.0 // indirect @@ -176,11 +176,12 @@ require ( github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.32.0 // indirect + github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect + github.com/shamaton/msgpack/v2 v2.2.0 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -188,7 +189,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.18.2 // indirect + github.com/spf13/viper v1.19.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect @@ -198,7 +199,7 @@ require ( github.com/tklauser/numcpus v0.4.0 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.3.8 // indirect + go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect @@ -206,18 +207,20 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 // indirect gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v1.1.0 // indirect @@ -230,11 +233,11 @@ replace ( cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.6-inj-0 cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.6-inj-0 - github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.51.0-inj-0 + github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.52.0-inj-0 github.com/bandprotocol/bandchain-packet => github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 - github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.38.10-inj-1 + github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.38.11-inj-0 - github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 + github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2 github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj-0 github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.3.2-inj-0 github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2 diff --git a/go.sum b/go.sum index a9b25d4b..fd1aaba9 100644 --- a/go.sum +++ b/go.sum @@ -1,35 +1,35 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= -cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go/compute v1.25.1 h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= -cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= -cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= -cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= -cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= +cosmossdk.io/depinject v1.0.0 h1:dQaTu6+O6askNXO06+jyeUAnF2/ssKwrrszP9t5q050= +cosmossdk.io/depinject v1.0.0/go.mod h1:zxK/h3HgHoA/eJVtiSsoaRaRA2D5U4cJ5thIG4ssbB8= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= -cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= -cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= -cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= +cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= +cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= +cosmossdk.io/x/tx v0.13.4 h1:Eg0PbJgeO0gM8p5wx6xa0fKR7hIV6+8lC56UrsvSo0Y= +cosmossdk.io/x/tx v0.13.4/go.mod h1:BkFqrnGGgW50Y6cwTy+JvgAhiffbGEKW6KF9ufcDpvk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -39,8 +39,8 @@ github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XB github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/CosmWasm/wasmvm/v2 v2.0.0 h1:IqNCI2G0mvs7K6ej17/I28805rVqnu+Y1cWDqIdwb08= -github.com/CosmWasm/wasmvm/v2 v2.0.0/go.mod h1:su9lg5qLr7adV95eOfzjZWkGiky8WNaNIHDr7Fpu7Ck= +github.com/CosmWasm/wasmvm/v2 v2.1.2 h1:GkJ5bAsRlLHfIQVg/FY1VHwLyBwlCjAhDea0B8L+e20= +github.com/CosmWasm/wasmvm/v2 v2.1.2/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= github.com/DataDog/appsec-internal-go v1.5.0 h1:8kS5zSx5T49uZ8dZTdT19QVAvC/B8ByyZdhQKYQWHno= github.com/DataDog/appsec-internal-go v1.5.0/go.mod h1:pEp8gjfNLtEOmz+iZqC8bXhu0h4k7NUsW/qiQb34k1U= github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 h1:bUMSNsw1iofWiju9yc1f+kBd33E3hMJtq9GuU602Iy8= @@ -63,10 +63,10 @@ github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 h1:ZnvCV/lzjWmBwuGbkAz+okucfJEyEzkU9GYK3tKU9cU= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1/go.mod h1:QELTDYiwnbAqIgTF9zeKr+hVlK6eVyt6Nxmh6/1mmzQ= -github.com/InjectiveLabs/cometbft v0.38.10-inj-1 h1:k4I22d5KcXEluYFSVfuSepkibyUesMD+UGOpBwqjXbo= -github.com/InjectiveLabs/cometbft v0.38.10-inj-1/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= -github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 h1:Jf+0AEdUUNG1mNARompZWTFI/UltAUGX66owYks7TAs= -github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0/go.mod h1:igpF5mgbiTmaS3hO/yoIIv7+ICbzMBIowFWSw5aOrKA= +github.com/InjectiveLabs/cometbft v0.38.11-inj-0 h1:yf+qvOtlvmLZCBkQCInApRy9icp8+TuSWFwZwWPA5NU= +github.com/InjectiveLabs/cometbft v0.38.11-inj-0/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= +github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2 h1:E5YT12BFhar95RanHLyI3zw12yQTGGPbktGQlN1UYsk= +github.com/InjectiveLabs/cosmos-sdk v0.50.9-inj-2/go.mod h1:f7gwrwkQ0cXiqvdAvifcNACCota5CVBLA5Hwyti9V6Q= github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0 h1:75YtRrju3R21u/VXttzuBoh49o28xABR2OUqioT9hMQ= github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0/go.mod h1:ZW4eIE98wivInyQyhxU2nHqEielc/iZAcr41qNyWSrw= github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.6-inj-0 h1:rb73cHJPCTwnBq96WC9L1ymqnHe5i4of1wjpXFAOUe4= @@ -81,8 +81,8 @@ github.com/InjectiveLabs/metrics v0.0.10 h1:BoOwXnCtRRIPmq06jcI20pXZYE758eusaCI5 github.com/InjectiveLabs/metrics v0.0.10/go.mod h1:eYu++0DVUjk/jjV9WgvCo8gQU+16Yoyhp1iu+ghKNME= github.com/InjectiveLabs/suplog v1.3.3 h1:ARIR3lWD9BxcrmqTwgcGBt8t7e10gwOqllUAXa/MfxI= github.com/InjectiveLabs/suplog v1.3.3/go.mod h1:+I9WRgUhzmo1V/n7IkW24kFBFB9ZTPAiXXXCogWxmTM= -github.com/InjectiveLabs/wasmd v0.51.0-inj-0 h1:5YvS+OWjein0p3APDqLok/DjLmxJ4XAi8FXrmzhjjXo= -github.com/InjectiveLabs/wasmd v0.51.0-inj-0/go.mod h1:CGIOxbGca/pOiZ+Q7e6aMoNnnSPXrV5/hV1dK3H8FUo= +github.com/InjectiveLabs/wasmd v0.52.0-inj-0 h1:2sJftrI2+kc27wfBP9TZuoqszZx7YU8WNkFO/vMeZqQ= +github.com/InjectiveLabs/wasmd v0.52.0-inj-0/go.mod h1:kWL0LDT6QPnxQin9T2OBoDgqZidtbC+mRm0kL3pO65k= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -243,8 +243,8 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52o= github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= -github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= -github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= +github.com/cosmos/iavl v1.2.0 h1:kVxTmjTh4k0Dh1VNL046v6BXqKziqMDzxo93oh3kOfM= +github.com/cosmos/iavl v1.2.0/go.mod h1:HidWWLVAtODJqFD6Hbne2Y0q3SdxByJepHUOeoH4LiI= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= @@ -472,8 +472,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= +github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= @@ -509,8 +509,8 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= -github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= +github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -746,8 +746,8 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= @@ -774,8 +774,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -818,8 +818,8 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= -github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -836,6 +836,8 @@ github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZj github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= +github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= +github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= @@ -873,8 +875,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= -github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -945,18 +947,18 @@ github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWp github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= -go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 h1:qxen9oVGzDdIRP6ejyAJc760RwW4SnVDiTYTzwnXuxo= +go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5/go.mod h1:eW0HG9/oHQhvRCvb1/pIXW4cOvtDqeQK+XSi3TnwaXY= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= @@ -974,6 +976,8 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0 go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= +go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -996,8 +1000,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= @@ -1053,8 +1057,8 @@ golang.org/x/net v0.0.0-20220517181318-183a9ca12b87/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1134,14 +1138,14 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -1184,11 +1188,11 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= -google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/api v0.171.0 h1:w174hnBPqut76FzW5Qaupt7zY8Kql6fiVjgys4f58sU= +google.golang.org/api v0.171.0/go.mod h1:Hnq5AHm4OTMt2BUVjael2CWZFD6vksJdWCWiUAmjC9o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1207,10 +1211,10 @@ google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1228,8 +1232,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1245,8 +1249,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 h1:jeZxE4ZlfAc+R0zO5TEmJBwOLet3NThsOfYJeSQg1x0= gopkg.in/DataDog/dd-trace-go.v1 v1.62.0/go.mod h1:YTvYkk3PTsfw0OWrRFxV/IQ5Gy4nZ5TRvxTAP3JcIzs= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From 8712c3134515a12f31ab3e34b0817f91e3068b96 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:43:35 -0300 Subject: [PATCH 3/6] (fix) Fixed pre-commit issues --- .golangci.yml | 1 + Makefile | 2 +- client/chain/chain.go | 8 ++++---- client/exchange/exchange.go | 4 ++-- client/explorer/explorer.go | 4 ++-- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index d679ee99..cd3bcde3 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -47,6 +47,7 @@ ], "disabled-checks": [ "hugeParam", + "unnamedResult", ] } }, diff --git a/Makefile b/Makefile index f1fea3f6..5b884404 100644 --- a/Makefile +++ b/Makefile @@ -137,4 +137,4 @@ tests: coverage: go test -race -coverprofile=coverage.out -covermode=atomic ./client/... ./ethereum/... -.PHONY: copy-exchange-client tests coverage \ No newline at end of file +.PHONY: copy-exchange-client tests coverage diff --git a/client/chain/chain.go b/client/chain/chain.go index 26d50e5b..0ee9d14a 100644 --- a/client/chain/chain.go +++ b/client/chain/chain.go @@ -387,9 +387,9 @@ func NewChainClient( var err error stickySessionEnabled := true if opts.TLSCert != nil { - conn, err = grpc.Dial(network.ChainGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ChainGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) } else { - conn, err = grpc.Dial(network.ChainGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ChainGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) stickySessionEnabled = false } if err != nil { @@ -399,9 +399,9 @@ func NewChainClient( var chainStreamConn *grpc.ClientConn if opts.TLSCert != nil { - chainStreamConn, err = grpc.Dial(network.ChainStreamGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) + chainStreamConn, err = grpc.NewClient(network.ChainStreamGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) } else { - chainStreamConn, err = grpc.Dial(network.ChainStreamGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) + chainStreamConn, err = grpc.NewClient(network.ChainStreamGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) } if err != nil { err = errors.Wrapf(err, "failed to connect to the chain stream gRPC: %s", network.ChainStreamGrpcEndpoint) diff --git a/client/exchange/exchange.go b/client/exchange/exchange.go index cc4b3f3b..a93571ae 100644 --- a/client/exchange/exchange.go +++ b/client/exchange/exchange.go @@ -111,10 +111,10 @@ func NewExchangeClient(network common.Network, options ...common.ClientOption) ( var conn *grpc.ClientConn var err error if opts.TLSCert != nil { - conn, err = grpc.Dial(network.ExchangeGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ExchangeGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) } else { - conn, err = grpc.Dial(network.ExchangeGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ExchangeGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) } if err != nil { err := errors.Wrapf(err, "failed to connect to the gRPC: %s", network.ExchangeGrpcEndpoint) diff --git a/client/explorer/explorer.go b/client/explorer/explorer.go index 2dbe8ce8..ce9fff24 100644 --- a/client/explorer/explorer.go +++ b/client/explorer/explorer.go @@ -50,9 +50,9 @@ func NewExplorerClient(network common.Network, options ...common.ClientOption) ( var conn *grpc.ClientConn var err error if opts.TLSCert != nil { - conn, err = grpc.Dial(network.ExplorerGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ExplorerGrpcEndpoint, grpc.WithTransportCredentials(opts.TLSCert), grpc.WithContextDialer(common.DialerFunc)) } else { - conn, err = grpc.Dial(network.ExplorerGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) + conn, err = grpc.NewClient(network.ExplorerGrpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(common.DialerFunc)) } if err != nil { err := errors.Wrapf(err, "failed to connect to the gRPC: %s", network.ExplorerGrpcEndpoint) From 485932c8962f5b144e3c9451c3022c0bb149f067 Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:07:46 -0300 Subject: [PATCH 4/6] (fix) Updated devnet, devnet-1 and local Network configuration to solve an issue with the latest gRPC version (v1.64.1 vs v1.63.2) --- client/common/network.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/client/common/network.go b/client/common/network.go index 4714f997..15e5eb79 100644 --- a/client/common/network.go +++ b/client/common/network.go @@ -211,10 +211,10 @@ func LoadNetwork(name, node string) Network { return Network{ LcdEndpoint: "http://localhost:10337", TmEndpoint: "http://localhost:26657", - ChainGrpcEndpoint: "tcp://localhost:9900", - ChainStreamGrpcEndpoint: "tcp://localhost:9999", - ExchangeGrpcEndpoint: "tcp://localhost:9910", - ExplorerGrpcEndpoint: "tcp://localhost:9911", + ChainGrpcEndpoint: "localhost:9900", + ChainStreamGrpcEndpoint: "localhost:9999", + ExchangeGrpcEndpoint: "localhost:9910", + ExplorerGrpcEndpoint: "localhost:9911", ChainId: "injective-1", FeeDenom: "inj", Name: "local", @@ -228,10 +228,10 @@ func LoadNetwork(name, node string) Network { return Network{ LcdEndpoint: "https://devnet-1.lcd.injective.dev", TmEndpoint: "https://devnet-1.tm.injective.dev:443", - ChainGrpcEndpoint: "tcp://devnet-1.grpc.injective.dev:9900", - ChainStreamGrpcEndpoint: "tcp://devnet-1.grpc.injective.dev:9999", - ExchangeGrpcEndpoint: "tcp://devnet-1.api.injective.dev:9910", - ExplorerGrpcEndpoint: "tcp://devnet-1.api.injective.dev:9911", + ChainGrpcEndpoint: "devnet-1.grpc.injective.dev:9900", + ChainStreamGrpcEndpoint: "devnet-1.grpc.injective.dev:9999", + ExchangeGrpcEndpoint: "devnet-1.api.injective.dev:9910", + ExplorerGrpcEndpoint: "devnet-1.api.injective.dev:9911", ChainId: "injective-777", FeeDenom: "inj", Name: "devnet-1", @@ -244,10 +244,10 @@ func LoadNetwork(name, node string) Network { return Network{ LcdEndpoint: "https://devnet.lcd.injective.dev", TmEndpoint: "https://devnet.tm.injective.dev:443", - ChainGrpcEndpoint: "tcp://devnet.injective.dev:9900", - ChainStreamGrpcEndpoint: "tcp://devnet.injective.dev:9999", - ExchangeGrpcEndpoint: "tcp://devnet.injective.dev:9910", - ExplorerGrpcEndpoint: "tcp://devnet.api.injective.dev:9911", + ChainGrpcEndpoint: "devnet.injective.dev:9900", + ChainStreamGrpcEndpoint: "devnet.injective.dev:9999", + ExchangeGrpcEndpoint: "devnet.injective.dev:9910", + ExplorerGrpcEndpoint: "devnet.api.injective.dev:9911", ChainId: "injective-777", FeeDenom: "inj", Name: "devnet", From b88e0b187d55b3309d753fad9edaf90766241c5f Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:53:40 -0300 Subject: [PATCH 5/6] (fix) Updated compiled protos from the latest core and indexer versions (candidate versions for the next release) --- Makefile | 175 +- chain/exchange/types/codec.go | 2 + chain/exchange/types/msgs.go | 34 +- chain/exchange/types/proposal.go | 14 +- chain/exchange/types/tx.pb.go | 875 +++++-- chain/peggy/types/events.pb.go | 954 +++++++- chain/peggy/types/key.go | 8 + chain/peggy/types/msgs.go | 2 +- chain/peggy/types/params.go | 22 + chain/peggy/types/params.pb.go | 159 +- chain/peggy/types/types.go | 2 +- chain/permissions/types/permissions.pb.go | 300 +-- chain/types/util.go | 27 + chain/wasmx/types/proposal.go | 11 - client/chain/injective_data/ofac.json | 162 ++ ...design_goagen_injective_accounts_rpc.pb.go | 2 +- ...n_goagen_injective_accounts_rpc_grpc.pb.go | 2 +- .../pb/injective_accounts_rpc.pb.gw.go | 882 ------- .../pb/injective_accounts_rpc.proto | 623 ----- ...adesign_goagen_injective_auction_rpc.pb.go | 221 +- ...gn_goagen_injective_auction_rpc_grpc.pb.go | 40 +- .../pb/injective_auction_rpc.pb.gw.go | 314 --- .../pb/injective_auction_rpc.proto | 81 - ...design_goagen_injective_campaign_rpc.pb.go | 2 +- ...n_goagen_injective_campaign_rpc_grpc.pb.go | 2 +- .../pb/injective_campaign_rpc.pb.gw.go | 596 ----- .../pb/injective_campaign_rpc.proto | 346 --- ...en_injective_derivative_exchange_rpc.pb.go | 1626 +++++++------ ...jective_derivative_exchange_rpc_grpc.pb.go | 81 +- ...injective_derivative_exchange_rpc.pb.gw.go | 1995 --------------- .../injective_derivative_exchange_rpc.proto | 1079 --------- .../pb/event_provider_api.pb.gw.go | 569 ----- .../pb/event_provider_api.proto | 180 -- .../pb/event_provider_api_grpc.pb_mock.go | 563 ----- .../goadesign_goagen_event_provider_api.pb.go | 370 +-- ...esign_goagen_event_provider_api_grpc.pb.go | 2 +- ...design_goagen_injective_exchange_rpc.pb.go | 2 +- ...n_goagen_injective_exchange_rpc_grpc.pb.go | 2 +- .../pb/injective_exchange_rpc.pb.gw.go | 681 ------ .../pb/injective_exchange_rpc.proto | 249 -- ...design_goagen_injective_explorer_rpc.pb.go | 2136 ++++++++++------- ...n_goagen_injective_explorer_rpc_grpc.pb.go | 40 +- .../pb/injective_explorer_rpc.pb.gw.go | 1987 --------------- .../pb/injective_explorer_rpc.proto | 897 ------- .../pb/goadesign_goagen_health.pb.go | 28 +- .../pb/goadesign_goagen_health_grpc.pb.go | 2 +- exchange/health_rpc/pb/health.pb.gw.go | 171 -- exchange/health_rpc/pb/health.proto | 43 - ...esign_goagen_injective_insurance_rpc.pb.go | 2 +- ..._goagen_injective_insurance_rpc_grpc.pb.go | 2 +- .../pb/injective_insurance_rpc.pb.gw.go | 341 --- .../pb/injective_insurance_rpc.proto | 115 - .../goadesign_goagen_injective_meta_rpc.pb.go | 2 +- ...esign_goagen_injective_meta_rpc_grpc.pb.go | 2 +- .../meta_rpc/pb/injective_meta_rpc.pb.gw.go | 484 ---- exchange/meta_rpc/pb/injective_meta_rpc.proto | 99 - ...oadesign_goagen_injective_oracle_rpc.pb.go | 2 +- ...ign_goagen_injective_oracle_rpc_grpc.pb.go | 2 +- .../pb/injective_oracle_rpc.pb.gw.go | 372 --- .../oracle_rpc/pb/injective_oracle_rpc.proto | 91 - ...esign_goagen_injective_portfolio_rpc.pb.go | 2 +- ..._goagen_injective_portfolio_rpc_grpc.pb.go | 2 +- .../pb/injective_portfolio_rpc.pb.gw.go | 399 --- .../pb/injective_portfolio_rpc.proto | 158 -- ...n_goagen_injective_spot_exchange_rpc.pb.go | 2 +- ...gen_injective_spot_exchange_rpc_grpc.pb.go | 2 +- .../pb/injective_spot_exchange_rpc.pb.gw.go | 1427 ----------- .../pb/injective_spot_exchange_rpc.proto | 733 ------ ...adesign_goagen_injective_trading_rpc.pb.go | 183 +- ...gn_goagen_injective_trading_rpc_grpc.pb.go | 2 +- .../pb/injective_trading_rpc.pb.gw.go | 256 -- .../pb/injective_trading_rpc.proto | 193 -- .../pb/injective_trading_rpc_grpc.pb_mock.go | 181 -- injective_data/ofac.json | 3 +- proto/buf.gen.ts.yaml | 13 - proto/injective/auction/v1beta1/auction.proto | 14 +- .../injective/exchange/v1beta1/exchange.proto | 8 + .../injective/exchange/v1beta1/proposal.proto | 9 + proto/injective/exchange/v1beta1/query.proto | 43 + proto/injective/exchange/v1beta1/tx.proto | 23 +- proto/injective/peggy/v1/events.proto | 36 + proto/injective/peggy/v1/params.proto | 3 + proto/injective/peggy/v1/proposal.proto | 29 - .../permissions/v1beta1/genesis.proto | 1 + .../permissions/v1beta1/permissions.proto | 89 +- .../injective/permissions/v1beta1/query.proto | 201 +- proto/injective/permissions/v1beta1/tx.proto | 68 +- proto/injective/stream/v1beta1/query.proto | 6 +- .../v1beta1/authorityMetadata.proto | 3 + .../tokenfactory/v1beta1/events.proto | 16 +- proto/injective/tokenfactory/v1beta1/tx.proto | 39 +- 91 files changed, 5227 insertions(+), 18992 deletions(-) create mode 100644 chain/types/util.go create mode 100644 client/chain/injective_data/ofac.json delete mode 100644 exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go delete mode 100644 exchange/accounts_rpc/pb/injective_accounts_rpc.proto delete mode 100644 exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go delete mode 100644 exchange/auction_rpc/pb/injective_auction_rpc.proto delete mode 100644 exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go delete mode 100644 exchange/campaign_rpc/pb/injective_campaign_rpc.proto delete mode 100644 exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go delete mode 100644 exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto delete mode 100644 exchange/event_provider_api/pb/event_provider_api.pb.gw.go delete mode 100644 exchange/event_provider_api/pb/event_provider_api.proto delete mode 100644 exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go delete mode 100644 exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go delete mode 100644 exchange/exchange_rpc/pb/injective_exchange_rpc.proto delete mode 100644 exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go delete mode 100644 exchange/explorer_rpc/pb/injective_explorer_rpc.proto delete mode 100644 exchange/health_rpc/pb/health.pb.gw.go delete mode 100644 exchange/health_rpc/pb/health.proto delete mode 100644 exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go delete mode 100644 exchange/insurance_rpc/pb/injective_insurance_rpc.proto delete mode 100644 exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go delete mode 100644 exchange/meta_rpc/pb/injective_meta_rpc.proto delete mode 100644 exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go delete mode 100644 exchange/oracle_rpc/pb/injective_oracle_rpc.proto delete mode 100644 exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go delete mode 100644 exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto delete mode 100644 exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go delete mode 100644 exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto delete mode 100644 exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go delete mode 100644 exchange/trading_rpc/pb/injective_trading_rpc.proto delete mode 100644 exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go delete mode 100644 proto/buf.gen.ts.yaml delete mode 100644 proto/injective/peggy/v1/proposal.proto diff --git a/Makefile b/Makefile index 5b884404..36ffd73c 100644 --- a/Makefile +++ b/Makefile @@ -1,108 +1,121 @@ all: -copy-exchange-client: +clone-injective-indexer: + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.117 --depth 1 --single-branch + +clone-injective-core: + git clone https://github.com/InjectiveLabs/injective-core.git -b dev-v1.14 --depth 1 --single-branch + +copy-exchange-client: clone-injective-indexer rm -rf exchange/* - mkdir -p exchange/event_provider_api - mkdir -p exchange/health_rpc - mkdir -p exchange/accounts_rpc - mkdir -p exchange/auction_rpc - mkdir -p exchange/campaign_rpc - mkdir -p exchange/derivative_exchange_rpc - mkdir -p exchange/exchange_rpc - mkdir -p exchange/explorer_rpc - mkdir -p exchange/insurance_rpc - mkdir -p exchange/meta_rpc - mkdir -p exchange/oracle_rpc - mkdir -p exchange/portfolio_rpc - mkdir -p exchange/spot_exchange_rpc - mkdir -p exchange/trading_rpc + mkdir -p exchange/event_provider_api/pb + mkdir -p exchange/health_rpc/pb + mkdir -p exchange/accounts_rpc/pb + mkdir -p exchange/auction_rpc/pb + mkdir -p exchange/campaign_rpc/pb + mkdir -p exchange/derivative_exchange_rpc/pb + mkdir -p exchange/exchange_rpc/pb + mkdir -p exchange/explorer_rpc/pb + mkdir -p exchange/insurance_rpc/pb + mkdir -p exchange/meta_rpc/pb + mkdir -p exchange/oracle_rpc/pb + mkdir -p exchange/portfolio_rpc/pb + mkdir -p exchange/spot_exchange_rpc/pb + mkdir -p exchange/trading_rpc/pb + + cp -r injective-indexer/api/gen/grpc/event_provider_api/pb/*.pb.go exchange/event_provider_api/pb + cp -r injective-indexer/api/gen/grpc/health/pb/*.pb.go exchange/health_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_accounts_rpc/pb/*.pb.go exchange/accounts_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_auction_rpc/pb/*.pb.go exchange/auction_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_campaign_rpc/pb/*.pb.go exchange/campaign_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_derivative_exchange_rpc/pb/*.pb.go exchange/derivative_exchange_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_exchange_rpc/pb/*.pb.go exchange/exchange_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_explorer_rpc/pb/*.pb.go exchange/explorer_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_insurance_rpc/pb/*.pb.go exchange/insurance_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_meta_rpc/pb/*.pb.go exchange/meta_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_oracle_rpc/pb/*.pb.go exchange/oracle_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_portfolio_rpc/pb/*.pb.go exchange/portfolio_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_spot_exchange_rpc/pb/*.pb.go exchange/spot_exchange_rpc/pb + cp -r injective-indexer/api/gen/grpc/injective_trading_rpc/pb/*.pb.go exchange/trading_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/event_provider_api/pb exchange/event_provider_api/pb - cp -r ../injective-indexer/api/gen/grpc/health/pb exchange/health_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_auction_rpc/pb exchange/auction_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_campaign_rpc/pb exchange/campaign_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_derivative_exchange_rpc/pb exchange/derivative_exchange_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_exchange_rpc/pb exchange/exchange_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_explorer_rpc/pb exchange/explorer_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_insurance_rpc/pb exchange/insurance_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_meta_rpc/pb exchange/meta_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_oracle_rpc/pb exchange/oracle_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_portfolio_rpc/pb exchange/portfolio_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_spot_exchange_rpc/pb exchange/spot_exchange_rpc/pb - cp -r ../injective-indexer/api/gen/grpc/injective_trading_rpc/pb exchange/trading_rpc/pb + rm -rf injective-indexer -copy-chain-types: - cp -r ../injective-core/injective-chain/codec chain - cp -r ../injective-core/injective-chain/helpers chain - mkdir -p chain/crypto/codec && cp ../injective-core/injective-chain/crypto/codec/*.go chain/crypto/codec +copy-chain-types: clone-injective-core + cp -r injective-core/injective-chain/codec chain + mkdir -p chain/crypto/codec && cp injective-core/injective-chain/crypto/codec/*.go chain/crypto/codec rm -rf chain/crypto/codec/*test.go rm -rf chain/crypto/codec/*gw.go - mkdir -p chain/crypto/ethsecp256k1 && cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 + mkdir -p chain/crypto/ethsecp256k1 && cp injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 rm -rf chain/crypto/ethsecp256k1/*test.go rm -rf chain/crypto/ethsecp256k1/*gw.go - mkdir -p chain/crypto/hd && cp ../injective-core/injective-chain/crypto/hd/*.go chain/crypto/hd + mkdir -p chain/crypto/hd && cp injective-core/injective-chain/crypto/hd/*.go chain/crypto/hd rm -rf chain/crypto/hd/*test.go rm -rf chain/crypto/hd/*gw.go mkdir -p chain/auction/types && \ - cp ../injective-core/injective-chain/modules/auction/types/*.pb.go chain/auction/types && \ - cp ../injective-core/injective-chain/modules/auction/types/codec.go chain/auction/types + cp injective-core/injective-chain/modules/auction/types/*.pb.go chain/auction/types && \ + cp injective-core/injective-chain/modules/auction/types/codec.go chain/auction/types mkdir -p chain/exchange/types && \ - cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types && \ + cp injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types && \ rm -rf chain/exchange/types/*test.go && rm -rf chain/exchange/types/*gw.go mkdir -p chain/insurance/types && \ - cp ../injective-core/injective-chain/modules/insurance/types/*.pb.go chain/insurance/types && \ - cp ../injective-core/injective-chain/modules/insurance/types/codec.go chain/insurance/types + cp injective-core/injective-chain/modules/insurance/types/*.pb.go chain/insurance/types && \ + cp injective-core/injective-chain/modules/insurance/types/codec.go chain/insurance/types mkdir -p chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/*.pb.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/errors.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/key.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/params.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/proposal.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/types.go chain/ocr/types && \ - cp ../injective-core/injective-chain/modules/ocr/types/codec.go chain/ocr/types + cp injective-core/injective-chain/modules/ocr/types/*.pb.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/errors.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/key.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/params.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/proposal.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/types.go chain/ocr/types && \ + cp injective-core/injective-chain/modules/ocr/types/codec.go chain/ocr/types mkdir -p chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/*.pb.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/codec.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/errors.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/msgs.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \ - cp ../injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types && \ - cp -r ../injective-core/injective-chain/modules/oracle/bandchain chain/oracle + cp injective-core/injective-chain/modules/oracle/types/*.pb.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/codec.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/errors.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/msgs.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types && \ + cp -r injective-core/injective-chain/modules/oracle/bandchain chain/oracle mkdir -p chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/abi_json.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/codec.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/ethereum.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/ethereum_signer.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/errors.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/key.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/msgs.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/params.go chain/peggy/types && \ - cp ../injective-core/injective-chain/modules/peggy/types/types.go chain/peggy/types + cp injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/abi_json.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/codec.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/ethereum.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/ethereum_signer.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/errors.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/key.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/msgs.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/params.go chain/peggy/types && \ + cp injective-core/injective-chain/modules/peggy/types/types.go chain/peggy/types mkdir -p chain/permissions/types && \ - cp ../injective-core/injective-chain/modules/permissions/types/*.pb.go chain/permissions/types && \ - cp ../injective-core/injective-chain/modules/permissions/types/codec.go chain/permissions/types + cp injective-core/injective-chain/modules/permissions/types/*.pb.go chain/permissions/types && \ + cp injective-core/injective-chain/modules/permissions/types/codec.go chain/permissions/types mkdir -p chain/tokenfactory/types && \ - cp ../injective-core/injective-chain/modules/tokenfactory/types/*.pb.go chain/tokenfactory/types && \ - cp ../injective-core/injective-chain/modules/tokenfactory/types/codec.go chain/tokenfactory/types + cp injective-core/injective-chain/modules/tokenfactory/types/*.pb.go chain/tokenfactory/types && \ + cp injective-core/injective-chain/modules/tokenfactory/types/codec.go chain/tokenfactory/types mkdir -p chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/*.pb.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/codec.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/custom_execution.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/errors.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/key.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/msgs.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/params.go chain/wasmx/types && \ - cp ../injective-core/injective-chain/modules/wasmx/types/proposal.go chain/wasmx/types + cp injective-core/injective-chain/modules/wasmx/types/*.pb.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/codec.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/custom_execution.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/errors.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/key.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/msgs.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/params.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/proposal.go chain/wasmx/types mkdir -p chain/stream/types && \ - cp ../injective-core/injective-chain/stream/types/*.pb.go chain/stream/types + cp injective-core/injective-chain/stream/types/*.pb.go chain/stream/types mkdir -p chain/types && \ - cp ../injective-core/injective-chain/types/*.pb.go ../injective-core/injective-chain/types/config.go chain/types && \ - cp ../injective-core/injective-chain/types/codec.go chain/types + cp injective-core/injective-chain/types/*.pb.go injective-core/injective-chain/types/config.go chain/types && \ + cp injective-core/injective-chain/types/codec.go chain/types && \ + cp injective-core/injective-chain/types/util.go chain/types @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain/modules|github.com/InjectiveLabs/sdk-go/chain|g" {} \; @find ./chain -type f -name "*.go" -exec sed -i "" -e "s|github.com/InjectiveLabs/injective-core/injective-chain|github.com/InjectiveLabs/sdk-go/chain|g" {} \; + rm -rf proto + cp -r injective-core/proto ./ + + rm -rf injective-core + #gen: gen-proto # #gen-proto: clone-all copy-proto diff --git a/chain/exchange/types/codec.go b/chain/exchange/types/codec.go index 34f6f1e5..b94dbd35 100644 --- a/chain/exchange/types/codec.go +++ b/chain/exchange/types/codec.go @@ -46,6 +46,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgUpdateParams{}, "exchange/MsgUpdateParams", nil) cdc.RegisterConcrete(&MsgUpdateSpotMarket{}, "exchange/MsgUpdateSpotMarket", nil) cdc.RegisterConcrete(&MsgUpdateDerivativeMarket{}, "exchange/MsgUpdateDerivativeMarket", nil) + cdc.RegisterConcrete(&MsgBatchExchangeModification{}, "exchange/MsgBatchExchangeModification", nil) cdc.RegisterConcrete(&ExchangeEnableProposal{}, "exchange/ExchangeEnableProposal", nil) cdc.RegisterConcrete(&BatchExchangeModificationProposal{}, "exchange/BatchExchangeModificationProposal", nil) @@ -113,6 +114,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUpdateParams{}, &MsgUpdateSpotMarket{}, &MsgUpdateDerivativeMarket{}, + &MsgBatchExchangeModification{}, ) registry.RegisterImplementations( diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index e2236d37..5fa04ac6 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -10,9 +10,9 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" - "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" + chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" ) const RouterKey = ModuleName @@ -51,6 +51,7 @@ var ( _ sdk.Msg = &MsgUpdateParams{} _ sdk.Msg = &MsgUpdateSpotMarket{} _ sdk.Msg = &MsgUpdateDerivativeMarket{} + _ sdk.Msg = &MsgBatchExchangeModification{} ) // exchange message types @@ -90,6 +91,7 @@ const ( TypeMsgUpdateDerivativeMarket = "updateDerivativeMarket" TypeMsgAuthorizeStakeGrants = "authorizeStakeGrant" TypeMsgActivateStakeGrant = "acceptStakeGrant" + TypeMsgBatchExchangeModification = "batchExchangeModification" ) func (msg MsgUpdateParams) Route() string { return RouterKey } @@ -1835,16 +1837,16 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { return err } - hasDuplicateSpotMarketIDs := helpers.HasDuplicate(msg.SpotMarketIdsToCancelAll) + hasDuplicateSpotMarketIDs := chaintypes.HasDuplicate(msg.SpotMarketIdsToCancelAll) if hasDuplicateSpotMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all spot market ids") } - hasDuplicateDerivativesMarketIDs := helpers.HasDuplicate(msg.DerivativeMarketIdsToCancelAll) + hasDuplicateDerivativesMarketIDs := chaintypes.HasDuplicate(msg.DerivativeMarketIdsToCancelAll) if hasDuplicateDerivativesMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all derivative market ids") } - hasDuplicateBinaryOptionsMarketIDs := helpers.HasDuplicate(msg.BinaryOptionsMarketIdsToCancelAll) + hasDuplicateBinaryOptionsMarketIDs := chaintypes.HasDuplicate(msg.BinaryOptionsMarketIdsToCancelAll) if hasDuplicateBinaryOptionsMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all binary options market ids") } @@ -2111,3 +2113,27 @@ func (msg *MsgActivateStakeGrant) GetSigners() []sdk.AccAddress { func (msg *MsgActivateStakeGrant) GetSignBytes() []byte { return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) } + +func (msg *MsgBatchExchangeModification) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + +func (msg *MsgBatchExchangeModification) Route() string { return RouterKey } + +func (msg *MsgBatchExchangeModification) Type() string { return TypeMsgBatchExchangeModification } + +func (msg *MsgBatchExchangeModification) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return errors.Wrap(err, "invalid sender address") + } + + if err := msg.Proposal.ValidateBasic(); err != nil { + return err + } + + return nil +} diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index 9cdde119..a4c9fb8d 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -12,8 +12,8 @@ import ( gov "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/ethereum/go-ethereum/common" - "github.com/InjectiveLabs/sdk-go/chain/helpers" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" + chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" ) // constants @@ -1110,7 +1110,7 @@ func (p *TradingRewardPendingPointsUpdateProposal) ValidateBasic() error { } } - hasDuplicateAccountAddresses := helpers.HasDuplicate(accountAddresses) + hasDuplicateAccountAddresses := chaintypes.HasDuplicate(accountAddresses) if hasDuplicateAccountAddresses { return errors.Wrap(ErrInvalidTradingRewardsPendingPointsUpdate, "account address cannot have duplicates") } @@ -1206,7 +1206,7 @@ func (t *TradingRewardCampaignBoostInfo) ValidateBasic() error { return errors.Wrap(ErrInvalidTradingRewardCampaign, "boosted derivative market ids is not matching derivative market multipliers") } - hasDuplicatesInMarkets := helpers.HasDuplicate(t.BoostedSpotMarketIds) || helpers.HasDuplicate(t.BoostedDerivativeMarketIds) + hasDuplicatesInMarkets := chaintypes.HasDuplicate(t.BoostedSpotMarketIds) || chaintypes.HasDuplicate(t.BoostedDerivativeMarketIds) if hasDuplicatesInMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate boosted market ids") } @@ -1275,7 +1275,7 @@ func (c *TradingRewardCampaignInfo) ValidateBasic() error { } } - hasDuplicatesInDisqualifiedMarkets := helpers.HasDuplicate(c.DisqualifiedMarketIds) + hasDuplicatesInDisqualifiedMarkets := chaintypes.HasDuplicate(c.DisqualifiedMarketIds) if hasDuplicatesInDisqualifiedMarkets { return errors.Wrap(ErrInvalidTradingRewardCampaign, "campaign contains duplicate disqualified market ids") } @@ -1299,7 +1299,7 @@ func validateCampaignRewardPool(pool *CampaignRewardPool, campaignDurationSecond prevStartTimestamp = pool.StartTimestamp - hasDuplicatesInEpochRewards := helpers.HasDuplicateCoins(pool.MaxCampaignRewards) + hasDuplicatesInEpochRewards := chaintypes.HasDuplicateCoins(pool.MaxCampaignRewards) if hasDuplicatesInEpochRewards { return 0, errors.Wrap(ErrInvalidTradingRewardCampaign, "reward pool campaign contains duplicate market coins") } @@ -1361,7 +1361,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule must have have bucket durations of at least 10 seconds") } - if helpers.HasDuplicate(p.Schedule.QuoteDenoms) { + if chaintypes.HasDuplicate(p.Schedule.QuoteDenoms) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate quote denoms") } @@ -1371,7 +1371,7 @@ func (p *FeeDiscountProposal) ValidateBasic() error { } } - if helpers.HasDuplicate(p.Schedule.DisqualifiedMarketIds) { + if chaintypes.HasDuplicate(p.Schedule.DisqualifiedMarketIds) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "new fee discount schedule cannot have duplicate disqualified market ids") } diff --git a/chain/exchange/types/tx.pb.go b/chain/exchange/types/tx.pb.go index fb3514dd..c1caeb05 100644 --- a/chain/exchange/types/tx.pb.go +++ b/chain/exchange/types/tx.pb.go @@ -3593,6 +3593,81 @@ func (m *MsgActivateStakeGrantResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgActivateStakeGrantResponse proto.InternalMessageInfo +type MsgBatchExchangeModification struct { + // message sender, that is also the TX signer + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Proposal *BatchExchangeModificationProposal `protobuf:"bytes,2,opt,name=proposal,proto3" json:"proposal,omitempty"` +} + +func (m *MsgBatchExchangeModification) Reset() { *m = MsgBatchExchangeModification{} } +func (m *MsgBatchExchangeModification) String() string { return proto.CompactTextString(m) } +func (*MsgBatchExchangeModification) ProtoMessage() {} +func (*MsgBatchExchangeModification) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{77} +} +func (m *MsgBatchExchangeModification) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgBatchExchangeModification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgBatchExchangeModification.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgBatchExchangeModification) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgBatchExchangeModification.Merge(m, src) +} +func (m *MsgBatchExchangeModification) XXX_Size() int { + return m.Size() +} +func (m *MsgBatchExchangeModification) XXX_DiscardUnknown() { + xxx_messageInfo_MsgBatchExchangeModification.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgBatchExchangeModification proto.InternalMessageInfo + +type MsgBatchExchangeModificationResponse struct { +} + +func (m *MsgBatchExchangeModificationResponse) Reset() { *m = MsgBatchExchangeModificationResponse{} } +func (m *MsgBatchExchangeModificationResponse) String() string { return proto.CompactTextString(m) } +func (*MsgBatchExchangeModificationResponse) ProtoMessage() {} +func (*MsgBatchExchangeModificationResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{78} +} +func (m *MsgBatchExchangeModificationResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgBatchExchangeModificationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgBatchExchangeModificationResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgBatchExchangeModificationResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgBatchExchangeModificationResponse.Merge(m, src) +} +func (m *MsgBatchExchangeModificationResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgBatchExchangeModificationResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgBatchExchangeModificationResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgBatchExchangeModificationResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgUpdateSpotMarket)(nil), "injective.exchange.v1beta1.MsgUpdateSpotMarket") proto.RegisterType((*MsgUpdateSpotMarketResponse)(nil), "injective.exchange.v1beta1.MsgUpdateSpotMarketResponse") @@ -3671,6 +3746,8 @@ func init() { proto.RegisterType((*MsgAuthorizeStakeGrantsResponse)(nil), "injective.exchange.v1beta1.MsgAuthorizeStakeGrantsResponse") proto.RegisterType((*MsgActivateStakeGrant)(nil), "injective.exchange.v1beta1.MsgActivateStakeGrant") proto.RegisterType((*MsgActivateStakeGrantResponse)(nil), "injective.exchange.v1beta1.MsgActivateStakeGrantResponse") + proto.RegisterType((*MsgBatchExchangeModification)(nil), "injective.exchange.v1beta1.MsgBatchExchangeModification") + proto.RegisterType((*MsgBatchExchangeModificationResponse)(nil), "injective.exchange.v1beta1.MsgBatchExchangeModificationResponse") } func init() { @@ -3678,256 +3755,261 @@ func init() { } var fileDescriptor_bd45b74cb6d81462 = []byte{ - // 3976 bytes of a gzipped FileDescriptorProto + // 4052 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0x47, - 0x76, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x3f, 0xa2, 0x9a, 0x94, 0x38, 0x1c, 0xfe, 0xa4, 0xa6, 0x64, - 0xfd, 0x49, 0xfd, 0x3f, 0xa3, 0xc8, 0x12, 0x3f, 0x92, 0xcd, 0x58, 0xb4, 0xe4, 0xa1, 0x9c, 0x38, - 0x81, 0x9d, 0x41, 0xb3, 0xa7, 0x38, 0x6c, 0x73, 0xa6, 0x7b, 0xd4, 0xdd, 0x23, 0x89, 0x46, 0x80, - 0x38, 0x3e, 0x04, 0x4a, 0x1c, 0x04, 0x09, 0x10, 0x20, 0x40, 0x00, 0x03, 0x06, 0x02, 0xc4, 0x80, - 0x13, 0x24, 0x72, 0x10, 0x04, 0x3e, 0x24, 0x41, 0x10, 0xe4, 0x60, 0xf8, 0xa4, 0x04, 0x08, 0xb0, - 0xd8, 0x83, 0x76, 0x61, 0x1f, 0x6c, 0xf8, 0xb4, 0xd8, 0xcb, 0x02, 0xbb, 0x97, 0x45, 0x57, 0x55, - 0xd7, 0xf4, 0xa7, 0xaa, 0xbb, 0x67, 0x44, 0xda, 0xf2, 0xc2, 0x17, 0x89, 0x5d, 0xf5, 0xde, 0xab, - 0xf7, 0x5e, 0xbd, 0x4f, 0xd5, 0xab, 0xaa, 0x81, 0x19, 0xdd, 0x78, 0x1b, 0x69, 0x8e, 0x7e, 0x1f, - 0xcd, 0xa1, 0x87, 0xda, 0x86, 0x6a, 0x54, 0xd0, 0xdc, 0xfd, 0xd3, 0x6b, 0xc8, 0x51, 0x4f, 0xcf, - 0x39, 0x0f, 0x67, 0xeb, 0x96, 0xe9, 0x98, 0x72, 0x9e, 0x01, 0xcd, 0x7a, 0x40, 0xb3, 0x14, 0x28, - 0x3f, 0xa5, 0x99, 0x76, 0xcd, 0xb4, 0xe7, 0xd6, 0x54, 0xbb, 0x89, 0xa9, 0x99, 0xba, 0x41, 0x70, - 0xf3, 0xb3, 0xb4, 0xbf, 0xac, 0xdb, 0x8e, 0xa5, 0xaf, 0x35, 0x1c, 0xdd, 0x34, 0x18, 0x9c, 0xbf, - 0x91, 0xc2, 0x8f, 0x52, 0xf8, 0x9a, 0x5d, 0x99, 0xbb, 0x7f, 0xda, 0xfd, 0x8f, 0x76, 0x8c, 0x91, - 0x8e, 0x12, 0xfe, 0x9a, 0x23, 0x1f, 0xb4, 0x6b, 0xa4, 0x62, 0x56, 0x4c, 0xd2, 0xee, 0xfe, 0x45, - 0x5b, 0x8f, 0xc6, 0x88, 0xc6, 0xc4, 0x20, 0xa0, 0x87, 0x9a, 0xa0, 0xa6, 0xa5, 0x6a, 0xd5, 0x26, - 0x20, 0xf9, 0xa4, 0x60, 0x7b, 0xd4, 0x9a, 0x6e, 0x98, 0x73, 0xf8, 0x5f, 0xd2, 0xa4, 0x7c, 0x94, - 0x81, 0xe1, 0x15, 0xbb, 0xf2, 0x7a, 0xbd, 0xac, 0x3a, 0x68, 0xb5, 0x6e, 0x3a, 0x2b, 0xaa, 0xb5, - 0x89, 0x1c, 0x79, 0x04, 0xba, 0xd4, 0x72, 0x4d, 0x37, 0x72, 0xd2, 0x7e, 0xe9, 0x48, 0x6f, 0x91, - 0x7c, 0xc8, 0xe3, 0xd0, 0x5b, 0xc3, 0xfd, 0x25, 0xbd, 0x9c, 0xeb, 0xc0, 0x3d, 0x3d, 0xa4, 0x61, - 0xb9, 0x2c, 0x4f, 0x02, 0x18, 0xe8, 0x41, 0xc9, 0xd1, 0xb5, 0x4d, 0x64, 0xe5, 0x32, 0xb8, 0xb7, - 0xd7, 0x40, 0x0f, 0xee, 0xe2, 0x06, 0xf9, 0xf7, 0x60, 0xd4, 0xed, 0xae, 0xe9, 0x46, 0xa9, 0x6e, - 0xe9, 0x1a, 0xc2, 0x80, 0x25, 0x5b, 0x7f, 0x07, 0xe5, 0x3a, 0x5d, 0xd8, 0x85, 0x99, 0xcf, 0x9e, - 0x4e, 0xef, 0xfa, 0xf1, 0xd3, 0xe9, 0x71, 0xa2, 0x1b, 0xbb, 0xbc, 0x39, 0xab, 0x9b, 0x73, 0x35, - 0xd5, 0xd9, 0x98, 0xbd, 0x85, 0x2a, 0xaa, 0xb6, 0xb5, 0x84, 0xb4, 0xe2, 0xb0, 0x81, 0x1e, 0xac, - 0xe8, 0xc6, 0x1d, 0x97, 0x82, 0x4b, 0x78, 0x55, 0x7f, 0x07, 0xc9, 0x25, 0xc8, 0x7b, 0xa4, 0xef, - 0x35, 0x54, 0xc3, 0xd1, 0x9d, 0x2d, 0x1f, 0xf5, 0xae, 0xf4, 0xd4, 0xf7, 0x11, 0xea, 0xaf, 0x51, - 0x22, 0x6c, 0x80, 0x15, 0x18, 0xf2, 0x06, 0x30, 0x4c, 0x77, 0xb2, 0xd5, 0x6a, 0x2e, 0x9b, 0x9e, - 0xec, 0x20, 0x21, 0xfb, 0x2a, 0x45, 0x2d, 0x9c, 0x7d, 0xf4, 0xe1, 0xf4, 0xae, 0xaf, 0x3f, 0x9c, - 0xde, 0xf5, 0xde, 0x57, 0x8f, 0x8f, 0x11, 0xd5, 0xfe, 0xd9, 0x57, 0x8f, 0x8f, 0x4d, 0xb0, 0x69, - 0xe6, 0xcc, 0x88, 0x32, 0x09, 0xe3, 0x9c, 0xe6, 0x22, 0xb2, 0xeb, 0xa6, 0x61, 0x23, 0xe5, 0x17, - 0x9d, 0x30, 0xc6, 0xfa, 0x97, 0x90, 0xa5, 0xdf, 0x57, 0x5d, 0x7b, 0xf8, 0x61, 0x3a, 0x77, 0x7c, - 0x3a, 0xe5, 0x37, 0x21, 0xe7, 0x92, 0xd3, 0x0d, 0xdd, 0xd1, 0xd5, 0x6a, 0xa9, 0xa6, 0x5a, 0x15, - 0xdd, 0x28, 0x59, 0xaa, 0xa3, 0x9b, 0xb9, 0xee, 0xf4, 0x64, 0xf7, 0x1a, 0xe8, 0xc1, 0x32, 0xa1, - 0xb1, 0x82, 0x49, 0x14, 0x5d, 0x0a, 0x72, 0x19, 0x26, 0x30, 0xb3, 0xaa, 0x6e, 0x38, 0xc8, 0x50, - 0x0d, 0x0d, 0x05, 0x47, 0xe8, 0x49, 0x3f, 0xc2, 0x98, 0xcb, 0x78, 0x93, 0x8e, 0x6f, 0x94, 0xc2, - 0x65, 0xbe, 0x49, 0x2a, 0x51, 0x93, 0x0c, 0xdb, 0x96, 0x32, 0x03, 0x07, 0x84, 0x9d, 0xcc, 0x3c, - 0x3f, 0x95, 0x60, 0x37, 0x83, 0xba, 0xa3, 0x5a, 0x6a, 0xcd, 0x96, 0x2f, 0x40, 0xaf, 0xda, 0x70, - 0x36, 0x4c, 0x4b, 0x77, 0xb6, 0x88, 0x61, 0x2e, 0xe4, 0xfe, 0xef, 0x5f, 0x4f, 0x8e, 0xd0, 0xd8, - 0x38, 0x5f, 0x2e, 0x5b, 0xc8, 0xb6, 0x57, 0x1d, 0x4b, 0x37, 0x2a, 0xc5, 0x26, 0xa8, 0x7c, 0x1d, - 0xb2, 0x75, 0x4c, 0x01, 0xdb, 0x6c, 0xdf, 0x19, 0x65, 0x56, 0x1c, 0xdf, 0x67, 0xc9, 0x58, 0x0b, - 0x9d, 0xae, 0x7e, 0x8a, 0x14, 0xaf, 0x70, 0xdc, 0x95, 0xb2, 0x49, 0xd1, 0x95, 0x34, 0x17, 0x95, - 0x94, 0xa0, 0x2a, 0x63, 0x30, 0x1a, 0x6a, 0x62, 0x52, 0xfd, 0xb3, 0x04, 0xb0, 0x62, 0x57, 0x96, - 0x50, 0xdd, 0xb4, 0x75, 0x47, 0xde, 0x07, 0x59, 0x1b, 0x19, 0x65, 0x64, 0x51, 0x37, 0xa3, 0x5f, - 0xf2, 0x0c, 0x0c, 0xd8, 0x8d, 0x35, 0x55, 0xd3, 0xcc, 0x86, 0xe1, 0xf3, 0xb5, 0xfe, 0x66, 0xe3, - 0x72, 0x59, 0xbe, 0x08, 0x59, 0xb5, 0xe6, 0xfe, 0x8d, 0x7d, 0xad, 0xef, 0xcc, 0x18, 0xcd, 0x3c, - 0xb3, 0x6e, 0x66, 0x62, 0xe2, 0x2c, 0x9a, 0xba, 0xe1, 0x09, 0x43, 0xc0, 0x0b, 0xc7, 0xfd, 0x53, - 0x47, 0x87, 0x74, 0x25, 0x1a, 0xf6, 0x4b, 0x44, 0x59, 0x54, 0x46, 0x40, 0x6e, 0x7e, 0x31, 0x39, - 0x3e, 0x91, 0xa0, 0x6f, 0xc5, 0xae, 0xfc, 0xae, 0xee, 0x6c, 0x94, 0x2d, 0xf5, 0xc1, 0x77, 0x24, - 0xc8, 0x09, 0x81, 0x20, 0x23, 0x7e, 0x41, 0x3c, 0x1e, 0x95, 0xbd, 0x38, 0x71, 0x79, 0x9f, 0x4c, - 0x94, 0x7f, 0x92, 0xf0, 0x74, 0x2d, 0x5a, 0x88, 0xc6, 0xc9, 0x5b, 0x7a, 0x4d, 0x77, 0x6e, 0x5b, - 0x2e, 0xfb, 0x22, 0xb1, 0xe6, 0xa1, 0xcb, 0x74, 0x01, 0xa8, 0x3d, 0x1d, 0x8a, 0xb3, 0x27, 0x97, - 0x24, 0xa6, 0x46, 0x99, 0x27, 0x98, 0x85, 0x4b, 0x02, 0xde, 0xf7, 0xfb, 0x79, 0xe7, 0x31, 0xa5, - 0xbc, 0x09, 0xd3, 0x82, 0x2e, 0x4f, 0x26, 0x37, 0x14, 0xe3, 0x51, 0x4a, 0x1b, 0xaa, 0xbd, 0x41, - 0x79, 0xef, 0xc5, 0x2d, 0x2f, 0xab, 0xf6, 0x86, 0x3c, 0x04, 0x19, 0x8d, 0xcd, 0x85, 0xfb, 0x67, - 0xa1, 0xc7, 0xe3, 0x46, 0xf9, 0x77, 0x09, 0x26, 0x57, 0xec, 0xca, 0x82, 0xea, 0x68, 0x1b, 0xbc, - 0x31, 0x6c, 0xa1, 0x52, 0x16, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, - 0xe1, 0x45, 0x81, 0x5a, 0x5e, 0xf0, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x2f, 0x12, 0x1c, 0x8a, 0x85, - 0x60, 0x3a, 0x3a, 0x00, 0xfd, 0x4d, 0x1d, 0x21, 0x3b, 0x27, 0xed, 0xcf, 0x1c, 0xe9, 0x2d, 0xf6, - 0x31, 0x2d, 0x21, 0x5b, 0x9e, 0x85, 0x61, 0x0d, 0xd3, 0x28, 0x97, 0x08, 0x7b, 0x25, 0x4d, 0x2f, - 0x13, 0xf1, 0x7a, 0x8b, 0x7b, 0x68, 0x17, 0x21, 0xbb, 0xa8, 0x97, 0x6d, 0xf9, 0x04, 0xc8, 0xeb, - 0xaa, 0x5e, 0x0d, 0x81, 0x67, 0x30, 0xf8, 0x10, 0xe9, 0x69, 0x42, 0xfb, 0x74, 0xfe, 0x7e, 0x27, - 0xe4, 0x57, 0xec, 0xca, 0xb2, 0x61, 0x3b, 0xaa, 0xe1, 0x34, 0x73, 0xf5, 0x2d, 0xb5, 0x61, 0x68, - 0x1b, 0x42, 0x85, 0xef, 0x83, 0x2c, 0x4d, 0xb6, 0x64, 0x26, 0xe9, 0x97, 0x3b, 0xfb, 0xae, 0xe7, - 0x94, 0xca, 0xc8, 0x30, 0x6b, 0x5e, 0x22, 0x76, 0x5b, 0x96, 0xdc, 0x06, 0x79, 0x1a, 0xfa, 0xee, - 0x35, 0x4c, 0xc7, 0xeb, 0xc7, 0xc9, 0xb7, 0x08, 0xb8, 0x89, 0x00, 0x14, 0x61, 0x98, 0x97, 0xa5, - 0x5b, 0xc8, 0xa3, 0x43, 0xb5, 0x70, 0x8a, 0x7e, 0x03, 0xf6, 0x09, 0xd2, 0x73, 0x0b, 0x79, 0xd4, - 0x65, 0x2b, 0x92, 0x9b, 0x6f, 0x42, 0x7f, 0x20, 0x2f, 0xb7, 0x90, 0x40, 0xfb, 0x6a, 0xbe, 0xa4, - 0x3c, 0x03, 0x03, 0x54, 0x6b, 0x9a, 0x5e, 0x53, 0xab, 0x36, 0xce, 0x93, 0x03, 0xc5, 0x7e, 0xa2, - 0x38, 0xd2, 0x26, 0x1f, 0x82, 0x41, 0x4f, 0x77, 0x14, 0xaa, 0x17, 0x43, 0x0d, 0x50, 0xf5, 0x91, - 0xc6, 0xc2, 0x15, 0x81, 0x15, 0xcf, 0xf8, 0xad, 0x58, 0x30, 0xdd, 0xca, 0x41, 0x50, 0xc4, 0xbd, - 0xcd, 0x08, 0xdc, 0x8d, 0xc3, 0x00, 0x05, 0xbb, 0x83, 0xac, 0x3a, 0x72, 0x1a, 0x78, 0x21, 0xd0, - 0xbe, 0xe1, 0x84, 0x2c, 0x23, 0x13, 0xb1, 0x8c, 0x69, 0xe8, 0x23, 0xfb, 0x83, 0x92, 0xab, 0x15, - 0xcf, 0x74, 0x48, 0xd3, 0x82, 0xea, 0x39, 0x15, 0x06, 0xc0, 0x58, 0xc4, 0x66, 0x8a, 0x14, 0xe9, - 0x35, 0xb7, 0xc9, 0x75, 0x2a, 0x0a, 0x62, 0x6b, 0x6a, 0x15, 0x95, 0xd6, 0x55, 0xcd, 0x31, 0x2d, - 0x6c, 0x06, 0x03, 0xc5, 0x3d, 0xa4, 0x6b, 0xd5, 0xed, 0xb9, 0x89, 0x3b, 0xe4, 0x1b, 0x6c, 0x4c, - 0x67, 0xab, 0x8e, 0xf0, 0xf4, 0x0e, 0x9e, 0x39, 0xe8, 0x8b, 0x2d, 0x74, 0xc7, 0xe2, 0x45, 0x96, - 0xdb, 0xf8, 0xf3, 0xee, 0x56, 0x1d, 0x79, 0x9c, 0xb9, 0x7f, 0xcb, 0xcb, 0x30, 0x58, 0x53, 0x37, - 0x91, 0x55, 0x5a, 0x47, 0xc8, 0x5d, 0x08, 0xa1, 0x56, 0xd6, 0x41, 0xfd, 0x18, 0xf5, 0x26, 0x42, - 0x45, 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0xaf, 0xc3, 0x08, - 0x77, 0x15, 0x08, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0x09, 0xf8, 0x16, 0xe4, 0x84, 0xcb, 0xbf, 0xbe, - 0x16, 0x96, 0xc3, 0x35, 0xee, 0xda, 0x4f, 0x14, 0x20, 0xfa, 0x77, 0x26, 0x40, 0x0c, 0x6c, 0x73, - 0x80, 0x18, 0x6c, 0x2f, 0x40, 0x14, 0xae, 0x0b, 0x9c, 0xfa, 0x08, 0xc7, 0xa9, 0xb9, 0xfe, 0xa8, - 0x1c, 0x85, 0xc3, 0x09, 0x20, 0xcc, 0xbd, 0xff, 0xb4, 0x1b, 0x66, 0x9a, 0xb0, 0x0b, 0xba, 0xa1, - 0x5a, 0x5b, 0xb7, 0xeb, 0x2e, 0x27, 0xf6, 0x33, 0xb9, 0xf8, 0x0c, 0x0c, 0x78, 0xde, 0xb7, 0x55, - 0x5b, 0x33, 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0xae, 0xe2, 0x36, 0xf9, 0x30, 0xec, 0xa6, 0x40, 0x75, - 0xcb, 0xbc, 0xaf, 0xbb, 0xd4, 0x89, 0xab, 0x0f, 0x92, 0xe6, 0x3b, 0xb4, 0x35, 0xec, 0x9b, 0x5d, - 0x6d, 0xfa, 0x66, 0xab, 0x21, 0x21, 0xea, 0xcb, 0xdd, 0xdb, 0xe7, 0xcb, 0x3d, 0xed, 0xfa, 0xf2, - 0x69, 0x18, 0x41, 0x0f, 0xeb, 0x3a, 0xf6, 0x32, 0xa3, 0xe4, 0xe8, 0x35, 0x64, 0x3b, 0x6a, 0xad, - 0x8e, 0x83, 0x43, 0xa6, 0x38, 0xdc, 0xec, 0xbb, 0xeb, 0x75, 0xb9, 0x28, 0x36, 0x72, 0x9c, 0x2a, - 0xaa, 0x21, 0xc3, 0xf1, 0xa1, 0x00, 0x41, 0x69, 0xf6, 0x35, 0x51, 0xd8, 0xc6, 0xbc, 0xcf, 0xbf, - 0x31, 0x0f, 0x45, 0xee, 0xfe, 0xb4, 0x39, 0x7d, 0x60, 0x67, 0x5c, 0x76, 0x70, 0x9b, 0x5d, 0x76, - 0x77, 0x9b, 0x2e, 0xbb, 0x24, 0x70, 0xd9, 0x13, 0x1c, 0x97, 0x15, 0xfa, 0x98, 0x72, 0x12, 0x8e, - 0xa7, 0x00, 0x63, 0xae, 0xfb, 0xbf, 0x01, 0xd7, 0xbd, 0xe1, 0x4e, 0xfb, 0xd6, 0xcd, 0x86, 0xd3, - 0xb0, 0x90, 0xfd, 0xfc, 0x67, 0xe7, 0x90, 0x47, 0x67, 0xb7, 0xd7, 0xa3, 0xbb, 0x45, 0x1e, 0xbd, - 0x0f, 0xb2, 0xd8, 0x3f, 0xb6, 0xb0, 0xfb, 0x65, 0x8a, 0xf4, 0x8b, 0xe3, 0xe9, 0xbd, 0xdb, 0xe7, - 0xe9, 0xb0, 0xdd, 0x59, 0xbb, 0x6f, 0xe7, 0xb2, 0x76, 0xff, 0x8e, 0x65, 0xed, 0x1f, 0x42, 0x40, - 0xb2, 0xaf, 0x06, 0x43, 0x80, 0x10, 0x8c, 0x85, 0x80, 0xc7, 0x12, 0xe4, 0x02, 0x7b, 0x74, 0x02, - 0xb5, 0xe3, 0x45, 0x85, 0xcb, 0x02, 0x61, 0x0f, 0xf0, 0x8b, 0x0a, 0x3e, 0xae, 0x94, 0x4f, 0x24, - 0xd8, 0x2f, 0xea, 0x4c, 0x5b, 0x57, 0x28, 0x42, 0xb7, 0x85, 0xec, 0x46, 0xd5, 0xf1, 0x0a, 0x6d, - 0x67, 0x92, 0x64, 0x08, 0x0e, 0xe2, 0x62, 0x62, 0x81, 0xa4, 0xa2, 0x47, 0xc8, 0xab, 0x55, 0x64, - 0x78, 0xb5, 0x8a, 0xff, 0x97, 0x60, 0x1f, 0x9f, 0x8a, 0x7c, 0x0d, 0x7a, 0x3c, 0xa3, 0xa4, 0x95, - 0xc2, 0x54, 0xa6, 0xc3, 0x90, 0xe4, 0xcb, 0xd0, 0x85, 0x3d, 0x85, 0x04, 0xe1, 0x74, 0xd8, 0x04, - 0x43, 0x3e, 0x0f, 0x99, 0x75, 0x84, 0x08, 0xcb, 0xe9, 0x10, 0x5d, 0xf8, 0x68, 0x0d, 0x86, 0xcc, - 0x45, 0xb3, 0x42, 0x9a, 0xa2, 0x30, 0xf5, 0x52, 0xd0, 0x86, 0x8e, 0xc7, 0xe9, 0xbf, 0x49, 0x98, - 0x63, 0x49, 0x85, 0x47, 0x09, 0x35, 0x18, 0x31, 0x73, 0xca, 0x1a, 0x2e, 0xc1, 0x88, 0x01, 0xb6, - 0xa3, 0x4c, 0xf5, 0xdf, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x6f, 0x53, 0x4b, 0x57, 0x39, 0x5a, 0x3a, - 0x1a, 0xd5, 0x92, 0x80, 0x3f, 0x05, 0xc1, 0x91, 0x24, 0x98, 0xed, 0xd0, 0xd5, 0xe7, 0x12, 0x5e, - 0x90, 0xf8, 0x6a, 0x62, 0xbc, 0x59, 0x11, 0x17, 0xf6, 0x96, 0x43, 0x85, 0xbd, 0x36, 0xf4, 0xe5, - 0x95, 0xf7, 0xae, 0x3f, 0x4a, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x9f, 0x4a, 0x38, 0x14, 0x27, 0xc1, - 0x3d, 0x8f, 0x65, 0xbe, 0x27, 0x12, 0xae, 0xa5, 0x2f, 0xba, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, - 0xed, 0xb1, 0x87, 0x6d, 0x91, 0xc2, 0x7a, 0x86, 0x53, 0x58, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, - 0xba, 0x9a, 0x36, 0x33, 0xc7, 0x99, 0x9e, 0xf1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0x26, 0x70, 0xe1, - 0x32, 0xd4, 0xca, 0xd2, 0xe0, 0xc7, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x1a, - 0x74, 0x96, 0x55, 0x47, 0x4d, 0x53, 0x44, 0xc6, 0x94, 0x96, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, - 0x0b, 0xe7, 0x1f, 0x25, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x4d, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, - 0x72, 0xd0, 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0x1f, - 0x08, 0x12, 0x0a, 0xb8, 0xf6, 0x4e, 0x4b, 0xff, 0x22, 0x47, 0xfa, 0x63, 0x02, 0xe9, 0x39, 0x8c, - 0x29, 0xb7, 0xe1, 0x68, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x79, 0x37, 0x8c, 0x78, 0x14, 0xc9, 0x99, - 0x58, 0x82, 0x0a, 0x52, 0x9d, 0x19, 0x5d, 0x83, 0x49, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, - 0xc9, 0x31, 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, - 0x97, 0xed, 0xbb, 0x26, 0x11, 0x69, 0xbe, 0x5a, 0x95, 0x5f, 0x81, 0x99, 0x32, 0x0b, 0x1c, 0x62, - 0x32, 0x9d, 0x98, 0xcc, 0x54, 0x39, 0x74, 0x4c, 0x19, 0x22, 0xf6, 0x07, 0xb0, 0x17, 0x73, 0x43, - 0xe3, 0x01, 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, - 0xdf, 0x86, 0x71, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, - 0x2c, 0x8e, 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0xd5, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, - 0x91, 0x2c, 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x3d, 0x98, 0x5e, 0xc3, - 0x46, 0x5c, 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0xc7, 0xd7, 0xa2, 0x8e, 0xc1, - 0x94, 0x58, 0x84, 0xc3, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0x0e, 0xac, 0x45, 0xeb, 0x0a, - 0x21, 0x23, 0x7b, 0x10, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, - 0x4e, 0x73, 0x42, 0xca, 0x64, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x94, 0x85, 0x09, 0x5e, 0x07, - 0x8b, 0x1c, 0xb3, 0x30, 0x8c, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0xf6, 0xb8, 0x5d, 0x34, 0x08, - 0x93, 0x0e, 0xb9, 0x00, 0x63, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xd1, 0x26, 0x40, 0x10, - 0xf7, 0x18, 0xec, 0x69, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x37, 0x33, 0x50, 0xba, 0x16, - 0xb8, 0x00, 0xa3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1b, 0x32, 0x33, 0x8a, 0x37, 0x0f, - 0x93, 0xa1, 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x2a, 0x8c, - 0xf3, 0xe6, 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0x17, 0x21, 0xe7, 0xad, - 0x62, 0xfc, 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, - 0x1e, 0x46, 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x46, 0x48, 0x77, 0x08, 0x6d, 0x11, 0xa6, - 0xbc, 0xf1, 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x38, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, - 0x0f, 0x93, 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xdb, 0xa0, 0x78, - 0x7c, 0xf0, 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x32, - 0x1c, 0xa0, 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x9f, - 0x12, 0x4c, 0x71, 0xb6, 0x43, 0x69, 0x2a, 0x02, 0xdb, 0xb6, 0x4f, 0xb9, 0xc2, 0xf1, 0xe0, 0xc3, - 0x71, 0xbb, 0x39, 0x7f, 0x65, 0xe0, 0x3f, 0x24, 0x78, 0x21, 0x1e, 0x24, 0xed, 0x26, 0xe5, 0x8d, - 0x70, 0x7d, 0xe0, 0x52, 0x3a, 0x89, 0x9e, 0xad, 0x4a, 0xf0, 0xb3, 0x0e, 0x98, 0x88, 0xa3, 0xf5, - 0x3d, 0xac, 0x15, 0xc8, 0xbf, 0x03, 0x83, 0xf8, 0x42, 0x8e, 0x6e, 0x1a, 0xa5, 0x32, 0xaa, 0x3a, - 0x2a, 0x5e, 0xdd, 0xf7, 0x9d, 0x39, 0x1a, 0x7b, 0xb3, 0x89, 0x62, 0x2c, 0xb9, 0x08, 0xd4, 0x40, - 0x06, 0xea, 0xfe, 0x46, 0xf9, 0x0a, 0x64, 0xeb, 0xea, 0x96, 0xd9, 0x70, 0x5a, 0x39, 0xed, 0xa7, - 0x28, 0x3e, 0x95, 0xff, 0x0f, 0x59, 0x03, 0x73, 0x76, 0xb6, 0xdf, 0xaa, 0xd9, 0x27, 0xae, 0x85, - 0xe3, 0x19, 0x54, 0xfe, 0x4b, 0xc2, 0x8b, 0xe1, 0x78, 0xa8, 0xe7, 0xdb, 0xf8, 0x7f, 0x45, 0x2b, - 0x91, 0x38, 0xd3, 0x84, 0x94, 0xf5, 0xdd, 0xed, 0x3c, 0x59, 0x77, 0x4d, 0xb5, 0x37, 0xb1, 0xa9, - 0x75, 0xd1, 0xee, 0x15, 0xd5, 0xde, 0xf4, 0x04, 0xca, 0x36, 0x05, 0x4a, 0xdc, 0xd3, 0x71, 0x05, - 0x54, 0x14, 0x52, 0x24, 0xe2, 0xf5, 0xb1, 0x4d, 0xea, 0x1f, 0x77, 0xe0, 0x7b, 0xb2, 0xa2, 0xcd, - 0xce, 0xf7, 0x48, 0x49, 0x97, 0x38, 0x4a, 0x3a, 0x18, 0x55, 0x52, 0x54, 0x46, 0xe5, 0x10, 0x2e, - 0x10, 0x89, 0xba, 0x99, 0xaa, 0x3e, 0x90, 0xa0, 0x97, 0x2d, 0x83, 0x83, 0x0a, 0x90, 0x92, 0x14, - 0xd0, 0x91, 0xa8, 0x80, 0x4c, 0xbc, 0x02, 0x3a, 0x05, 0x0a, 0x68, 0x96, 0x2f, 0x94, 0x7f, 0x23, - 0xa9, 0xd6, 0xb7, 0x79, 0x0d, 0xaf, 0x18, 0x76, 0x6e, 0xdf, 0x9d, 0x98, 0x62, 0x63, 0xb8, 0x52, - 0x6e, 0xe1, 0x0c, 0x1b, 0x03, 0xd1, 0xd2, 0x8e, 0xfb, 0x4f, 0x3a, 0x60, 0xef, 0x8a, 0x5d, 0x59, - 0x65, 0xaa, 0xbe, 0x6b, 0xa9, 0x86, 0xbd, 0x1e, 0x63, 0xcb, 0xa7, 0x60, 0xc4, 0x36, 0x1b, 0x96, - 0x86, 0x4a, 0xbc, 0x49, 0x93, 0x49, 0xdf, 0xaa, 0x7f, 0xea, 0xf0, 0x7a, 0xdc, 0x76, 0x74, 0x83, - 0x9c, 0x76, 0xf3, 0x8c, 0x7d, 0xd4, 0x07, 0xb0, 0xca, 0xbf, 0xef, 0xd9, 0xd9, 0xda, 0x7d, 0xcf, - 0xd9, 0x90, 0x7e, 0xa7, 0xfc, 0xfa, 0x8d, 0x8a, 0xab, 0x4c, 0xe3, 0x32, 0x7a, 0xb4, 0x83, 0x19, - 0xf4, 0x7b, 0x1d, 0xf8, 0x4e, 0xe8, 0x8d, 0x87, 0x0e, 0xb2, 0x0c, 0xb5, 0xfa, 0x9b, 0xa2, 0xa7, - 0x13, 0x21, 0x3d, 0x05, 0xde, 0x09, 0x84, 0x85, 0xa5, 0xef, 0x04, 0xc2, 0xcd, 0x4c, 0x47, 0x5f, - 0x4b, 0xb8, 0x7e, 0x73, 0x4b, 0xbf, 0xd7, 0xd0, 0xf1, 0x8d, 0x66, 0xba, 0x60, 0x78, 0xb6, 0xfa, - 0x4d, 0x20, 0x78, 0x64, 0x42, 0xc1, 0x83, 0x2d, 0x00, 0x3a, 0xdb, 0x5b, 0x00, 0x48, 0xde, 0x02, - 0xe0, 0x64, 0xdc, 0xae, 0x35, 0x22, 0x91, 0x32, 0x85, 0x37, 0xad, 0x91, 0x76, 0xa6, 0x8a, 0x8f, - 0x48, 0x32, 0xbd, 0x51, 0x43, 0x56, 0x05, 0x19, 0xda, 0xd6, 0x2a, 0xbe, 0x9f, 0x41, 0x5f, 0x4c, - 0xec, 0x98, 0x3a, 0x0a, 0xa7, 0xe3, 0x12, 0x1f, 0x97, 0x19, 0x9a, 0xf8, 0xb8, 0x7d, 0xcd, 0xbb, - 0xe8, 0x1d, 0xf8, 0x01, 0xc8, 0xb2, 0xe1, 0x6e, 0x8a, 0x6c, 0x26, 0x2d, 0x39, 0x32, 0x7e, 0x4e, - 0x5c, 0x20, 0xa0, 0x97, 0xce, 0x90, 0x99, 0x5c, 0x61, 0xfe, 0xd1, 0xca, 0x62, 0x95, 0xfa, 0xc8, - 0x99, 0x90, 0x52, 0x95, 0xe0, 0x79, 0x30, 0x4f, 0x27, 0xf4, 0xe1, 0x02, 0xbf, 0x33, 0xac, 0xd6, - 0x25, 0xf4, 0x83, 0x5a, 0xc3, 0x6a, 0xe5, 0xeb, 0x84, 0xaa, 0x95, 0xdf, 0xc9, 0xd4, 0xfa, 0xb9, - 0x84, 0x9d, 0xf3, 0x8e, 0xa5, 0xdf, 0xd7, 0xab, 0xa8, 0x82, 0xca, 0x37, 0x1e, 0x22, 0xad, 0xe1, - 0xa0, 0x45, 0xd3, 0x70, 0x2c, 0x55, 0x13, 0xfb, 0xdf, 0x08, 0x74, 0xad, 0x37, 0x8c, 0xb2, 0x4d, - 0x55, 0x49, 0x3e, 0xe4, 0xa3, 0x30, 0xa4, 0x51, 0xcc, 0x92, 0x4a, 0xde, 0x8d, 0x50, 0xa5, 0xed, - 0xf6, 0xda, 0xe9, 0x73, 0x12, 0x59, 0xa6, 0x4b, 0x03, 0xa2, 0x27, 0x92, 0xed, 0xaf, 0x0a, 0x0e, - 0xda, 0x0f, 0xf9, 0xc5, 0x15, 0xf2, 0xea, 0x06, 0x92, 0x83, 0x71, 0x00, 0x2c, 0xdd, 0xbf, 0x0d, - 0x80, 0xf9, 0x2d, 0x95, 0xf5, 0xf5, 0x75, 0x9c, 0xf1, 0x63, 0xd3, 0xc0, 0x29, 0x77, 0xaa, 0x3e, - 0xfe, 0xc9, 0xf4, 0x91, 0x8a, 0xee, 0x6c, 0x34, 0xd6, 0x66, 0x35, 0xb3, 0x46, 0x1f, 0x0e, 0xd2, - 0xff, 0x4e, 0xda, 0xe5, 0xcd, 0x39, 0x67, 0xab, 0x8e, 0x6c, 0x8c, 0x60, 0x17, 0x7b, 0x31, 0xf9, - 0x25, 0x7d, 0x7d, 0xbd, 0x30, 0xcc, 0x91, 0x49, 0x79, 0x0b, 0x86, 0x56, 0xec, 0x4a, 0x11, 0x3d, - 0x50, 0xad, 0xb2, 0x7d, 0xbb, 0xee, 0xdc, 0x6e, 0x08, 0x35, 0x4d, 0xea, 0x84, 0x1c, 0xa5, 0x8c, - 0xf9, 0x95, 0x12, 0x20, 0xa5, 0xe4, 0x71, 0x40, 0x0d, 0xb4, 0xf9, 0xdf, 0xca, 0xec, 0xc5, 0x9d, - 0x5a, 0x55, 0xd5, 0x6b, 0xb7, 0x4c, 0x6d, 0x13, 0x95, 0x6f, 0xe2, 0xc9, 0x13, 0x3b, 0xd1, 0x70, - 0x15, 0x83, 0xcd, 0x13, 0x4b, 0xbf, 0xd3, 0x58, 0x7b, 0x05, 0x6d, 0xe1, 0x89, 0xef, 0x2f, 0xf2, - 0xba, 0xe4, 0x09, 0xe8, 0xb5, 0xf5, 0x8a, 0xa1, 0x3a, 0x0d, 0x8b, 0x6c, 0xc2, 0xfb, 0x8b, 0xcd, - 0x86, 0xf8, 0xf5, 0x46, 0x94, 0x2f, 0xba, 0xde, 0x88, 0x76, 0x30, 0x91, 0xde, 0x25, 0xcf, 0x66, - 0x56, 0xf5, 0x8a, 0x81, 0x97, 0xd0, 0xab, 0x90, 0x75, 0xff, 0xa6, 0x82, 0xf4, 0x2f, 0x5c, 0xf9, - 0xe6, 0xe9, 0x74, 0xd6, 0xc6, 0x2d, 0xbf, 0x7c, 0x3a, 0x7d, 0x32, 0xc5, 0x2c, 0xce, 0x6b, 0x1a, - 0xb5, 0xd3, 0x22, 0x25, 0x25, 0x4f, 0x40, 0xe7, 0x12, 0x59, 0xca, 0xba, 0x24, 0x7b, 0xbe, 0x79, - 0x3a, 0x8d, 0x6d, 0xb6, 0x88, 0x5b, 0x95, 0x87, 0xf8, 0x01, 0x12, 0xe6, 0xc0, 0xd4, 0xe4, 0x43, - 0x44, 0x7e, 0x72, 0xd9, 0x8b, 0xd4, 0x3e, 0x30, 0x82, 0xfb, 0x5d, 0xec, 0x71, 0xbb, 0xf0, 0x75, - 0xae, 0x45, 0xe8, 0xba, 0xaf, 0x56, 0x1b, 0x88, 0xee, 0x5c, 0x0f, 0xc7, 0x25, 0x64, 0x9f, 0x7c, - 0xde, 0x6e, 0x1c, 0xe3, 0x2a, 0x7f, 0x9e, 0xc1, 0x7e, 0x3e, 0x5f, 0xae, 0xe9, 0x06, 0xa9, 0x09, - 0x73, 0xb6, 0xd4, 0xed, 0x6d, 0xb7, 0x5e, 0x85, 0x21, 0xdf, 0x3d, 0x4a, 0x52, 0x8b, 0x69, 0x96, - 0x54, 0xa4, 0xa4, 0xe0, 0xb5, 0xbb, 0x89, 0x8c, 0xaf, 0x37, 0x09, 0xaf, 0x72, 0x76, 0xb6, 0x7e, - 0x95, 0xb3, 0x4b, 0x7c, 0x95, 0xf3, 0x3a, 0x64, 0x6d, 0x47, 0x75, 0x1a, 0x36, 0xbd, 0x66, 0x77, - 0x24, 0x56, 0xad, 0x58, 0xd6, 0x55, 0x0c, 0x5f, 0xa4, 0x78, 0x85, 0x42, 0x5c, 0x71, 0x23, 0x5e, - 0xd1, 0xca, 0x71, 0x5c, 0xdb, 0x88, 0x07, 0x62, 0x86, 0xfb, 0x0f, 0xe4, 0x91, 0xd4, 0x3c, 0x79, - 0x00, 0xf7, 0x0e, 0x5a, 0x75, 0xd4, 0x4d, 0xf4, 0x92, 0xa5, 0x1a, 0x8e, 0xd8, 0x1b, 0x6f, 0x42, - 0xb6, 0x82, 0x21, 0xe8, 0xa6, 0x6a, 0x36, 0x4e, 0x3c, 0x4c, 0xcb, 0x23, 0x8f, 0x55, 0x5b, 0xa4, - 0xd8, 0x85, 0x53, 0x71, 0x2f, 0xa4, 0x78, 0x1c, 0x29, 0x07, 0xf0, 0xd3, 0x08, 0x5e, 0x17, 0x13, - 0x68, 0x0b, 0xc7, 0x96, 0x79, 0x97, 0x1b, 0xd5, 0xf1, 0x41, 0x08, 0xa5, 0xc9, 0x41, 0x37, 0xe6, - 0x87, 0x5d, 0xcb, 0xf4, 0x3e, 0xe3, 0xa3, 0x44, 0x74, 0x04, 0x1a, 0x25, 0xa2, 0x1d, 0x1e, 0x6f, - 0x67, 0x9e, 0x1c, 0x86, 0xcc, 0x8a, 0x5d, 0x91, 0x55, 0xe8, 0xf6, 0x1e, 0x0a, 0xbe, 0x90, 0xe0, - 0x71, 0x14, 0x2e, 0x3f, 0x9b, 0x0e, 0x8e, 0xe5, 0x97, 0x32, 0xf4, 0xb0, 0x37, 0x7c, 0x49, 0x5e, - 0xed, 0x01, 0xe6, 0xe7, 0x52, 0x02, 0xb2, 0x51, 0xfe, 0x4a, 0x82, 0x51, 0xd1, 0xe3, 0xa6, 0x0b, - 0x09, 0xc4, 0x04, 0x78, 0xf9, 0x17, 0xdb, 0xc3, 0x63, 0x3c, 0x7d, 0x28, 0xc1, 0x44, 0xec, 0xe3, - 0x99, 0x2b, 0xe9, 0x06, 0xe0, 0x22, 0xe7, 0x17, 0x9f, 0x01, 0x99, 0xb1, 0xf8, 0x8f, 0x12, 0xec, - 0x4f, 0xbc, 0x45, 0x7c, 0x2d, 0xdd, 0x48, 0x42, 0x02, 0xf9, 0x97, 0x9e, 0x91, 0x00, 0x63, 0xf7, - 0x91, 0x04, 0x23, 0xdc, 0x57, 0x94, 0x67, 0x13, 0x46, 0xe0, 0x21, 0xe5, 0xaf, 0xb4, 0x81, 0xc4, - 0x58, 0xf9, 0x5b, 0x09, 0xf2, 0x31, 0x2f, 0x18, 0x2f, 0x27, 0xd0, 0x16, 0xa3, 0xe6, 0xe7, 0xdb, - 0x46, 0x65, 0xcc, 0xbd, 0x2f, 0xc1, 0x5e, 0xfe, 0xcd, 0xd0, 0x73, 0xa9, 0x65, 0xf6, 0x61, 0xe5, - 0x7f, 0xab, 0x1d, 0x2c, 0xc6, 0xcd, 0x16, 0xec, 0x0e, 0x5f, 0x48, 0x4a, 0x0a, 0x22, 0x21, 0xf8, - 0xfc, 0x85, 0xd6, 0xe0, 0x03, 0x8a, 0xe0, 0xdf, 0x0d, 0x3a, 0x97, 0x4a, 0xcb, 0x21, 0xac, 0x44, - 0x45, 0xc4, 0xdf, 0xed, 0xf9, 0x23, 0xd8, 0x13, 0xbd, 0xa3, 0x72, 0x2a, 0x0d, 0x49, 0x3f, 0x46, - 0xfe, 0x52, 0xab, 0x18, 0x8c, 0x81, 0xbf, 0x91, 0x60, 0x4c, 0xbc, 0xbd, 0x49, 0xa2, 0x2b, 0xc4, - 0xcc, 0x5f, 0x6f, 0x17, 0x33, 0xe0, 0x4e, 0x31, 0x97, 0x51, 0x2f, 0xa7, 0x32, 0x40, 0x1e, 0x6a, - 0xa2, 0x3b, 0xa5, 0xb8, 0x44, 0xea, 0x46, 0xc9, 0xc4, 0xab, 0x8d, 0xd7, 0xd2, 0xbb, 0x2d, 0x97, - 0x40, 0x62, 0x94, 0x4c, 0x7d, 0x1f, 0xf1, 0x03, 0x09, 0xc6, 0xe3, 0xce, 0x82, 0x0b, 0x2d, 0x6a, - 0xc4, 0x1f, 0x09, 0x16, 0xda, 0xc7, 0x0d, 0x46, 0x27, 0xee, 0x69, 0xd1, 0xb9, 0x54, 0x6e, 0x1e, - 0xc2, 0x4a, 0x8e, 0x4e, 0x71, 0x87, 0x33, 0x58, 0x5b, 0x71, 0xe5, 0xfc, 0x42, 0x7a, 0x97, 0x0f, - 0xe3, 0x26, 0x6a, 0x2b, 0x4d, 0x39, 0xde, 0x97, 0xa2, 0xc5, 0x6f, 0xf4, 0x52, 0xa6, 0x68, 0x21, - 0x81, 0xb4, 0x29, 0x3a, 0xf1, 0x69, 0x92, 0xfc, 0x77, 0x12, 0x4c, 0xc6, 0x5f, 0x99, 0x4e, 0x97, - 0x4c, 0x04, 0xd8, 0xf9, 0xa5, 0x67, 0xc1, 0x66, 0x5c, 0xfe, 0xbd, 0x04, 0x53, 0x09, 0x47, 0xc7, - 0x57, 0x5b, 0x1f, 0xc8, 0xef, 0x28, 0x37, 0x9e, 0x09, 0x9d, 0x31, 0xfa, 0xd7, 0x12, 0xe4, 0x84, - 0xe7, 0x86, 0x17, 0x53, 0x19, 0x7e, 0x14, 0x31, 0x7f, 0xad, 0x4d, 0xc4, 0x80, 0xfe, 0x12, 0xae, - 0x9f, 0x5e, 0x4d, 0x6f, 0xfb, 0x1c, 0xf4, 0x44, 0xfd, 0xa5, 0xbc, 0x3e, 0xfa, 0x9e, 0x04, 0x32, - 0xe7, 0x94, 0xea, 0x74, 0x52, 0x79, 0x21, 0x82, 0x92, 0xbf, 0xdc, 0x32, 0x0a, 0x63, 0xe2, 0x0f, - 0x61, 0x28, 0x72, 0xfe, 0x93, 0xb4, 0xc3, 0x09, 0x23, 0xe4, 0x2f, 0xb6, 0x88, 0xe0, 0x5f, 0x75, - 0x44, 0x4f, 0x56, 0x92, 0x56, 0x1d, 0x11, 0x8c, 0xc4, 0x55, 0x87, 0xf0, 0x4c, 0x03, 0xc7, 0x7b, - 0xfe, 0x81, 0x46, 0x52, 0xbc, 0xe7, 0x62, 0x25, 0xc6, 0xfb, 0xd8, 0x33, 0x09, 0xf9, 0x2f, 0x24, - 0xd8, 0x27, 0x38, 0x90, 0x38, 0x9f, 0x18, 0x04, 0x79, 0x68, 0xf9, 0xab, 0x6d, 0xa1, 0x05, 0x18, - 0x12, 0x94, 0xf2, 0xcf, 0x27, 0xee, 0xb5, 0xdb, 0x62, 0x28, 0xbe, 0x0e, 0x2e, 0xdb, 0x30, 0x10, - 0xac, 0xc6, 0x9e, 0x48, 0xa0, 0x17, 0x80, 0xce, 0x9f, 0x6b, 0x05, 0x3a, 0x10, 0x51, 0x12, 0xea, - 0x76, 0x49, 0x62, 0xc5, 0xa3, 0x27, 0x46, 0x94, 0x74, 0x75, 0x2a, 0xb9, 0x0e, 0xfd, 0x81, 0x5f, - 0x8c, 0x3a, 0x9e, 0x40, 0xd6, 0x0f, 0x9c, 0x3f, 0xdb, 0x02, 0xb0, 0x3f, 0x7c, 0x44, 0x7e, 0x0b, - 0x6f, 0x2e, 0x15, 0xa1, 0x26, 0x42, 0x62, 0xf8, 0x10, 0xfd, 0x88, 0x1b, 0x36, 0x4f, 0xc1, 0x2f, - 0xb8, 0x9d, 0x4f, 0x45, 0x33, 0x8c, 0x96, 0x68, 0x9e, 0xf1, 0x3f, 0xdb, 0x85, 0x8b, 0x00, 0xdc, - 0x2a, 0x61, 0x92, 0x72, 0x79, 0x48, 0x89, 0x45, 0x80, 0xb8, 0x12, 0x1f, 0xce, 0x2e, 0x9c, 0x02, - 0x5f, 0x52, 0x76, 0x89, 0xa2, 0x24, 0x66, 0x17, 0x71, 0x2d, 0x2f, 0xdf, 0xf5, 0xee, 0x57, 0x8f, - 0x8f, 0x49, 0x0b, 0x1b, 0x9f, 0x7d, 0x31, 0x25, 0x3d, 0xf9, 0x62, 0x4a, 0xfa, 0xe9, 0x17, 0x53, - 0xd2, 0x5f, 0x7e, 0x39, 0xb5, 0xeb, 0xc9, 0x97, 0x53, 0xbb, 0x7e, 0xf4, 0xe5, 0xd4, 0xae, 0xdf, - 0x7f, 0xd5, 0x57, 0xe4, 0x5f, 0xf6, 0x46, 0xb9, 0xa5, 0xae, 0xd9, 0x73, 0x6c, 0xcc, 0x93, 0x9a, - 0x69, 0x21, 0xff, 0xe7, 0x86, 0xaa, 0x1b, 0x73, 0x35, 0xb3, 0xdc, 0xa8, 0x22, 0xbb, 0xf9, 0x53, - 0x8f, 0xf8, 0x40, 0x60, 0x2d, 0x8b, 0x7f, 0xa6, 0xf1, 0xec, 0xaf, 0x03, 0x00, 0x00, 0xff, 0xff, - 0xcf, 0xe6, 0x59, 0x86, 0xe8, 0x52, 0x00, 0x00, + 0x76, 0x6a, 0x0d, 0x39, 0x24, 0x1f, 0x49, 0x7d, 0x9a, 0x94, 0x34, 0x1a, 0xfe, 0xa4, 0xa6, 0x65, + 0xfd, 0x49, 0x4b, 0xb6, 0x6c, 0x6b, 0x14, 0x59, 0xe2, 0x47, 0xf2, 0x32, 0x2b, 0x5a, 0xda, 0xa1, + 0x36, 0xd9, 0x0d, 0x76, 0x33, 0x28, 0x76, 0x17, 0x87, 0x6d, 0xce, 0x74, 0x8f, 0xbb, 0x7b, 0x24, + 0xd1, 0x08, 0x90, 0x8d, 0x0f, 0x81, 0x92, 0x0d, 0x82, 0x04, 0x08, 0x10, 0x20, 0xc0, 0x02, 0x06, + 0x02, 0x64, 0x81, 0x4d, 0x90, 0x78, 0x83, 0x20, 0xd8, 0x43, 0x12, 0x04, 0x41, 0x0e, 0x8b, 0x3d, + 0x39, 0x01, 0x02, 0x04, 0x39, 0x28, 0x81, 0x7d, 0xf0, 0xc2, 0xa7, 0x20, 0x97, 0x00, 0xc9, 0x25, + 0xe8, 0xaa, 0xea, 0xea, 0x5f, 0x55, 0x77, 0xcf, 0x88, 0xdc, 0x95, 0x03, 0x5f, 0x24, 0x76, 0xd5, + 0x7b, 0xaf, 0xde, 0x7b, 0xf5, 0x3e, 0x55, 0xaf, 0xaa, 0x06, 0xe6, 0x4d, 0xeb, 0x5d, 0xac, 0x7b, + 0xe6, 0x23, 0xbc, 0x88, 0x9f, 0xe8, 0xdb, 0xc8, 0x6a, 0xe2, 0xc5, 0x47, 0x57, 0x36, 0xb1, 0x87, + 0xae, 0x2c, 0x7a, 0x4f, 0x16, 0x3a, 0x8e, 0xed, 0xd9, 0x6a, 0x95, 0x03, 0x2d, 0x04, 0x40, 0x0b, + 0x0c, 0xa8, 0x3a, 0xab, 0xdb, 0x6e, 0xdb, 0x76, 0x17, 0x37, 0x91, 0x1b, 0x62, 0xea, 0xb6, 0x69, + 0x51, 0xdc, 0xea, 0x02, 0xeb, 0x37, 0x4c, 0xd7, 0x73, 0xcc, 0xcd, 0xae, 0x67, 0xda, 0x16, 0x87, + 0x8b, 0x36, 0x32, 0xf8, 0x13, 0x0c, 0xbe, 0xed, 0x36, 0x17, 0x1f, 0x5d, 0xf1, 0xff, 0x63, 0x1d, + 0x27, 0x69, 0x47, 0x83, 0x7c, 0x2d, 0xd2, 0x0f, 0xd6, 0x35, 0xd9, 0xb4, 0x9b, 0x36, 0x6d, 0xf7, + 0xff, 0x62, 0xad, 0xe7, 0x33, 0x44, 0xe3, 0x62, 0xe4, 0x83, 0x76, 0x1c, 0xbb, 0x63, 0xbb, 0xa8, + 0xc5, 0x40, 0xcf, 0x84, 0xa0, 0xb6, 0x83, 0xf4, 0x56, 0x08, 0x48, 0x3f, 0x19, 0xd8, 0x51, 0xd4, + 0x36, 0x2d, 0x7b, 0x91, 0xfc, 0x4b, 0x9b, 0xb4, 0xef, 0x97, 0x60, 0x62, 0xdd, 0x6d, 0x7e, 0xbd, + 0x63, 0x20, 0x0f, 0x6f, 0x74, 0x6c, 0x6f, 0x1d, 0x39, 0x3b, 0xd8, 0x53, 0x27, 0x61, 0x10, 0x19, + 0x6d, 0xd3, 0xaa, 0x28, 0xa7, 0x94, 0x73, 0x23, 0x75, 0xfa, 0xa1, 0x4e, 0xc1, 0x48, 0x9b, 0xf4, + 0x37, 0x4c, 0xa3, 0x72, 0x90, 0xf4, 0x0c, 0xd3, 0x86, 0x35, 0x43, 0x9d, 0x01, 0xb0, 0xf0, 0xe3, + 0x86, 0x67, 0xea, 0x3b, 0xd8, 0xa9, 0x94, 0x48, 0xef, 0x88, 0x85, 0x1f, 0x3f, 0x24, 0x0d, 0xea, + 0x37, 0xe1, 0x84, 0xdf, 0xdd, 0x36, 0xad, 0x46, 0xc7, 0x31, 0x75, 0x4c, 0x00, 0x1b, 0xae, 0xf9, + 0x3e, 0xae, 0x0c, 0xf8, 0xb0, 0xcb, 0xf3, 0x3f, 0x7e, 0x36, 0x77, 0xe0, 0xdf, 0x9e, 0xcd, 0x4d, + 0x51, 0x35, 0xba, 0xc6, 0xce, 0x82, 0x69, 0x2f, 0xb6, 0x91, 0xb7, 0xbd, 0x70, 0x0f, 0x37, 0x91, + 0xbe, 0xbb, 0x8a, 0xf5, 0xfa, 0x84, 0x85, 0x1f, 0xaf, 0x9b, 0xd6, 0x03, 0x9f, 0x82, 0x4f, 0x78, + 0xc3, 0x7c, 0x1f, 0xab, 0x0d, 0xa8, 0x06, 0xa4, 0xdf, 0xeb, 0x22, 0xcb, 0x33, 0xbd, 0xdd, 0x08, + 0xf5, 0xc1, 0xe2, 0xd4, 0x8f, 0x53, 0xea, 0x5f, 0x63, 0x44, 0xf8, 0x00, 0xeb, 0x70, 0x24, 0x18, + 0xc0, 0xb2, 0x7d, 0xbb, 0x40, 0xad, 0x4a, 0xb9, 0x38, 0xd9, 0x43, 0x94, 0xec, 0x3b, 0x0c, 0xb5, + 0xf6, 0xea, 0xd3, 0x0f, 0xe7, 0x0e, 0xfc, 0xf4, 0xc3, 0xb9, 0x03, 0x1f, 0x7c, 0xf6, 0xd1, 0x05, + 0xaa, 0xda, 0xdf, 0xfe, 0xec, 0xa3, 0x0b, 0xd3, 0x7c, 0x9a, 0x05, 0x33, 0xa2, 0xcd, 0xc0, 0x94, + 0xa0, 0xb9, 0x8e, 0xdd, 0x8e, 0x6d, 0xb9, 0x58, 0xfb, 0xef, 0x01, 0x38, 0xc9, 0xfb, 0x57, 0xb1, + 0x63, 0x3e, 0x42, 0xbe, 0x3d, 0x7c, 0x39, 0x9d, 0xfb, 0x3e, 0x9d, 0xea, 0xb7, 0xa0, 0xe2, 0x93, + 0x33, 0x2d, 0xd3, 0x33, 0x51, 0xab, 0xd1, 0x46, 0x4e, 0xd3, 0xb4, 0x1a, 0x0e, 0xf2, 0x4c, 0xbb, + 0x32, 0x54, 0x9c, 0xec, 0x31, 0x0b, 0x3f, 0x5e, 0xa3, 0x34, 0xd6, 0x09, 0x89, 0xba, 0x4f, 0x41, + 0x35, 0x60, 0x9a, 0x30, 0x8b, 0x4c, 0xcb, 0xc3, 0x16, 0xb2, 0x74, 0x1c, 0x1f, 0x61, 0xb8, 0xf8, + 0x08, 0x27, 0x7d, 0xc6, 0x43, 0x3a, 0x91, 0x51, 0x6a, 0xd7, 0xc5, 0x26, 0xa9, 0xa5, 0x4d, 0x32, + 0x69, 0x5b, 0xda, 0x3c, 0x9c, 0x96, 0x76, 0x72, 0xf3, 0xfc, 0x91, 0x02, 0x87, 0x39, 0xd4, 0x03, + 0xe4, 0xa0, 0xb6, 0xab, 0xbe, 0x0e, 0x23, 0xa8, 0xeb, 0x6d, 0xdb, 0x8e, 0xe9, 0xed, 0x52, 0xc3, + 0x5c, 0xae, 0xfc, 0xf3, 0x5f, 0x5d, 0x9e, 0x64, 0x61, 0x74, 0xc9, 0x30, 0x1c, 0xec, 0xba, 0x1b, + 0x9e, 0x63, 0x5a, 0xcd, 0x7a, 0x08, 0xaa, 0xde, 0x86, 0x72, 0x87, 0x50, 0x20, 0x36, 0x3b, 0x7a, + 0x55, 0x5b, 0x90, 0xa7, 0x82, 0x05, 0x3a, 0xd6, 0xf2, 0x80, 0xaf, 0x9f, 0x3a, 0xc3, 0xab, 0x5d, + 0xf4, 0xa5, 0x0c, 0x29, 0xfa, 0x92, 0x56, 0xd2, 0x92, 0x52, 0x54, 0xed, 0x24, 0x9c, 0x48, 0x34, + 0x71, 0xa9, 0xfe, 0x42, 0x01, 0x58, 0x77, 0x9b, 0xab, 0xb8, 0x63, 0xbb, 0xa6, 0xa7, 0x1e, 0x87, + 0xb2, 0x8b, 0x2d, 0x03, 0x3b, 0xcc, 0xcd, 0xd8, 0x97, 0x3a, 0x0f, 0xe3, 0x6e, 0x77, 0x13, 0xe9, + 0xba, 0xdd, 0xb5, 0x22, 0xbe, 0x36, 0x16, 0x36, 0xae, 0x19, 0xea, 0x1b, 0x50, 0x46, 0x6d, 0xff, + 0x6f, 0xe2, 0x6b, 0xa3, 0x57, 0x4f, 0xb2, 0x24, 0xb5, 0xe0, 0x27, 0x31, 0x2e, 0xce, 0x8a, 0x6d, + 0x5a, 0x81, 0x30, 0x14, 0xbc, 0x76, 0x31, 0x3a, 0x75, 0x6c, 0x48, 0x5f, 0xa2, 0x89, 0xa8, 0x44, + 0x8c, 0x45, 0x6d, 0x12, 0xd4, 0xf0, 0x8b, 0xcb, 0xf1, 0x43, 0x05, 0x46, 0xd7, 0xdd, 0xe6, 0x2f, + 0x9b, 0xde, 0xb6, 0xe1, 0xa0, 0xc7, 0x3f, 0x27, 0x41, 0x2e, 0x49, 0x04, 0x99, 0x8c, 0x0a, 0x12, + 0xf0, 0xa8, 0x1d, 0x23, 0x89, 0x2b, 0xf8, 0xe4, 0xa2, 0xfc, 0xb9, 0x42, 0xa6, 0x6b, 0xc5, 0xc1, + 0x2c, 0x4e, 0xde, 0x33, 0xdb, 0xa6, 0x77, 0xdf, 0xf1, 0xd9, 0x97, 0x89, 0xb5, 0x04, 0x83, 0xb6, + 0x0f, 0xc0, 0xec, 0xe9, 0x4c, 0x96, 0x3d, 0xf9, 0x24, 0x09, 0x35, 0xc6, 0x3c, 0xc5, 0xac, 0xbd, + 0x29, 0xe1, 0xfd, 0x54, 0x94, 0x77, 0x11, 0x53, 0xda, 0xb7, 0x60, 0x4e, 0xd2, 0x15, 0xc8, 0xe4, + 0x87, 0x62, 0x32, 0x4a, 0x63, 0x1b, 0xb9, 0xdb, 0x8c, 0xf7, 0x11, 0xd2, 0xf2, 0x15, 0xe4, 0x6e, + 0xab, 0x47, 0xa0, 0xa4, 0xf3, 0xb9, 0xf0, 0xff, 0xac, 0x0d, 0x07, 0xdc, 0x68, 0x7f, 0xa3, 0xc0, + 0xcc, 0xba, 0xdb, 0x5c, 0x46, 0x9e, 0xbe, 0x2d, 0x1a, 0xc3, 0x95, 0x2a, 0x65, 0x05, 0xca, 0x64, + 0x08, 0xdf, 0xcb, 0x4a, 0xbd, 0x6a, 0x85, 0xa1, 0xd6, 0xde, 0x92, 0xa8, 0xe5, 0xe5, 0xa8, 0x5a, + 0xe4, 0xcc, 0x69, 0x7f, 0xa9, 0xc0, 0x99, 0x4c, 0x08, 0xae, 0xa3, 0xd3, 0x30, 0x16, 0xea, 0x08, + 0xbb, 0x15, 0xe5, 0x54, 0xe9, 0xdc, 0x48, 0x7d, 0x94, 0x6b, 0x09, 0xbb, 0xea, 0x02, 0x4c, 0xe8, + 0x84, 0x86, 0xd1, 0xa0, 0xec, 0x35, 0x74, 0xd3, 0xa0, 0xe2, 0x8d, 0xd4, 0x8f, 0xb2, 0x2e, 0x4a, + 0x76, 0xc5, 0x34, 0x5c, 0xf5, 0x12, 0xa8, 0x5b, 0xc8, 0x6c, 0x25, 0xc0, 0x4b, 0x04, 0xfc, 0x08, + 0xed, 0x09, 0xa1, 0x23, 0x3a, 0xff, 0xee, 0x00, 0x54, 0xd7, 0xdd, 0xe6, 0x9a, 0xe5, 0x7a, 0xc8, + 0xf2, 0xc2, 0x5c, 0x7d, 0x0f, 0x75, 0x2d, 0x7d, 0x5b, 0xaa, 0xf0, 0xe3, 0x50, 0x66, 0xc9, 0x96, + 0xce, 0x24, 0xfb, 0xf2, 0x67, 0xdf, 0xf7, 0x9c, 0x86, 0x81, 0x2d, 0xbb, 0x1d, 0x24, 0x62, 0xbf, + 0x65, 0xd5, 0x6f, 0x50, 0xe7, 0x60, 0xf4, 0xbd, 0xae, 0xed, 0x05, 0xfd, 0x24, 0xf9, 0xd6, 0x81, + 0x34, 0x51, 0x80, 0x3a, 0x4c, 0x88, 0xb2, 0x74, 0x0f, 0x79, 0xf4, 0x48, 0x3b, 0x99, 0xa2, 0xbf, + 0x01, 0xc7, 0x25, 0xe9, 0xb9, 0x87, 0x3c, 0xea, 0xb3, 0x95, 0xca, 0xcd, 0x77, 0x61, 0x2c, 0x96, + 0x97, 0x7b, 0x48, 0xa0, 0xa3, 0xed, 0x48, 0x52, 0x9e, 0x87, 0x71, 0xa6, 0x35, 0xdd, 0x6c, 0xa3, + 0x96, 0x4b, 0xf2, 0xe4, 0x78, 0x7d, 0x8c, 0x2a, 0x8e, 0xb6, 0xa9, 0x67, 0xe0, 0x50, 0xa0, 0x3b, + 0x06, 0x35, 0x42, 0xa0, 0xc6, 0x99, 0xfa, 0x68, 0x63, 0xed, 0x86, 0xc4, 0x8a, 0xe7, 0xa3, 0x56, + 0x2c, 0x99, 0x6e, 0xed, 0x25, 0xd0, 0xe4, 0xbd, 0x61, 0x04, 0x1e, 0x22, 0x61, 0x80, 0x81, 0x3d, + 0xc0, 0x4e, 0x07, 0x7b, 0x5d, 0xb2, 0x10, 0xe8, 0xdf, 0x70, 0x12, 0x96, 0x51, 0x4a, 0x59, 0xc6, + 0x1c, 0x8c, 0xd2, 0xfd, 0x41, 0xc3, 0xd7, 0x4a, 0x60, 0x3a, 0xb4, 0x69, 0x19, 0x05, 0x4e, 0x45, + 0x00, 0x08, 0x16, 0xb5, 0x99, 0x3a, 0x43, 0xfa, 0x9a, 0xdf, 0xe4, 0x3b, 0x15, 0x03, 0x71, 0x75, + 0xd4, 0xc2, 0x8d, 0x2d, 0xa4, 0x7b, 0xb6, 0x43, 0xcc, 0x60, 0xbc, 0x7e, 0x94, 0x76, 0x6d, 0xf8, + 0x3d, 0x77, 0x49, 0x87, 0x7a, 0x87, 0x8f, 0xe9, 0xed, 0x76, 0x30, 0x99, 0xde, 0x43, 0x57, 0x5f, + 0x8a, 0xc4, 0x16, 0xb6, 0x63, 0x09, 0x22, 0xcb, 0x7d, 0xf2, 0xf9, 0x70, 0xb7, 0x83, 0x03, 0xce, + 0xfc, 0xbf, 0xd5, 0x35, 0x38, 0xd4, 0x46, 0x3b, 0xd8, 0x69, 0x6c, 0x61, 0xec, 0x2f, 0x84, 0x70, + 0x2f, 0xeb, 0xa0, 0x31, 0x82, 0x7a, 0x17, 0xe3, 0x3a, 0xf2, 0x08, 0x29, 0x2f, 0x4e, 0x6a, 0xa4, + 0x07, 0x52, 0x5e, 0x94, 0xd4, 0xd7, 0x61, 0x52, 0xb8, 0x0a, 0x84, 0xe2, 0x04, 0x55, 0x33, 0xbd, + 0x04, 0xfc, 0x36, 0x54, 0xa4, 0xcb, 0xbf, 0xd1, 0x1e, 0x96, 0xc3, 0x6d, 0xe1, 0xda, 0x4f, 0x16, + 0x20, 0xc6, 0xf6, 0x27, 0x40, 0x8c, 0xef, 0x71, 0x80, 0x38, 0xd4, 0x5f, 0x80, 0xa8, 0xdd, 0x96, + 0x38, 0xf5, 0x39, 0x81, 0x53, 0x0b, 0xfd, 0x51, 0x3b, 0x0f, 0x67, 0x73, 0x40, 0xb8, 0x7b, 0xff, + 0xd6, 0x10, 0xcc, 0x87, 0xb0, 0xcb, 0xa6, 0x85, 0x9c, 0xdd, 0xfb, 0x1d, 0x9f, 0x13, 0xf7, 0xb9, + 0x5c, 0x7c, 0x1e, 0xc6, 0x03, 0xef, 0xdb, 0x6d, 0x6f, 0xda, 0x2d, 0xe6, 0xe4, 0xcc, 0x6b, 0x37, + 0x48, 0x9b, 0x7a, 0x16, 0x0e, 0x33, 0xa0, 0x8e, 0x63, 0x3f, 0x32, 0x7d, 0xea, 0xd4, 0xd5, 0x0f, + 0xd1, 0xe6, 0x07, 0xac, 0x35, 0xe9, 0x9b, 0x83, 0x7d, 0xfa, 0x66, 0xaf, 0x21, 0x21, 0xed, 0xcb, + 0x43, 0x7b, 0xe7, 0xcb, 0xc3, 0xfd, 0xfa, 0xf2, 0x15, 0x98, 0xc4, 0x4f, 0x3a, 0x26, 0xf1, 0x32, + 0xab, 0xe1, 0x99, 0x6d, 0xec, 0x7a, 0xa8, 0xdd, 0x21, 0xc1, 0xa1, 0x54, 0x9f, 0x08, 0xfb, 0x1e, + 0x06, 0x5d, 0x3e, 0x8a, 0x8b, 0x3d, 0xaf, 0x85, 0xdb, 0xd8, 0xf2, 0x22, 0x28, 0x40, 0x51, 0xc2, + 0xbe, 0x10, 0x85, 0x6f, 0xcc, 0x47, 0xa3, 0x1b, 0xf3, 0x44, 0xe4, 0x1e, 0x2b, 0x9a, 0xd3, 0xc7, + 0xf7, 0xc7, 0x65, 0x0f, 0xed, 0xb1, 0xcb, 0x1e, 0xee, 0xd3, 0x65, 0x57, 0x25, 0x2e, 0x7b, 0x49, + 0xe0, 0xb2, 0x52, 0x1f, 0xd3, 0x2e, 0xc3, 0xc5, 0x02, 0x60, 0xdc, 0x75, 0xff, 0x29, 0xe6, 0xba, + 0x77, 0xfc, 0x69, 0xdf, 0xbd, 0xdb, 0xf5, 0xba, 0x0e, 0x76, 0x5f, 0xfc, 0xec, 0x9c, 0xf0, 0xe8, + 0xf2, 0xde, 0x7a, 0xf4, 0x90, 0xcc, 0xa3, 0x8f, 0x43, 0x99, 0xf8, 0xc7, 0x2e, 0x71, 0xbf, 0x52, + 0x9d, 0x7d, 0x09, 0x3c, 0x7d, 0x64, 0xef, 0x3c, 0x1d, 0xf6, 0x3a, 0x6b, 0x8f, 0xee, 0x5f, 0xd6, + 0x1e, 0xdb, 0xb7, 0xac, 0xfd, 0x65, 0x08, 0xc8, 0xf7, 0xd5, 0x78, 0x08, 0x90, 0x82, 0xf1, 0x10, + 0xf0, 0x91, 0x02, 0x95, 0xd8, 0x1e, 0x9d, 0x42, 0xed, 0x7b, 0x51, 0xe1, 0xba, 0x44, 0xd8, 0xd3, + 0xe2, 0xa2, 0x42, 0x84, 0x2b, 0xed, 0x87, 0x0a, 0x9c, 0x92, 0x75, 0x16, 0xad, 0x2b, 0xd4, 0x61, + 0xc8, 0xc1, 0x6e, 0xb7, 0xe5, 0x05, 0x85, 0xb6, 0xab, 0x79, 0x32, 0xc4, 0x07, 0xf1, 0x31, 0x89, + 0x40, 0x4a, 0x3d, 0x20, 0x14, 0xd4, 0x2a, 0x4a, 0xa2, 0x5a, 0xc5, 0xbf, 0x28, 0x70, 0x5c, 0x4c, + 0x45, 0xbd, 0x05, 0xc3, 0x81, 0x51, 0xb2, 0x4a, 0x61, 0x21, 0xd3, 0xe1, 0x48, 0xea, 0x75, 0x18, + 0x24, 0x9e, 0x42, 0x83, 0x70, 0x31, 0x6c, 0x8a, 0xa1, 0x5e, 0x83, 0xd2, 0x16, 0xc6, 0x94, 0xe5, + 0x62, 0x88, 0x3e, 0x7c, 0xba, 0x06, 0x43, 0xe7, 0x22, 0xac, 0x90, 0x16, 0x28, 0x4c, 0xbd, 0x1d, + 0xb7, 0xa1, 0x8b, 0x59, 0xfa, 0x0f, 0x09, 0x0b, 0x2c, 0xa9, 0xf6, 0x34, 0xa7, 0x06, 0x23, 0x67, + 0x4e, 0xdb, 0x24, 0x25, 0x18, 0x39, 0xc0, 0x5e, 0x94, 0xa9, 0xfe, 0x21, 0x6a, 0xae, 0xb1, 0x9c, + 0xfc, 0xb3, 0xd4, 0xd2, 0x4d, 0x81, 0x96, 0xce, 0xa7, 0xb5, 0x24, 0xe1, 0x4f, 0xc3, 0x70, 0x2e, + 0x0f, 0x66, 0x2f, 0x74, 0xf5, 0x13, 0x85, 0x2c, 0x48, 0x22, 0x35, 0x31, 0xd1, 0xac, 0xc8, 0x0b, + 0x7b, 0x6b, 0x89, 0xc2, 0x5e, 0x1f, 0xfa, 0x0a, 0xca, 0x7b, 0xb7, 0x9f, 0xe6, 0x44, 0xe2, 0x3c, + 0x26, 0xb5, 0x1f, 0x29, 0x24, 0x14, 0xe7, 0xc1, 0xbd, 0x88, 0x65, 0xbe, 0x8f, 0x15, 0x52, 0x4b, + 0x5f, 0xf1, 0x13, 0x73, 0x8b, 0x47, 0x70, 0xa9, 0xda, 0x33, 0x0f, 0xdb, 0x52, 0x85, 0xf5, 0x92, + 0xa0, 0xb0, 0x1e, 0xb7, 0x99, 0x01, 0x89, 0xcd, 0x0c, 0x86, 0x36, 0xb3, 0x28, 0x98, 0x9e, 0xa9, + 0x98, 0x3d, 0xc7, 0x79, 0xd7, 0xa6, 0x49, 0xe1, 0x32, 0xd1, 0xca, 0xd3, 0xe0, 0x0f, 0x68, 0x1a, + 0xa4, 0x73, 0x15, 0x87, 0x91, 0x5b, 0xdb, 0x2d, 0x18, 0x30, 0x90, 0x87, 0x8a, 0x14, 0x91, 0x09, + 0xa5, 0x55, 0xe4, 0x21, 0x66, 0x65, 0x04, 0xb1, 0x76, 0xed, 0x69, 0x4e, 0x02, 0x14, 0xf2, 0xa3, + 0xdd, 0x25, 0x01, 0x45, 0xd8, 0xc7, 0x8d, 0xa9, 0x02, 0x43, 0x6e, 0x57, 0xd7, 0xb1, 0x4b, 0xed, + 0x68, 0xb8, 0x1e, 0x7c, 0xc6, 0x83, 0xf7, 0xe9, 0x38, 0xa1, 0x98, 0x6b, 0xef, 0xb7, 0xf4, 0x6f, + 0x09, 0xa4, 0xbf, 0x20, 0x91, 0x5e, 0xc0, 0x98, 0x76, 0x1f, 0xce, 0xe7, 0x02, 0xf5, 0xa4, 0x8f, + 0xff, 0x1a, 0x82, 0xc9, 0x80, 0x22, 0x3d, 0x13, 0xcb, 0x51, 0x41, 0xa1, 0x33, 0xa3, 0x5b, 0x30, + 0xe3, 0x76, 0x6c, 0xaf, 0xc1, 0x3d, 0xc4, 0x6d, 0x78, 0x76, 0x43, 0x27, 0x1c, 0x37, 0x50, 0xab, + 0xc5, 0xdc, 0xb1, 0xe2, 0xf2, 0xe5, 0xc1, 0x9a, 0xe1, 0x3e, 0xb4, 0xa9, 0x48, 0x4b, 0xad, 0x96, + 0xfa, 0x55, 0x98, 0x37, 0x78, 0xe0, 0x90, 0x93, 0x19, 0x20, 0x64, 0x66, 0x8d, 0xc4, 0x31, 0x65, + 0x82, 0xd8, 0xaf, 0xc2, 0x31, 0xc2, 0x0d, 0x8b, 0x07, 0x9c, 0x44, 0x65, 0xb0, 0xd7, 0x69, 0x54, + 0xea, 0xaa, 0xcb, 0xed, 0x2e, 0x18, 0x42, 0x7d, 0x17, 0xa6, 0x22, 0xcc, 0xa6, 0x46, 0x29, 0xf7, + 0x3e, 0x4a, 0xc5, 0x88, 0xc7, 0xe9, 0x70, 0x2c, 0x81, 0x2c, 0x24, 0x02, 0x56, 0x86, 0x7a, 0x3d, + 0xd5, 0x49, 0xca, 0x42, 0xc8, 0xa8, 0x1d, 0x99, 0x2c, 0x74, 0x94, 0xe1, 0xfe, 0x52, 0x8c, 0x58, + 0x22, 0x3a, 0xe2, 0x7b, 0x30, 0xb7, 0x49, 0x8c, 0xb8, 0x61, 0x53, 0x2b, 0x4e, 0x6b, 0x70, 0xa4, + 0x77, 0x0d, 0x4e, 0x6d, 0xa6, 0x1d, 0x83, 0x2b, 0xb1, 0x0e, 0x67, 0x13, 0x43, 0x4a, 0x2d, 0x0c, + 0x88, 0x85, 0x9d, 0xde, 0x4c, 0xd7, 0x15, 0x12, 0x46, 0xf6, 0x38, 0x4b, 0x0c, 0xaa, 0xbc, 0xd1, + 0x7e, 0x95, 0x27, 0x11, 0x86, 0x50, 0xad, 0x5d, 0x11, 0x84, 0x94, 0x99, 0x54, 0x48, 0x89, 0xfa, + 0xb6, 0xf6, 0xb4, 0x0c, 0xd3, 0xa2, 0x0e, 0x1e, 0x39, 0x16, 0x60, 0x82, 0x58, 0x19, 0x53, 0x44, + 0x3c, 0x8a, 0x1c, 0xf5, 0xbb, 0x58, 0x10, 0xa6, 0x1d, 0x6a, 0x0d, 0x4e, 0x46, 0xac, 0x26, 0x81, + 0x75, 0x90, 0x60, 0x9d, 0x08, 0x01, 0xe2, 0xb8, 0x17, 0xe0, 0x68, 0x68, 0xd1, 0xc1, 0x3a, 0x80, + 0xc6, 0x87, 0xc3, 0xdc, 0x40, 0xd9, 0x5a, 0xe0, 0x75, 0x38, 0x91, 0xb4, 0xce, 0x00, 0x83, 0x86, + 0x82, 0x63, 0x09, 0x33, 0x63, 0x78, 0x4b, 0x30, 0x93, 0x98, 0x9c, 0x04, 0x8f, 0x83, 0x84, 0xc7, + 0x6a, 0x4c, 0xcf, 0x71, 0x36, 0x6f, 0xc2, 0x94, 0x68, 0x7e, 0x83, 0xe1, 0xcb, 0x34, 0xa0, 0xa5, + 0x27, 0x8a, 0x71, 0xf0, 0x06, 0x54, 0x82, 0x55, 0x4c, 0xd4, 0x7f, 0xc9, 0xda, 0x64, 0x88, 0xb2, + 0xce, 0xfa, 0xc3, 0xc4, 0x46, 0x96, 0x33, 0xd7, 0xe0, 0x04, 0x5b, 0xce, 0xa4, 0xf0, 0x86, 0x09, + 0xde, 0x24, 0xed, 0x4e, 0xa0, 0xad, 0xc0, 0x6c, 0x30, 0x5e, 0xda, 0x9f, 0x09, 0xf6, 0x08, 0xc1, + 0x9e, 0x62, 0x50, 0x09, 0xc3, 0xa3, 0x44, 0x96, 0x60, 0x86, 0x8d, 0x2d, 0xa1, 0x41, 0xbd, 0xa3, + 0x4a, 0x81, 0x84, 0x24, 0x7e, 0x11, 0xb4, 0x80, 0x0f, 0xb1, 0x7b, 0x10, 0x3a, 0xa3, 0x34, 0x8e, + 0x33, 0x48, 0x41, 0x4e, 0x23, 0xb4, 0xbe, 0x02, 0xa7, 0x19, 0x3b, 0x19, 0xa4, 0xc6, 0x08, 0x29, + 0xc6, 0xb7, 0x84, 0x52, 0x24, 0xff, 0xfd, 0x9d, 0x02, 0xb3, 0x82, 0xed, 0x50, 0x91, 0x8a, 0xc0, + 0x9e, 0xed, 0x53, 0x6e, 0x08, 0x3c, 0xf8, 0x6c, 0xd6, 0x6e, 0x2e, 0x5a, 0x19, 0xf8, 0x5b, 0x05, + 0x5e, 0xce, 0x06, 0x29, 0xba, 0x49, 0xf9, 0x46, 0xb2, 0x3e, 0xf0, 0x66, 0x31, 0x89, 0x9e, 0xaf, + 0x4a, 0xf0, 0x9f, 0x07, 0x61, 0x3a, 0x8b, 0xd6, 0x17, 0xb0, 0x56, 0xa0, 0xfe, 0x12, 0x1c, 0x22, + 0x17, 0x72, 0x4c, 0xdb, 0x6a, 0x18, 0xb8, 0xe5, 0x21, 0xb2, 0xba, 0x1f, 0xbd, 0x7a, 0x3e, 0xf3, + 0x66, 0x13, 0xc3, 0x58, 0xf5, 0x11, 0x98, 0x81, 0x8c, 0x77, 0xa2, 0x8d, 0xea, 0x0d, 0x28, 0x77, + 0xd0, 0xae, 0xdd, 0xf5, 0x7a, 0x39, 0xed, 0x67, 0x28, 0x11, 0x95, 0xff, 0x23, 0x5d, 0x03, 0x0b, + 0x76, 0xb6, 0x3f, 0x53, 0xb3, 0xcf, 0x5d, 0x0b, 0x67, 0x33, 0xa8, 0xfd, 0xbd, 0x42, 0x16, 0xc3, + 0xd9, 0x50, 0x2f, 0xb6, 0xf1, 0xff, 0x2f, 0xab, 0x44, 0x92, 0x4c, 0x93, 0x50, 0xd6, 0xcf, 0x6f, + 0xe7, 0xc9, 0xbb, 0xdb, 0xc8, 0xdd, 0x21, 0xa6, 0x36, 0xc8, 0xba, 0xd7, 0x91, 0xbb, 0x13, 0x08, + 0x54, 0x0e, 0x05, 0xca, 0xdd, 0xd3, 0x09, 0x05, 0xd4, 0x34, 0x5a, 0x24, 0x12, 0xf5, 0xf1, 0x4d, + 0xea, 0x6f, 0x1c, 0x24, 0xf7, 0x64, 0x65, 0x9b, 0x9d, 0x2f, 0x90, 0x92, 0xde, 0x14, 0x28, 0xe9, + 0xa5, 0xb4, 0x92, 0xd2, 0x32, 0x6a, 0x67, 0x48, 0x81, 0x48, 0xd6, 0xcd, 0x55, 0xf5, 0x3d, 0x05, + 0x46, 0xf8, 0x32, 0x38, 0xae, 0x00, 0x25, 0x4f, 0x01, 0x07, 0x73, 0x15, 0x50, 0xca, 0x56, 0xc0, + 0x80, 0x44, 0x01, 0x61, 0xf9, 0x42, 0xfb, 0x6b, 0x9a, 0x6a, 0x23, 0x9b, 0xd7, 0xe4, 0x8a, 0x61, + 0xff, 0xf6, 0xdd, 0xb9, 0x29, 0x36, 0x83, 0x2b, 0xed, 0x1e, 0xc9, 0xb0, 0x19, 0x10, 0x3d, 0xed, + 0xb8, 0x7f, 0xf3, 0x20, 0x1c, 0x5b, 0x77, 0x9b, 0x1b, 0x5c, 0xd5, 0x0f, 0x1d, 0x64, 0xb9, 0x5b, + 0x19, 0xb6, 0xfc, 0x0a, 0x4c, 0xba, 0x76, 0xd7, 0xd1, 0x71, 0x43, 0x34, 0x69, 0x2a, 0xed, 0xdb, + 0x88, 0x4e, 0x1d, 0x59, 0x8f, 0xbb, 0x9e, 0x69, 0xd1, 0xd3, 0x6e, 0x91, 0xb1, 0x9f, 0x88, 0x00, + 0x6c, 0x88, 0xef, 0x7b, 0x0e, 0xf4, 0x76, 0xdf, 0x73, 0x21, 0xa1, 0xdf, 0xd9, 0xa8, 0x7e, 0xd3, + 0xe2, 0x6a, 0x73, 0xa4, 0x8c, 0x9e, 0xee, 0xe0, 0x06, 0xfd, 0xc1, 0x41, 0x72, 0x27, 0xf4, 0xce, + 0x13, 0x0f, 0x3b, 0x16, 0x6a, 0xfd, 0x7f, 0xd1, 0xd3, 0xa5, 0x84, 0x9e, 0x62, 0xef, 0x04, 0x92, + 0xc2, 0xb2, 0x77, 0x02, 0xc9, 0x66, 0xae, 0xa3, 0x9f, 0x2a, 0xa4, 0x7e, 0x73, 0xcf, 0x7c, 0xaf, + 0x6b, 0x92, 0x1b, 0xcd, 0x6c, 0xc1, 0xf0, 0x7c, 0xf5, 0x9b, 0x58, 0xf0, 0x28, 0x25, 0x82, 0x07, + 0x5f, 0x00, 0x0c, 0xf4, 0xb7, 0x00, 0x50, 0x82, 0x05, 0xc0, 0xe5, 0xac, 0x5d, 0x6b, 0x4a, 0x22, + 0x6d, 0x96, 0x6c, 0x5a, 0x53, 0xed, 0x5c, 0x15, 0xdf, 0xa7, 0xc9, 0xf4, 0x4e, 0x1b, 0x3b, 0x4d, + 0x6c, 0xe9, 0xbb, 0x1b, 0xe4, 0x7e, 0x06, 0x7b, 0x31, 0xb1, 0x6f, 0xea, 0xa8, 0x5d, 0xc9, 0x4a, + 0x7c, 0x42, 0x66, 0x58, 0xe2, 0x13, 0xf6, 0x85, 0x77, 0xd1, 0x0f, 0x92, 0x07, 0x20, 0x6b, 0x96, + 0xbf, 0x29, 0x72, 0xb9, 0xb4, 0xf4, 0xc8, 0xf8, 0x05, 0x71, 0x81, 0x98, 0x5e, 0x06, 0x12, 0x66, + 0x72, 0x83, 0xfb, 0x47, 0x2f, 0x8b, 0x55, 0xe6, 0x23, 0x57, 0x13, 0x4a, 0xd5, 0xe2, 0xe7, 0xc1, + 0x22, 0x9d, 0xb0, 0x87, 0x0b, 0xe2, 0xce, 0xa4, 0x5a, 0x57, 0xf1, 0x97, 0x6a, 0x4d, 0xaa, 0x55, + 0xac, 0x13, 0xa6, 0x56, 0x71, 0x27, 0x57, 0xeb, 0x4f, 0x14, 0xe2, 0x9c, 0x0f, 0x1c, 0xf3, 0x91, + 0xd9, 0xc2, 0x4d, 0x6c, 0xdc, 0x79, 0x82, 0xf5, 0xae, 0x87, 0x57, 0x6c, 0xcb, 0x73, 0x90, 0x2e, + 0xf7, 0xbf, 0x49, 0x18, 0xdc, 0xea, 0x5a, 0x86, 0xcb, 0x54, 0x49, 0x3f, 0xd4, 0xf3, 0x70, 0x44, + 0x67, 0x98, 0x0d, 0x44, 0xdf, 0x8d, 0x30, 0xa5, 0x1d, 0x0e, 0xda, 0xd9, 0x73, 0x12, 0x55, 0x65, + 0x4b, 0x03, 0xaa, 0x27, 0x9a, 0xed, 0x6f, 0x4a, 0x0e, 0xda, 0xcf, 0x44, 0xc5, 0x95, 0xf2, 0xea, + 0x07, 0x92, 0x97, 0xb2, 0x00, 0x78, 0xba, 0x7f, 0x17, 0x80, 0xf0, 0xdb, 0x30, 0xcc, 0xad, 0x2d, + 0x92, 0xf1, 0x33, 0xd3, 0xc0, 0x2b, 0xfe, 0x54, 0xfd, 0xe0, 0xdf, 0xe7, 0xce, 0x35, 0x4d, 0x6f, + 0xbb, 0xbb, 0xb9, 0xa0, 0xdb, 0x6d, 0xf6, 0xc6, 0x90, 0xfd, 0x77, 0xd9, 0x35, 0x76, 0x16, 0xbd, + 0xdd, 0x0e, 0x76, 0x09, 0x82, 0x5b, 0x1f, 0x21, 0xe4, 0x57, 0xcd, 0xad, 0xad, 0xda, 0x84, 0x40, + 0x26, 0xed, 0xdb, 0x70, 0x64, 0xdd, 0x6d, 0xd6, 0xf1, 0x63, 0xe4, 0x18, 0xee, 0xfd, 0x8e, 0x77, + 0xbf, 0x2b, 0xd5, 0x34, 0xad, 0x13, 0x0a, 0x94, 0x72, 0x32, 0xaa, 0x94, 0x18, 0x29, 0xad, 0x4a, + 0x02, 0x6a, 0xac, 0x2d, 0xfa, 0x56, 0xe6, 0x18, 0xe9, 0xd4, 0x5b, 0xc8, 0x6c, 0xdf, 0xb3, 0xf5, + 0x1d, 0x6c, 0xdc, 0x25, 0x93, 0x27, 0x77, 0xa2, 0x89, 0x16, 0x01, 0x5b, 0xa2, 0x96, 0xfe, 0xa0, + 0xbb, 0xf9, 0x55, 0xbc, 0x4b, 0x26, 0x7e, 0xac, 0x2e, 0xea, 0x52, 0xa7, 0x61, 0xc4, 0x35, 0x9b, + 0x16, 0xf2, 0xba, 0x0e, 0xdd, 0x84, 0x8f, 0xd5, 0xc3, 0x86, 0xec, 0xf5, 0x46, 0x9a, 0x2f, 0xb6, + 0xde, 0x48, 0x77, 0x70, 0x91, 0xbe, 0x43, 0x9f, 0xcd, 0x6c, 0x98, 0x4d, 0x8b, 0x2c, 0xa1, 0x37, + 0xa0, 0xec, 0xff, 0xcd, 0x04, 0x19, 0x5b, 0xbe, 0xf1, 0xf9, 0xb3, 0xb9, 0xb2, 0x4b, 0x5a, 0xfe, + 0xe7, 0xd9, 0xdc, 0xe5, 0x02, 0xb3, 0xb8, 0xa4, 0xeb, 0xcc, 0x4e, 0xeb, 0x8c, 0x94, 0x3a, 0x0d, + 0x03, 0xab, 0x74, 0x29, 0xeb, 0x93, 0x1c, 0xfe, 0xfc, 0xd9, 0x1c, 0xb1, 0xd9, 0x3a, 0x69, 0xd5, + 0x9e, 0x90, 0x07, 0x48, 0x84, 0x03, 0x5b, 0x57, 0xcf, 0x50, 0xf9, 0xe9, 0x65, 0x2f, 0x5a, 0xfb, + 0x20, 0x08, 0xfe, 0x77, 0x7d, 0xd8, 0xef, 0x22, 0xd7, 0xb9, 0x56, 0x60, 0xf0, 0x11, 0x6a, 0x75, + 0x31, 0xdb, 0xb9, 0x9e, 0xcd, 0x4a, 0xc8, 0x11, 0xf9, 0x82, 0xdd, 0x38, 0xc1, 0xd5, 0x7e, 0xa7, + 0x44, 0xfc, 0x7c, 0xc9, 0x68, 0x9b, 0x16, 0xad, 0x09, 0x0b, 0xb6, 0xd4, 0xfd, 0x6d, 0xb7, 0xde, + 0x81, 0x23, 0x91, 0x7b, 0x94, 0xb4, 0x16, 0x13, 0x96, 0x54, 0x94, 0xbc, 0xe0, 0x75, 0x38, 0x44, + 0x26, 0xd7, 0x9b, 0xa4, 0x57, 0x39, 0x07, 0x7a, 0xbf, 0xca, 0x39, 0x28, 0xbf, 0xca, 0x79, 0x1b, + 0xca, 0xae, 0x87, 0xbc, 0xae, 0xcb, 0xae, 0xd9, 0x9d, 0xcb, 0x54, 0x2b, 0x91, 0x75, 0x83, 0xc0, + 0xd7, 0x19, 0x5e, 0xad, 0x96, 0x55, 0xdc, 0xc8, 0x56, 0xb4, 0x76, 0x91, 0xd4, 0x36, 0xb2, 0x81, + 0xb8, 0xe1, 0xfe, 0x29, 0x7d, 0x24, 0xb5, 0x44, 0x1f, 0xc0, 0xbd, 0x8f, 0x37, 0x3c, 0xb4, 0x83, + 0xdf, 0x76, 0x90, 0xe5, 0xc9, 0xbd, 0xf1, 0x2e, 0x94, 0x9b, 0x04, 0x82, 0x6d, 0xaa, 0x16, 0xb2, + 0xc4, 0x23, 0xb4, 0x02, 0xf2, 0x44, 0xb5, 0x75, 0x86, 0x5d, 0x7b, 0x25, 0xeb, 0x85, 0x94, 0x88, + 0x23, 0xed, 0x34, 0x79, 0x1a, 0x21, 0xea, 0xe2, 0x02, 0xed, 0x92, 0xd8, 0xb2, 0xe4, 0x73, 0x83, + 0xbc, 0x08, 0x84, 0x54, 0x9a, 0x0a, 0x0c, 0x11, 0x7e, 0xf8, 0xb5, 0xcc, 0xe0, 0x33, 0x3b, 0x4a, + 0xa4, 0x47, 0x60, 0x51, 0x22, 0xdd, 0xc1, 0x79, 0xfb, 0x58, 0x09, 0x0f, 0x4f, 0xee, 0x30, 0x5a, + 0xeb, 0xb6, 0x61, 0x6e, 0x99, 0x3a, 0xca, 0x5c, 0x79, 0x7f, 0x13, 0x86, 0x83, 0x77, 0xde, 0xcc, + 0x53, 0x6f, 0x66, 0xe9, 0x5c, 0x3a, 0xc0, 0x03, 0x46, 0xa4, 0xce, 0xc9, 0x15, 0x4b, 0x78, 0x52, + 0x82, 0xda, 0xcb, 0x24, 0xdf, 0x49, 0xfb, 0x03, 0xd1, 0xaf, 0x7e, 0x7e, 0x0e, 0x4a, 0xeb, 0x6e, + 0x53, 0x45, 0x30, 0x14, 0xbc, 0x91, 0x7c, 0x39, 0x27, 0xd8, 0x30, 0xb8, 0xea, 0x42, 0x31, 0x38, + 0x9e, 0x5a, 0x0d, 0x18, 0xe6, 0xcf, 0x17, 0xf3, 0x02, 0x5a, 0x00, 0x58, 0x5d, 0x2c, 0x08, 0xc8, + 0x47, 0xf9, 0x7d, 0x05, 0x4e, 0xc8, 0xde, 0x75, 0xbd, 0x9e, 0x43, 0x4c, 0x82, 0x57, 0x7d, 0xab, + 0x3f, 0x3c, 0xce, 0xd3, 0x87, 0x0a, 0x4c, 0x67, 0xbe, 0x1b, 0xba, 0x51, 0x6c, 0x00, 0x21, 0x72, + 0x75, 0xe5, 0x39, 0x90, 0x39, 0x8b, 0x7f, 0xa6, 0xc0, 0xa9, 0xdc, 0x0b, 0xd4, 0xb7, 0x8a, 0x8d, + 0x24, 0x25, 0x50, 0x7d, 0xfb, 0x39, 0x09, 0x70, 0x76, 0x9f, 0x2a, 0x30, 0x29, 0x7c, 0x40, 0xfa, + 0x6a, 0xce, 0x08, 0x22, 0xa4, 0xea, 0x8d, 0x3e, 0x90, 0x38, 0x2b, 0x7f, 0xa4, 0x40, 0x35, 0xe3, + 0xf1, 0xe6, 0xf5, 0x1c, 0xda, 0x72, 0xd4, 0xea, 0x52, 0xdf, 0xa8, 0x9c, 0xb9, 0xef, 0x2a, 0x70, + 0x4c, 0x7c, 0x29, 0xf6, 0xb5, 0xc2, 0x32, 0x47, 0xb0, 0xaa, 0xbf, 0xd0, 0x0f, 0x16, 0xe7, 0x66, + 0x17, 0x0e, 0x27, 0xef, 0x62, 0xe5, 0x05, 0x91, 0x04, 0x7c, 0xf5, 0xf5, 0xde, 0xe0, 0x63, 0x8a, + 0x10, 0x5f, 0x8b, 0x7a, 0xad, 0x90, 0x96, 0x13, 0x58, 0xb9, 0x8a, 0xc8, 0xbe, 0xd6, 0xf4, 0xeb, + 0x70, 0x34, 0x7d, 0x3d, 0xe7, 0x95, 0x22, 0x24, 0xa3, 0x18, 0xd5, 0x37, 0x7b, 0xc5, 0xe0, 0x0c, + 0xfc, 0xa1, 0x02, 0x27, 0xe5, 0x3b, 0xbb, 0x3c, 0xba, 0x52, 0xcc, 0xea, 0xed, 0x7e, 0x31, 0x63, + 0xee, 0x94, 0x71, 0x0f, 0xf7, 0x7a, 0x21, 0x03, 0x14, 0xa1, 0xe6, 0xba, 0x53, 0x81, 0xfb, 0xb3, + 0x7e, 0x94, 0xcc, 0xbd, 0xd5, 0x79, 0xab, 0xb8, 0xdb, 0x0a, 0x09, 0xe4, 0x46, 0xc9, 0xc2, 0x57, + 0x31, 0xbf, 0xa7, 0xc0, 0x54, 0xd6, 0x31, 0x78, 0xad, 0x47, 0x8d, 0x44, 0x23, 0xc1, 0x72, 0xff, + 0xb8, 0xf1, 0xe8, 0x24, 0x3c, 0x28, 0x7b, 0xad, 0x90, 0x9b, 0x27, 0xb0, 0xf2, 0xa3, 0x53, 0xd6, + 0xb9, 0x14, 0xd1, 0x56, 0xd6, 0x49, 0x46, 0xad, 0xb8, 0xcb, 0x27, 0x71, 0x73, 0xb5, 0x55, 0xe4, + 0x24, 0x22, 0x92, 0xa2, 0xe5, 0xcf, 0x13, 0x0b, 0xa6, 0x68, 0x29, 0x81, 0xa2, 0x29, 0x3a, 0xf7, + 0x55, 0x96, 0xfa, 0xc7, 0x0a, 0xcc, 0x64, 0xdf, 0x16, 0x2f, 0x96, 0x4c, 0x24, 0xd8, 0xd5, 0xd5, + 0xe7, 0xc1, 0xe6, 0x5c, 0xfe, 0x89, 0x02, 0xb3, 0x39, 0xa7, 0xe6, 0x37, 0x7b, 0x1f, 0x28, 0xea, + 0x28, 0x77, 0x9e, 0x0b, 0x9d, 0x33, 0xfa, 0x07, 0x0a, 0x54, 0xa4, 0x47, 0xa6, 0x6f, 0x14, 0x32, + 0xfc, 0x34, 0x62, 0xf5, 0x56, 0x9f, 0x88, 0x31, 0xfd, 0xe5, 0xdc, 0xbc, 0xbd, 0x59, 0xdc, 0xf6, + 0x05, 0xe8, 0xb9, 0xfa, 0x2b, 0x78, 0x73, 0xf6, 0x03, 0x05, 0x54, 0xc1, 0x01, 0xdd, 0x95, 0xbc, + 0xca, 0x4a, 0x0a, 0xa5, 0x7a, 0xbd, 0x67, 0x14, 0xce, 0xc4, 0xaf, 0xc1, 0x91, 0xd4, 0xd1, 0x57, + 0xde, 0x0e, 0x27, 0x89, 0x50, 0x7d, 0xa3, 0x47, 0x84, 0xe8, 0xaa, 0x23, 0x7d, 0xa8, 0x94, 0xb7, + 0xea, 0x48, 0x61, 0xe4, 0xae, 0x3a, 0xa4, 0xc7, 0x39, 0x24, 0xde, 0x8b, 0xcf, 0x72, 0xf2, 0xe2, + 0xbd, 0x10, 0x2b, 0x37, 0xde, 0x67, 0x1e, 0xc7, 0xa8, 0xbf, 0xab, 0xc0, 0x71, 0xc9, 0x59, 0xcc, + 0xb5, 0xdc, 0x20, 0x28, 0x42, 0xab, 0xde, 0xec, 0x0b, 0x2d, 0xc6, 0x90, 0xe4, 0x14, 0xe3, 0x5a, + 0xee, 0x5e, 0xbb, 0x2f, 0x86, 0xb2, 0x8f, 0x00, 0x54, 0x17, 0xc6, 0xe3, 0x85, 0xe8, 0x4b, 0x39, + 0xf4, 0x62, 0xd0, 0xd5, 0xd7, 0x7a, 0x81, 0x8e, 0x45, 0x94, 0x9c, 0x92, 0x65, 0x9e, 0x58, 0xd9, + 0xe8, 0xb9, 0x11, 0xa5, 0x58, 0x89, 0x4e, 0xed, 0xc0, 0x58, 0xec, 0xc7, 0xb2, 0x2e, 0xe6, 0x90, + 0x8d, 0x02, 0x57, 0x5f, 0xed, 0x01, 0x38, 0x1a, 0x3e, 0x52, 0x3f, 0x03, 0xb8, 0x58, 0x88, 0x50, + 0x88, 0x90, 0x1b, 0x3e, 0x64, 0xbf, 0x5f, 0x47, 0xcc, 0x53, 0xf2, 0xe3, 0x75, 0xd7, 0x0a, 0xd1, + 0x4c, 0xa2, 0xe5, 0x9a, 0x67, 0xf6, 0x2f, 0x96, 0x91, 0x22, 0x80, 0xb0, 0x40, 0x9a, 0xa7, 0x5c, + 0x11, 0x52, 0x6e, 0x11, 0x20, 0xab, 0xba, 0x49, 0xb2, 0x8b, 0xa0, 0xb6, 0x99, 0x97, 0x5d, 0xd2, + 0x28, 0xb9, 0xd9, 0x45, 0x5e, 0xc6, 0x24, 0x9b, 0x3a, 0x79, 0x0d, 0xb3, 0xd0, 0x66, 0x51, 0x84, + 0x99, 0xbb, 0xa9, 0xcb, 0xad, 0x32, 0x56, 0x07, 0xbf, 0xf3, 0xd9, 0x47, 0x17, 0x94, 0xe5, 0xed, + 0x1f, 0x7f, 0x32, 0xab, 0x7c, 0xfc, 0xc9, 0xac, 0xf2, 0x1f, 0x9f, 0xcc, 0x2a, 0xbf, 0xf7, 0xe9, + 0xec, 0x81, 0x8f, 0x3f, 0x9d, 0x3d, 0xf0, 0xaf, 0x9f, 0xce, 0x1e, 0xf8, 0x95, 0x77, 0x22, 0x27, + 0x2f, 0x6b, 0xc1, 0x60, 0xf7, 0xd0, 0xa6, 0xbb, 0xc8, 0x87, 0xbe, 0xac, 0xdb, 0x0e, 0x8e, 0x7e, + 0x6e, 0x23, 0xd3, 0x5a, 0x6c, 0xdb, 0x46, 0xb7, 0x85, 0xdd, 0xf0, 0xf7, 0x37, 0xc9, 0x29, 0xcd, + 0x66, 0x99, 0xfc, 0x76, 0xe6, 0xab, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x57, 0x4e, 0x1f, 0xdf, + 0xa8, 0x54, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4030,6 +4112,7 @@ type MsgClient interface { UpdateDerivativeMarket(ctx context.Context, in *MsgUpdateDerivativeMarket, opts ...grpc.CallOption) (*MsgUpdateDerivativeMarketResponse, error) AuthorizeStakeGrants(ctx context.Context, in *MsgAuthorizeStakeGrants, opts ...grpc.CallOption) (*MsgAuthorizeStakeGrantsResponse, error) ActivateStakeGrant(ctx context.Context, in *MsgActivateStakeGrant, opts ...grpc.CallOption) (*MsgActivateStakeGrantResponse, error) + BatchExchangeModification(ctx context.Context, in *MsgBatchExchangeModification, opts ...grpc.CallOption) (*MsgBatchExchangeModificationResponse, error) } type msgClient struct { @@ -4355,6 +4438,15 @@ func (c *msgClient) ActivateStakeGrant(ctx context.Context, in *MsgActivateStake return out, nil } +func (c *msgClient) BatchExchangeModification(ctx context.Context, in *MsgBatchExchangeModification, opts ...grpc.CallOption) (*MsgBatchExchangeModificationResponse, error) { + out := new(MsgBatchExchangeModificationResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/BatchExchangeModification", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // Deposit defines a method for transferring coins from the sender's bank @@ -4445,6 +4537,7 @@ type MsgServer interface { UpdateDerivativeMarket(context.Context, *MsgUpdateDerivativeMarket) (*MsgUpdateDerivativeMarketResponse, error) AuthorizeStakeGrants(context.Context, *MsgAuthorizeStakeGrants) (*MsgAuthorizeStakeGrantsResponse, error) ActivateStakeGrant(context.Context, *MsgActivateStakeGrant) (*MsgActivateStakeGrantResponse, error) + BatchExchangeModification(context.Context, *MsgBatchExchangeModification) (*MsgBatchExchangeModificationResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -4556,6 +4649,9 @@ func (*UnimplementedMsgServer) AuthorizeStakeGrants(ctx context.Context, req *Ms func (*UnimplementedMsgServer) ActivateStakeGrant(ctx context.Context, req *MsgActivateStakeGrant) (*MsgActivateStakeGrantResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ActivateStakeGrant not implemented") } +func (*UnimplementedMsgServer) BatchExchangeModification(ctx context.Context, req *MsgBatchExchangeModification) (*MsgBatchExchangeModificationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchExchangeModification not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -5191,6 +5287,24 @@ func _Msg_ActivateStakeGrant_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Msg_BatchExchangeModification_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgBatchExchangeModification) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).BatchExchangeModification(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Msg/BatchExchangeModification", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).BatchExchangeModification(ctx, req.(*MsgBatchExchangeModification)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.exchange.v1beta1.Msg", HandlerType: (*MsgServer)(nil), @@ -5335,6 +5449,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "ActivateStakeGrant", Handler: _Msg_ActivateStakeGrant_Handler, }, + { + MethodName: "BatchExchangeModification", + Handler: _Msg_BatchExchangeModification_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/exchange/v1beta1/tx.proto", @@ -8975,6 +9093,71 @@ func (m *MsgActivateStakeGrantResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *MsgBatchExchangeModification) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgBatchExchangeModification) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgBatchExchangeModification) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Proposal != nil { + { + size, err := m.Proposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgBatchExchangeModificationResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgBatchExchangeModificationResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgBatchExchangeModificationResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -10502,6 +10685,32 @@ func (m *MsgActivateStakeGrantResponse) Size() (n int) { return n } +func (m *MsgBatchExchangeModification) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Proposal != nil { + l = m.Proposal.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgBatchExchangeModificationResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -21614,6 +21823,174 @@ func (m *MsgActivateStakeGrantResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgBatchExchangeModification) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBatchExchangeModification: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchExchangeModification: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Proposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Proposal == nil { + m.Proposal = &BatchExchangeModificationProposal{} + } + if err := m.Proposal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBatchExchangeModificationResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBatchExchangeModificationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchExchangeModificationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/events.pb.go b/chain/peggy/types/events.pb.go index ac80a720..179da07d 100644 --- a/chain/peggy/types/events.pb.go +++ b/chain/peggy/types/events.pb.go @@ -1210,6 +1210,172 @@ func (m *EventValidatorSlash) GetMoniker() string { return "" } +type EventDepositReceived struct { + // Ethereum sender address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // Injective receiver address + Receiver string `protobuf:"bytes,2,opt,name=receiver,proto3" json:"receiver,omitempty"` + // Coin deposited to Injective + Amount github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,3,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"amount"` +} + +func (m *EventDepositReceived) Reset() { *m = EventDepositReceived{} } +func (m *EventDepositReceived) String() string { return proto.CompactTextString(m) } +func (*EventDepositReceived) ProtoMessage() {} +func (*EventDepositReceived) Descriptor() ([]byte, []int) { + return fileDescriptor_95f217691d2f42c2, []int{17} +} +func (m *EventDepositReceived) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventDepositReceived) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventDepositReceived.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventDepositReceived) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventDepositReceived.Merge(m, src) +} +func (m *EventDepositReceived) XXX_Size() int { + return m.Size() +} +func (m *EventDepositReceived) XXX_DiscardUnknown() { + xxx_messageInfo_EventDepositReceived.DiscardUnknown(m) +} + +var xxx_messageInfo_EventDepositReceived proto.InternalMessageInfo + +func (m *EventDepositReceived) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventDepositReceived) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + +type EventWithdrawalsCompleted struct { + // token denom of each withdrawal + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // individual withdrawals + Withdrawals []*Withdrawal `protobuf:"bytes,2,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` +} + +func (m *EventWithdrawalsCompleted) Reset() { *m = EventWithdrawalsCompleted{} } +func (m *EventWithdrawalsCompleted) String() string { return proto.CompactTextString(m) } +func (*EventWithdrawalsCompleted) ProtoMessage() {} +func (*EventWithdrawalsCompleted) Descriptor() ([]byte, []int) { + return fileDescriptor_95f217691d2f42c2, []int{18} +} +func (m *EventWithdrawalsCompleted) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventWithdrawalsCompleted) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventWithdrawalsCompleted.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventWithdrawalsCompleted) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventWithdrawalsCompleted.Merge(m, src) +} +func (m *EventWithdrawalsCompleted) XXX_Size() int { + return m.Size() +} +func (m *EventWithdrawalsCompleted) XXX_DiscardUnknown() { + xxx_messageInfo_EventWithdrawalsCompleted.DiscardUnknown(m) +} + +var xxx_messageInfo_EventWithdrawalsCompleted proto.InternalMessageInfo + +func (m *EventWithdrawalsCompleted) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *EventWithdrawalsCompleted) GetWithdrawals() []*Withdrawal { + if m != nil { + return m.Withdrawals + } + return nil +} + +type Withdrawal struct { + // Injective sender address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // Ethereum receiver address + Receiver string `protobuf:"bytes,2,opt,name=receiver,proto3" json:"receiver,omitempty"` + // Amount of tokens withdrawn to Ethereum + Amount cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *Withdrawal) Reset() { *m = Withdrawal{} } +func (m *Withdrawal) String() string { return proto.CompactTextString(m) } +func (*Withdrawal) ProtoMessage() {} +func (*Withdrawal) Descriptor() ([]byte, []int) { + return fileDescriptor_95f217691d2f42c2, []int{19} +} +func (m *Withdrawal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Withdrawal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Withdrawal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Withdrawal) XXX_Merge(src proto.Message) { + xxx_messageInfo_Withdrawal.Merge(m, src) +} +func (m *Withdrawal) XXX_Size() int { + return m.Size() +} +func (m *Withdrawal) XXX_DiscardUnknown() { + xxx_messageInfo_Withdrawal.DiscardUnknown(m) +} + +var xxx_messageInfo_Withdrawal proto.InternalMessageInfo + +func (m *Withdrawal) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *Withdrawal) GetReceiver() string { + if m != nil { + return m.Receiver + } + return "" +} + func init() { proto.RegisterType((*EventAttestationObserved)(nil), "injective.peggy.v1.EventAttestationObserved") proto.RegisterType((*EventBridgeWithdrawCanceled)(nil), "injective.peggy.v1.EventBridgeWithdrawCanceled") @@ -1228,92 +1394,99 @@ func init() { proto.RegisterType((*EventCancelSendToEth)(nil), "injective.peggy.v1.EventCancelSendToEth") proto.RegisterType((*EventSubmitBadSignatureEvidence)(nil), "injective.peggy.v1.EventSubmitBadSignatureEvidence") proto.RegisterType((*EventValidatorSlash)(nil), "injective.peggy.v1.EventValidatorSlash") + proto.RegisterType((*EventDepositReceived)(nil), "injective.peggy.v1.EventDepositReceived") + proto.RegisterType((*EventWithdrawalsCompleted)(nil), "injective.peggy.v1.EventWithdrawalsCompleted") + proto.RegisterType((*Withdrawal)(nil), "injective.peggy.v1.Withdrawal") } func init() { proto.RegisterFile("injective/peggy/v1/events.proto", fileDescriptor_95f217691d2f42c2) } var fileDescriptor_95f217691d2f42c2 = []byte{ - // 1265 bytes of a gzipped FileDescriptorProto + // 1340 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x6f, 0x1b, 0xc5, - 0x17, 0xcf, 0xda, 0x4e, 0x52, 0x4f, 0x1c, 0x3b, 0x9d, 0xe6, 0xdb, 0xaf, 0x1b, 0x54, 0xc7, 0xdd, - 0xb6, 0x24, 0x80, 0x6a, 0xb7, 0x45, 0x1c, 0x90, 0xb8, 0xd4, 0xae, 0xa1, 0xe1, 0x47, 0x2b, 0x6d, - 0x42, 0x91, 0xb8, 0x58, 0xb3, 0x3b, 0xaf, 0xde, 0x69, 0xbc, 0x33, 0x66, 0x67, 0xec, 0x36, 0x67, - 0x2e, 0x1c, 0x38, 0x70, 0xe1, 0xca, 0xff, 0xc0, 0x81, 0x3f, 0x01, 0xa9, 0xdc, 0x7a, 0x44, 0x1c, - 0x2a, 0xd4, 0xfe, 0x07, 0x48, 0x5c, 0x38, 0xa1, 0x9d, 0x99, 0xdd, 0x38, 0x59, 0x5b, 0xa4, 0x01, - 0xca, 0xc9, 0x3b, 0x6f, 0xde, 0x7b, 0xf3, 0xe6, 0xf3, 0x3e, 0xf3, 0xde, 0x33, 0xda, 0x64, 0xfc, - 0x21, 0x04, 0x8a, 0x4d, 0xa0, 0x3d, 0x82, 0xc1, 0xe0, 0xa0, 0x3d, 0xb9, 0xd1, 0x86, 0x09, 0x70, - 0x25, 0x5b, 0xa3, 0x58, 0x28, 0x81, 0x71, 0xa6, 0xd0, 0xd2, 0x0a, 0xad, 0xc9, 0x8d, 0x8d, 0xf5, - 0x81, 0x18, 0x08, 0xbd, 0xdd, 0x4e, 0xbe, 0x8c, 0xe6, 0xc6, 0x95, 0x19, 0xae, 0x88, 0x52, 0x20, - 0x15, 0x51, 0x4c, 0x70, 0xab, 0xd5, 0x98, 0xa1, 0xa5, 0x0e, 0x46, 0x60, 0xcf, 0x73, 0x7f, 0x73, - 0x50, 0xbd, 0x97, 0x04, 0x70, 0xeb, 0xd0, 0xf4, 0x9e, 0x2f, 0x21, 0x9e, 0x00, 0xc5, 0x77, 0xd0, - 0xda, 0x94, 0xc7, 0x7e, 0x62, 0x57, 0x77, 0x9a, 0xce, 0x76, 0xf5, 0xe6, 0xc5, 0x56, 0x3e, 0xce, - 0x56, 0x77, 0x48, 0x58, 0xb4, 0x77, 0x30, 0x02, 0xaf, 0x36, 0x65, 0x96, 0x08, 0xf0, 0x16, 0xaa, - 0xf9, 0x31, 0xa3, 0x03, 0xe8, 0x07, 0x82, 0xab, 0x98, 0x04, 0xaa, 0x5e, 0x68, 0x3a, 0xdb, 0x65, - 0xaf, 0x6a, 0xc4, 0x5d, 0x2b, 0xc5, 0xaf, 0x1f, 0x2a, 0x86, 0x84, 0xf1, 0x3e, 0xa3, 0xf5, 0x62, - 0xd3, 0xd9, 0x2e, 0x79, 0xab, 0x56, 0x31, 0x91, 0xee, 0x50, 0x7c, 0x15, 0x55, 0xa7, 0x43, 0x63, - 0xb4, 0x5e, 0x6a, 0x3a, 0xdb, 0x15, 0x6f, 0x75, 0x4a, 0xba, 0x43, 0xf1, 0x3a, 0x5a, 0xe4, 0x82, - 0x07, 0x50, 0x5f, 0xd4, 0x4e, 0xcc, 0xc2, 0xe5, 0xe8, 0x35, 0x7d, 0xe7, 0x8e, 0x76, 0xf9, 0x19, - 0x53, 0x21, 0x8d, 0xc9, 0xa3, 0x2e, 0xe1, 0x01, 0x0c, 0x81, 0xce, 0x0a, 0xd6, 0x39, 0x69, 0xb0, - 0x85, 0x19, 0xc1, 0xba, 0x3f, 0x3a, 0x08, 0xeb, 0x03, 0xef, 0x8d, 0xd5, 0x40, 0x30, 0x3e, 0xe8, - 0x10, 0x15, 0x84, 0x49, 0x70, 0x14, 0xb8, 0x88, 0xac, 0x77, 0xb3, 0xc0, 0x37, 0xd0, 0xba, 0x88, - 0x83, 0x10, 0xa4, 0x8a, 0x89, 0x12, 0x71, 0x9f, 0x50, 0x1a, 0x83, 0x94, 0x16, 0xaf, 0x73, 0xd3, - 0x7b, 0xb7, 0xcc, 0x16, 0xde, 0x44, 0x2b, 0x7e, 0xe2, 0xb1, 0x6f, 0xee, 0x6a, 0x00, 0x43, 0x5a, - 0x74, 0x37, 0x91, 0xe0, 0xcb, 0x68, 0xd5, 0x28, 0x28, 0x16, 0x81, 0x18, 0x2b, 0x0d, 0x56, 0xc9, - 0xab, 0x68, 0xe1, 0x9e, 0x91, 0xe1, 0x26, 0xaa, 0x58, 0xa5, 0xc7, 0x7d, 0x46, 0x65, 0x7d, 0xb1, - 0x59, 0xcc, 0xdc, 0xec, 0x3d, 0xde, 0xa1, 0xd2, 0xfd, 0xce, 0x41, 0x1b, 0xf9, 0x7b, 0xfc, 0x6b, - 0xb8, 0xe1, 0x0b, 0xe8, 0x8c, 0x89, 0x28, 0x63, 0xc1, 0xb2, 0x5e, 0x4f, 0x27, 0xb6, 0x34, 0x9d, - 0xd8, 0x6f, 0x0b, 0x96, 0xcd, 0xf7, 0xc9, 0x50, 0x82, 0xfa, 0x74, 0x44, 0x89, 0x02, 0x0f, 0xbe, - 0x18, 0x83, 0x54, 0xf8, 0x12, 0xaa, 0x4c, 0xb4, 0xd8, 0xc2, 0xe4, 0x68, 0xcb, 0x15, 0x23, 0xcb, - 0x70, 0xb2, 0x2a, 0x21, 0xb0, 0x41, 0xa8, 0x6c, 0x58, 0xd6, 0xee, 0x8e, 0x96, 0xe1, 0x0f, 0x51, - 0xd5, 0x2a, 0x45, 0x10, 0xf9, 0x10, 0xcb, 0x7a, 0xb1, 0x59, 0xdc, 0x5e, 0xb9, 0x79, 0x79, 0xd6, - 0x9b, 0x30, 0x14, 0xbb, 0x4f, 0x86, 0x8c, 0x26, 0x19, 0xf3, 0xac, 0xff, 0x4f, 0x8c, 0x25, 0xee, - 0xa0, 0xd5, 0x18, 0x1e, 0x91, 0x98, 0xf6, 0x49, 0x24, 0xc6, 0xdc, 0x24, 0xa6, 0xdc, 0xb9, 0xf8, - 0xe4, 0xd9, 0xe6, 0xc2, 0x2f, 0xcf, 0x36, 0xff, 0x17, 0x08, 0x19, 0x09, 0x29, 0xe9, 0x7e, 0x8b, - 0x89, 0x76, 0x44, 0x54, 0xd8, 0xda, 0xe1, 0xca, 0xab, 0x18, 0x9b, 0x5b, 0xda, 0x24, 0xb9, 0x97, - 0xf5, 0xa1, 0xc4, 0x3e, 0x70, 0x4d, 0xf5, 0xb2, 0xb7, 0x62, 0x64, 0x7b, 0x89, 0xc8, 0xfd, 0xde, - 0x41, 0x17, 0x35, 0x2e, 0xbb, 0xa0, 0xee, 0xe5, 0x09, 0x04, 0x12, 0xbf, 0x85, 0xce, 0x4e, 0xd2, - 0x20, 0x33, 0xca, 0x99, 0xec, 0xad, 0x65, 0x1b, 0x29, 0xdf, 0x4e, 0x41, 0xd1, 0xeb, 0x68, 0x5d, - 0x8c, 0xc0, 0xa8, 0x83, 0x0a, 0x33, 0x93, 0xa2, 0x36, 0xc1, 0xe9, 0x5e, 0x4f, 0x85, 0xd6, 0xc2, - 0x7d, 0x68, 0xdf, 0x8c, 0x49, 0x65, 0x57, 0xf0, 0x07, 0x2c, 0x8e, 0x4e, 0x92, 0xc4, 0x97, 0x8f, - 0xce, 0xfd, 0xb2, 0x80, 0xaa, 0x16, 0x1f, 0x4e, 0xf7, 0x44, 0x4f, 0x85, 0xf8, 0x0a, 0xaa, 0x0a, - 0xcb, 0x72, 0xf3, 0x20, 0xec, 0x51, 0x95, 0x54, 0x9a, 0x3c, 0x09, 0x7c, 0x1e, 0x2d, 0x49, 0xe0, - 0x14, 0x62, 0xeb, 0xdd, 0xae, 0xf0, 0x06, 0x3a, 0x13, 0x43, 0x00, 0x6c, 0x02, 0xb1, 0xbd, 0x62, - 0xb6, 0xc6, 0x1f, 0xa0, 0xa5, 0x23, 0xc9, 0x6e, 0xdb, 0x64, 0x6f, 0x0d, 0x98, 0x0a, 0xc7, 0x7e, - 0x2b, 0x10, 0x51, 0xdb, 0xe4, 0xdd, 0xfe, 0x5c, 0x93, 0x74, 0xdf, 0x16, 0xed, 0xae, 0x60, 0xdc, - 0xb3, 0xe6, 0xf8, 0x2e, 0x42, 0xf6, 0x19, 0x3d, 0x00, 0x53, 0xe1, 0x4e, 0xe1, 0xac, 0x6c, 0x5c, - 0xbc, 0x0f, 0xe0, 0x0e, 0xd0, 0x59, 0x0d, 0x82, 0xc5, 0xda, 0x14, 0xa9, 0x63, 0xb5, 0xc5, 0xc9, - 0xd5, 0x96, 0x53, 0xc0, 0xad, 0xd0, 0xfa, 0xf1, 0x9e, 0x73, 0x5f, 0x28, 0x48, 0xce, 0xd2, 0xcd, - 0xf0, 0xe8, 0x59, 0x5a, 0x64, 0xce, 0xca, 0x57, 0xfd, 0xc2, 0x9c, 0xaa, 0x3f, 0x11, 0x2a, 0x83, - 0xde, 0x2c, 0xdc, 0xdf, 0x0b, 0xf6, 0x7e, 0xb7, 0x61, 0x24, 0x24, 0x53, 0xba, 0x5d, 0xfd, 0xf5, - 0x99, 0x97, 0x50, 0xc5, 0x28, 0x1c, 0x29, 0x09, 0xc6, 0xc8, 0x56, 0x84, 0x7c, 0x58, 0xc5, 0x59, - 0x61, 0x6d, 0xa1, 0x1a, 0xa8, 0x10, 0x62, 0x18, 0x47, 0x7d, 0xcb, 0x9a, 0x92, 0xa9, 0x8f, 0xa9, - 0x78, 0xd7, 0xb0, 0x67, 0x0b, 0xd5, 0x4c, 0xb2, 0xfa, 0x19, 0x89, 0xcc, 0xa3, 0xae, 0x1a, 0xb1, - 0x97, 0x52, 0xe9, 0x2a, 0xaa, 0xea, 0x37, 0x7f, 0x58, 0x70, 0x97, 0xb4, 0xde, 0xaa, 0x96, 0x66, - 0xf5, 0xf6, 0x9d, 0x8c, 0x71, 0xcb, 0x27, 0x29, 0x2f, 0x29, 0xbf, 0xe6, 0x65, 0xf6, 0xcc, 0xfc, - 0x67, 0x8e, 0x51, 0x89, 0x12, 0x45, 0xea, 0x65, 0xad, 0xa2, 0xbf, 0xdd, 0x3f, 0xd2, 0xee, 0x97, - 0x35, 0xda, 0x57, 0x0d, 0xfc, 0x31, 0x0e, 0x97, 0x72, 0x1c, 0xce, 0xe3, 0xb8, 0x38, 0x0b, 0xc7, - 0x79, 0x80, 0x2c, 0xcd, 0xa7, 0xfa, 0x4f, 0x05, 0xf4, 0x7f, 0x7d, 0xf9, 0x9e, 0xd7, 0xbd, 0x79, - 0xfd, 0x36, 0x8c, 0x86, 0xe2, 0x00, 0xe8, 0x2b, 0x47, 0xe0, 0x12, 0xaa, 0x58, 0x46, 0x99, 0x89, - 0xc3, 0xf0, 0x6e, 0xc5, 0xc8, 0x6e, 0xeb, 0xb9, 0xe3, 0x84, 0x18, 0x60, 0x54, 0xe2, 0x24, 0x02, - 0x7b, 0x67, 0xfd, 0xad, 0xab, 0xe0, 0x41, 0xe4, 0x8b, 0xa1, 0xe1, 0x97, 0x67, 0x57, 0x49, 0x15, - 0xa4, 0x10, 0xb0, 0x88, 0x0c, 0x0d, 0x69, 0x4a, 0x5e, 0xb6, 0x9e, 0x8b, 0x65, 0x79, 0x3e, 0x96, - 0x5f, 0x17, 0xd1, 0xf9, 0x5c, 0x77, 0xff, 0x2f, 0xa0, 0x3c, 0xd2, 0x81, 0x4a, 0xf9, 0x0e, 0x94, - 0x9f, 0x10, 0x16, 0xff, 0xb9, 0x09, 0x61, 0xe9, 0xef, 0x4f, 0x08, 0xcb, 0xb9, 0x09, 0xe1, 0x14, - 0x6f, 0xdd, 0x7d, 0xcf, 0x56, 0x71, 0x33, 0xff, 0xbd, 0x64, 0xe7, 0x74, 0xbf, 0x72, 0xd0, 0xa6, - 0x69, 0xb9, 0x63, 0x3f, 0x62, 0xaa, 0x43, 0xe8, 0x2e, 0x1b, 0x70, 0xa2, 0xc6, 0x31, 0xf4, 0x26, - 0x8c, 0x42, 0x82, 0xe3, 0x9b, 0xe8, 0xac, 0x4f, 0xa8, 0x9e, 0x17, 0x64, 0xba, 0x69, 0x87, 0x92, - 0x9a, 0x4f, 0x68, 0x4f, 0x85, 0x99, 0x0d, 0x7e, 0x17, 0x5d, 0xc8, 0xe9, 0xf6, 0xe5, 0xd8, 0x4f, - 0xf0, 0xb6, 0xbd, 0xe8, 0xfc, 0x31, 0x9b, 0x5d, 0xb3, 0xeb, 0xfe, 0xe0, 0xa0, 0x73, 0x29, 0xaf, - 0x4c, 0x12, 0x76, 0x87, 0x44, 0xea, 0xf9, 0x7c, 0x24, 0x1e, 0x41, 0xac, 0x8f, 0x2c, 0x7a, 0x66, - 0x91, 0x90, 0x3d, 0x06, 0x22, 0x05, 0x4f, 0x5b, 0xbe, 0x59, 0x25, 0x13, 0x54, 0x20, 0xb8, 0x04, - 0x2e, 0xc7, 0xf2, 0xd8, 0x78, 0xb3, 0x96, 0x6d, 0xa4, 0x75, 0xf2, 0x0d, 0xb4, 0x96, 0x8d, 0x43, - 0xa9, 0xae, 0x79, 0x93, 0xb5, 0x54, 0x9e, 0xaa, 0xd6, 0xd1, 0x72, 0x24, 0x38, 0xdb, 0xcf, 0x9a, - 0x40, 0xba, 0xec, 0xc0, 0x93, 0xe7, 0x0d, 0xe7, 0xe9, 0xf3, 0x86, 0xf3, 0xeb, 0xf3, 0x86, 0xf3, - 0xcd, 0x8b, 0xc6, 0xc2, 0xd3, 0x17, 0x8d, 0x85, 0x9f, 0x5f, 0x34, 0x16, 0x3e, 0xff, 0x68, 0xaa, - 0xfb, 0xef, 0xa4, 0x94, 0xfb, 0x98, 0xf8, 0xb2, 0x9d, 0x11, 0xf0, 0x5a, 0x20, 0x62, 0x98, 0x5e, - 0x26, 0x33, 0x77, 0x3b, 0x12, 0x74, 0x3c, 0x04, 0x69, 0xff, 0x2b, 0xea, 0x31, 0xc1, 0x5f, 0xd2, - 0xff, 0x14, 0xdf, 0xfe, 0x33, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x8d, 0x4c, 0x9e, 0xbc, 0x0e, 0x00, - 0x00, + 0x17, 0xcf, 0xda, 0x4e, 0xd2, 0xbc, 0x38, 0x4e, 0x3a, 0xcd, 0xb7, 0x5f, 0x37, 0xa8, 0x8e, 0xbb, + 0x6d, 0x49, 0x00, 0xd5, 0x6e, 0x8b, 0x7a, 0x40, 0xe2, 0x40, 0xe3, 0x06, 0x1a, 0x7e, 0xb4, 0xd2, + 0x26, 0x14, 0x89, 0x8b, 0x35, 0xde, 0x79, 0xf5, 0x4e, 0xe3, 0xdd, 0x31, 0x3b, 0x63, 0xa7, 0x39, + 0x73, 0xe1, 0xc0, 0x01, 0x09, 0x71, 0xe5, 0x7f, 0xe0, 0xc0, 0x9f, 0x80, 0x54, 0x6e, 0x3d, 0x22, + 0x0e, 0x15, 0x6a, 0xfe, 0x03, 0x24, 0x2e, 0x9c, 0xd0, 0xce, 0xcc, 0x6e, 0x9c, 0xac, 0x2d, 0xd2, + 0x14, 0xca, 0xc9, 0x9e, 0x37, 0xef, 0xbd, 0x79, 0xf3, 0x79, 0x9f, 0x79, 0xef, 0x2d, 0xac, 0xf2, + 0xe8, 0x11, 0xfa, 0x8a, 0x0f, 0xb1, 0xd9, 0xc7, 0x6e, 0x77, 0xbf, 0x39, 0xbc, 0xd1, 0xc4, 0x21, + 0x46, 0x4a, 0x36, 0xfa, 0xb1, 0x50, 0x82, 0x90, 0x4c, 0xa1, 0xa1, 0x15, 0x1a, 0xc3, 0x1b, 0x2b, + 0xcb, 0x5d, 0xd1, 0x15, 0x7a, 0xbb, 0x99, 0xfc, 0x33, 0x9a, 0x2b, 0x57, 0xc6, 0xb8, 0xa2, 0x4a, + 0xa1, 0x54, 0x54, 0x71, 0x11, 0x59, 0xad, 0xda, 0x18, 0x2d, 0xb5, 0xdf, 0x47, 0x7b, 0x9e, 0xfb, + 0xbb, 0x03, 0xd5, 0xcd, 0x24, 0x80, 0xdb, 0x87, 0xa6, 0xf7, 0x3b, 0x12, 0xe3, 0x21, 0x32, 0x72, + 0x17, 0x96, 0x46, 0x3c, 0xb6, 0x13, 0xbb, 0xaa, 0x53, 0x77, 0xd6, 0x2b, 0x37, 0x2f, 0x36, 0xf2, + 0x71, 0x36, 0x5a, 0x3d, 0xca, 0xc3, 0x9d, 0xfd, 0x3e, 0x7a, 0x8b, 0x23, 0x66, 0x89, 0x80, 0xac, + 0xc1, 0x62, 0x27, 0xe6, 0xac, 0x8b, 0x6d, 0x5f, 0x44, 0x2a, 0xa6, 0xbe, 0xaa, 0x16, 0xea, 0xce, + 0xfa, 0x9c, 0x57, 0x31, 0xe2, 0x96, 0x95, 0x92, 0xd7, 0x0f, 0x15, 0x03, 0xca, 0xa3, 0x36, 0x67, + 0xd5, 0x62, 0xdd, 0x59, 0x2f, 0x79, 0x0b, 0x56, 0x31, 0x91, 0x6e, 0x31, 0x72, 0x15, 0x2a, 0xa3, + 0xa1, 0x71, 0x56, 0x2d, 0xd5, 0x9d, 0xf5, 0xb2, 0xb7, 0x30, 0x22, 0xdd, 0x62, 0x64, 0x19, 0xa6, + 0x23, 0x11, 0xf9, 0x58, 0x9d, 0xd6, 0x4e, 0xcc, 0xc2, 0x8d, 0xe0, 0x35, 0x7d, 0xe7, 0x0d, 0xed, + 0xf2, 0x33, 0xae, 0x02, 0x16, 0xd3, 0xbd, 0x16, 0x8d, 0x7c, 0xec, 0x21, 0x1b, 0x17, 0xac, 0x73, + 0xd2, 0x60, 0x0b, 0x63, 0x82, 0x75, 0x7f, 0x72, 0x80, 0xe8, 0x03, 0xef, 0x0f, 0x54, 0x57, 0xf0, + 0xa8, 0xbb, 0x41, 0x95, 0x1f, 0x24, 0xc1, 0x31, 0x8c, 0x44, 0x68, 0xbd, 0x9b, 0x05, 0xb9, 0x01, + 0xcb, 0x22, 0xf6, 0x03, 0x94, 0x2a, 0xa6, 0x4a, 0xc4, 0x6d, 0xca, 0x58, 0x8c, 0x52, 0x5a, 0xbc, + 0xce, 0x8d, 0xee, 0xdd, 0x36, 0x5b, 0x64, 0x15, 0xe6, 0x3b, 0x89, 0xc7, 0xb6, 0xb9, 0xab, 0x01, + 0x0c, 0xb4, 0xe8, 0x5e, 0x22, 0x21, 0x97, 0x61, 0xc1, 0x28, 0x28, 0x1e, 0xa2, 0x18, 0x28, 0x0d, + 0x56, 0xc9, 0x2b, 0x6b, 0xe1, 0x8e, 0x91, 0x91, 0x3a, 0x94, 0xad, 0xd2, 0xe3, 0x36, 0x67, 0xb2, + 0x3a, 0x5d, 0x2f, 0x66, 0x6e, 0x76, 0x1e, 0x6f, 0x31, 0xe9, 0x7e, 0xef, 0xc0, 0x4a, 0xfe, 0x1e, + 0xff, 0x1a, 0x6e, 0xe4, 0x02, 0x9c, 0x31, 0x11, 0x65, 0x2c, 0x98, 0xd5, 0xeb, 0xd1, 0xc4, 0x96, + 0x46, 0x13, 0xfb, 0x5d, 0xc1, 0xb2, 0xf9, 0x01, 0xed, 0x49, 0x54, 0x9f, 0xf6, 0x19, 0x55, 0xe8, + 0xe1, 0x17, 0x03, 0x94, 0x8a, 0x5c, 0x82, 0xf2, 0x50, 0x8b, 0x2d, 0x4c, 0x8e, 0xb6, 0x9c, 0x37, + 0xb2, 0x0c, 0x27, 0xab, 0x12, 0x20, 0xef, 0x06, 0xca, 0x86, 0x65, 0xed, 0xee, 0x6a, 0x19, 0xf9, + 0x10, 0x2a, 0x56, 0x29, 0xc4, 0xb0, 0x83, 0xb1, 0xac, 0x16, 0xeb, 0xc5, 0xf5, 0xf9, 0x9b, 0x97, + 0xc7, 0xbd, 0x09, 0x43, 0xb1, 0x07, 0xb4, 0xc7, 0x59, 0x92, 0x31, 0xcf, 0xfa, 0xff, 0xc4, 0x58, + 0x92, 0x0d, 0x58, 0x88, 0x71, 0x8f, 0xc6, 0xac, 0x4d, 0x43, 0x31, 0x88, 0x4c, 0x62, 0xe6, 0x36, + 0x2e, 0x3e, 0x79, 0xb6, 0x3a, 0xf5, 0xeb, 0xb3, 0xd5, 0xff, 0xf9, 0x42, 0x86, 0x42, 0x4a, 0xb6, + 0xdb, 0xe0, 0xa2, 0x19, 0x52, 0x15, 0x34, 0xb6, 0x22, 0xe5, 0x95, 0x8d, 0xcd, 0x6d, 0x6d, 0x92, + 0xdc, 0xcb, 0xfa, 0x50, 0x62, 0x17, 0x23, 0x4d, 0xf5, 0x39, 0x6f, 0xde, 0xc8, 0x76, 0x12, 0x91, + 0xfb, 0x83, 0x03, 0x17, 0x35, 0x2e, 0xdb, 0xa8, 0xee, 0xe7, 0x09, 0x84, 0x92, 0xbc, 0x05, 0x67, + 0x87, 0x69, 0x90, 0x19, 0xe5, 0x4c, 0xf6, 0x96, 0xb2, 0x8d, 0x94, 0x6f, 0xa7, 0xa0, 0xe8, 0x75, + 0x58, 0x16, 0x7d, 0x34, 0xea, 0xa8, 0x82, 0xcc, 0xa4, 0xa8, 0x4d, 0x48, 0xba, 0xb7, 0xa9, 0x02, + 0x6b, 0xe1, 0x3e, 0xb2, 0x6f, 0xc6, 0xa4, 0xb2, 0x25, 0xa2, 0x87, 0x3c, 0x0e, 0x4f, 0x92, 0xc4, + 0x17, 0x8f, 0xce, 0xfd, 0xb2, 0x00, 0x15, 0x8b, 0x4f, 0xc4, 0x76, 0xc4, 0xa6, 0x0a, 0xc8, 0x15, + 0xa8, 0x08, 0xcb, 0x72, 0xf3, 0x20, 0xec, 0x51, 0xe5, 0x54, 0x9a, 0x3c, 0x09, 0x72, 0x1e, 0x66, + 0x24, 0x46, 0x0c, 0x63, 0xeb, 0xdd, 0xae, 0xc8, 0x0a, 0x9c, 0x89, 0xd1, 0x47, 0x3e, 0xc4, 0xd8, + 0x5e, 0x31, 0x5b, 0x93, 0x0f, 0x60, 0xe6, 0x48, 0xb2, 0x9b, 0x36, 0xd9, 0x6b, 0x5d, 0xae, 0x82, + 0x41, 0xa7, 0xe1, 0x8b, 0xb0, 0x69, 0xf2, 0x6e, 0x7f, 0xae, 0x49, 0xb6, 0x6b, 0x8b, 0x76, 0x4b, + 0xf0, 0xc8, 0xb3, 0xe6, 0xe4, 0x1e, 0x80, 0x7d, 0x46, 0x0f, 0xd1, 0x54, 0xb8, 0x53, 0x38, 0x9b, + 0x33, 0x2e, 0xde, 0x47, 0x74, 0xbb, 0x70, 0x56, 0x83, 0x60, 0xb1, 0x36, 0x45, 0xea, 0x58, 0x6d, + 0x71, 0x72, 0xb5, 0xe5, 0x14, 0x70, 0x2b, 0x58, 0x3e, 0xde, 0x73, 0x1e, 0x08, 0x85, 0xc9, 0x59, + 0xba, 0x19, 0x1e, 0x3d, 0x4b, 0x8b, 0xcc, 0x59, 0xf9, 0xaa, 0x5f, 0x98, 0x50, 0xf5, 0x87, 0x42, + 0x65, 0xd0, 0x9b, 0x85, 0xfb, 0x47, 0xc1, 0xde, 0xef, 0x0e, 0xf6, 0x85, 0xe4, 0x4a, 0xb7, 0xab, + 0xbf, 0x3f, 0xf3, 0x12, 0x94, 0x8d, 0xc2, 0x91, 0x92, 0x60, 0x8c, 0x6c, 0x45, 0xc8, 0x87, 0x55, + 0x1c, 0x17, 0xd6, 0x1a, 0x2c, 0xa2, 0x0a, 0x30, 0xc6, 0x41, 0xd8, 0xb6, 0xac, 0x29, 0x99, 0xfa, + 0x98, 0x8a, 0xb7, 0x0d, 0x7b, 0xd6, 0x60, 0xd1, 0x24, 0xab, 0x9d, 0x91, 0xc8, 0x3c, 0xea, 0x8a, + 0x11, 0x7b, 0x29, 0x95, 0xae, 0x42, 0x45, 0xbf, 0xf9, 0xc3, 0x82, 0x3b, 0xa3, 0xf5, 0x16, 0xb4, + 0x34, 0xab, 0xb7, 0xb7, 0x32, 0xc6, 0xcd, 0x9e, 0xa4, 0xbc, 0xa4, 0xfc, 0x9a, 0x94, 0xd9, 0x33, + 0x93, 0x9f, 0x39, 0x81, 0x12, 0xa3, 0x8a, 0x56, 0xe7, 0xb4, 0x8a, 0xfe, 0xef, 0xfe, 0x99, 0x76, + 0xbf, 0xac, 0xd1, 0xbe, 0x6a, 0xe0, 0x8f, 0x71, 0xb8, 0x94, 0xe3, 0x70, 0x1e, 0xc7, 0xe9, 0x71, + 0x38, 0x4e, 0x02, 0x64, 0x66, 0x32, 0xd5, 0x7f, 0x2e, 0xc0, 0xff, 0xf5, 0xe5, 0x37, 0xbd, 0xd6, + 0xcd, 0xeb, 0x77, 0xb0, 0xdf, 0x13, 0xfb, 0xc8, 0x5e, 0x39, 0x02, 0x97, 0xa0, 0x6c, 0x19, 0x65, + 0x26, 0x0e, 0xc3, 0xbb, 0x79, 0x23, 0xbb, 0xa3, 0xe7, 0x8e, 0x13, 0x62, 0x40, 0xa0, 0x14, 0xd1, + 0x10, 0xed, 0x9d, 0xf5, 0x7f, 0x5d, 0x05, 0xf7, 0xc3, 0x8e, 0xe8, 0x19, 0x7e, 0x79, 0x76, 0x95, + 0x54, 0x41, 0x86, 0x3e, 0x0f, 0x69, 0xcf, 0x90, 0xa6, 0xe4, 0x65, 0xeb, 0x89, 0x58, 0xce, 0x4d, + 0xc6, 0xf2, 0xeb, 0x22, 0x9c, 0xcf, 0x75, 0xf7, 0xff, 0x02, 0xca, 0x23, 0x1d, 0xa8, 0x94, 0xef, + 0x40, 0xf9, 0x09, 0x61, 0xfa, 0x9f, 0x9b, 0x10, 0x66, 0x5e, 0x7e, 0x42, 0x98, 0xcd, 0x4d, 0x08, + 0xa7, 0x78, 0xeb, 0xee, 0xbb, 0xb6, 0x8a, 0x9b, 0xf9, 0xef, 0x05, 0x3b, 0xa7, 0xfb, 0x95, 0x03, + 0xab, 0xa6, 0xe5, 0x0e, 0x3a, 0x21, 0x57, 0x1b, 0x94, 0x6d, 0xf3, 0x6e, 0x44, 0xd5, 0x20, 0xc6, + 0xcd, 0x21, 0x67, 0x98, 0xe0, 0xf8, 0x26, 0x9c, 0xed, 0x50, 0xa6, 0xe7, 0x05, 0x99, 0x6e, 0xda, + 0xa1, 0x64, 0xb1, 0x43, 0xd9, 0xa6, 0x0a, 0x32, 0x1b, 0xf2, 0x0e, 0x5c, 0xc8, 0xe9, 0xb6, 0xe5, + 0xa0, 0x93, 0xe0, 0x6d, 0x7b, 0xd1, 0xf9, 0x63, 0x36, 0xdb, 0x66, 0xd7, 0xfd, 0xd1, 0x81, 0x73, + 0x29, 0xaf, 0x4c, 0x12, 0xb6, 0x7b, 0x54, 0xea, 0xf9, 0xbc, 0x2f, 0xf6, 0x30, 0xd6, 0x47, 0x16, + 0x3d, 0xb3, 0x48, 0xc8, 0x1e, 0x23, 0x95, 0x22, 0x4a, 0x5b, 0xbe, 0x59, 0x25, 0x13, 0x94, 0x2f, + 0x22, 0x89, 0x91, 0x1c, 0xc8, 0x63, 0xe3, 0xcd, 0x52, 0xb6, 0x91, 0xd6, 0xc9, 0x37, 0x60, 0x29, + 0x1b, 0x87, 0x52, 0x5d, 0xf3, 0x26, 0x17, 0x53, 0x79, 0xaa, 0x5a, 0x85, 0xd9, 0x50, 0x44, 0x7c, + 0x37, 0x6b, 0x02, 0xe9, 0xd2, 0xfd, 0xd6, 0xb1, 0x19, 0xb0, 0x0d, 0xcd, 0xb6, 0x85, 0xd1, 0xa9, + 0xc4, 0x99, 0x38, 0x95, 0x14, 0x26, 0x4e, 0x25, 0xc5, 0x97, 0x9a, 0x4a, 0x5c, 0x09, 0x17, 0x8e, + 0x54, 0x7b, 0xda, 0x93, 0x2d, 0x11, 0xf6, 0x7b, 0xa8, 0x90, 0x4d, 0xf8, 0xe4, 0x79, 0x0f, 0xe6, + 0xf7, 0x0e, 0xb5, 0xab, 0x05, 0xfd, 0x58, 0x6a, 0xe3, 0x1e, 0xcb, 0xa1, 0x53, 0x6f, 0xd4, 0xc4, + 0xdd, 0x03, 0x38, 0xdc, 0x3a, 0xd5, 0xfd, 0x6f, 0x1d, 0xbb, 0xff, 0xc9, 0x7a, 0xe4, 0x06, 0x3e, + 0x79, 0x5e, 0x73, 0x9e, 0x3e, 0xaf, 0x39, 0xbf, 0x3d, 0xaf, 0x39, 0xdf, 0x1c, 0xd4, 0xa6, 0x9e, + 0x1e, 0xd4, 0xa6, 0x7e, 0x39, 0xa8, 0x4d, 0x7d, 0xfe, 0xd1, 0x08, 0x70, 0x5b, 0xe9, 0x4d, 0x3e, + 0xa6, 0x1d, 0xd9, 0xcc, 0xee, 0x75, 0xcd, 0x17, 0x31, 0x8e, 0x2e, 0x93, 0xef, 0x9e, 0x66, 0x28, + 0xd8, 0xa0, 0x87, 0xd2, 0x7e, 0xaf, 0x6b, 0x84, 0x3b, 0x33, 0xfa, 0x6b, 0xfd, 0xed, 0xbf, 0x02, + 0x00, 0x00, 0xff, 0xff, 0xb0, 0x7a, 0xbb, 0x0c, 0x40, 0x10, 0x00, 0x00, } func (m *EventAttestationObserved) Marshal() (dAtA []byte, err error) { @@ -2223,6 +2396,144 @@ func (m *EventValidatorSlash) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventDepositReceived) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventDepositReceived) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventDepositReceived) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventWithdrawalsCompleted) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventWithdrawalsCompleted) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventWithdrawalsCompleted) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Withdrawals) > 0 { + for iNdEx := len(m.Withdrawals) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Withdrawals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Withdrawal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Withdrawal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Receiver) > 0 { + i -= len(m.Receiver) + copy(dAtA[i:], m.Receiver) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Receiver))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { offset -= sovEvents(v) base := offset @@ -2660,15 +2971,72 @@ func (m *EventValidatorSlash) Size() (n int) { return n } -func sovEvents(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *EventDepositReceived) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovEvents(uint64(l)) + return n } -func sozEvents(x uint64) (n int) { - return sovEvents(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *EventWithdrawalsCompleted) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if len(m.Withdrawals) > 0 { + for _, e := range m.Withdrawals { + l = e.Size() + n += 1 + l + sovEvents(uint64(l)) + } + } + return n } -func (m *EventAttestationObserved) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 + +func (m *Withdrawal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Receiver) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovEvents(uint64(l)) + return n +} + +func sovEvents(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEvents(x uint64) (n int) { + return sovEvents(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *EventAttestationObserved) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 for iNdEx < l { preIndex := iNdEx var wire uint64 @@ -5654,6 +6022,418 @@ func (m *EventValidatorSlash) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventDepositReceived) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventDepositReceived: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventDepositReceived: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventWithdrawalsCompleted) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventWithdrawalsCompleted: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventWithdrawalsCompleted: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Withdrawals", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Withdrawals = append(m.Withdrawals, &Withdrawal{}) + if err := m.Withdrawals[len(m.Withdrawals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Withdrawal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Withdrawal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Withdrawal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Receiver", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Receiver = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvents(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/key.go b/chain/peggy/types/key.go index f1c4449c..c6091c9d 100644 --- a/chain/peggy/types/key.go +++ b/chain/peggy/types/key.go @@ -113,6 +113,9 @@ var ( PastEthSignatureCheckpointKey = []byte{0x1b} EthereumBlacklistKey = []byte{0x1c} + + // FakeCheckpointKey indexes eth signature checkpoints that never existed + FakeCheckpointKey = []byte{0x1d} ) func GetEthereumBlacklistStoreKey(addr common.Address) []byte { @@ -291,3 +294,8 @@ func GetERC20ToCosmosDenomKey(tokenContract common.Address) []byte { func GetPastEthSignatureCheckpointKey(checkpoint common.Hash) []byte { return append(PastEthSignatureCheckpointKey, checkpoint[:]...) } + +// GetFakeCheckpointKey indexes fake checkpoints previously signed by a validator +func GetFakeCheckpointKey(signature []byte) []byte { + return append(FakeCheckpointKey, signature...) +} diff --git a/chain/peggy/types/msgs.go b/chain/peggy/types/msgs.go index c1910b4f..2b866974 100644 --- a/chain/peggy/types/msgs.go +++ b/chain/peggy/types/msgs.go @@ -331,7 +331,7 @@ func (msg MsgDepositClaim) GetSignBytes() []byte { func (msg MsgDepositClaim) GetClaimer() sdk.AccAddress { err := msg.ValidateBasic() if err != nil { - panic("MsgDepositClaim failed ValidateBasic! Should have been handled earlier") + panic("MsgDepositClaim failed ValidateBasic! Should have been handled earlier:" + err.Error()) } val, _ := sdk.AccAddressFromBech32(msg.Orchestrator) diff --git a/chain/peggy/types/params.go b/chain/peggy/types/params.go index b518fc22..3185f14b 100644 --- a/chain/peggy/types/params.go +++ b/chain/peggy/types/params.go @@ -34,6 +34,7 @@ func DefaultParams() *Params { UnbondSlashingValsetsWindow: 10000, ClaimSlashingEnabled: false, Admins: nil, + SegregatedWalletAddress: "", } } @@ -103,6 +104,10 @@ func (p Params) ValidateBasic() error { return errors.Wrap(err, "admins") } + if err := validateSegregatedWallet(p.SegregatedWalletAddress); err != nil { + return errors.Wrap(err, "segregated wallet address") + } + return nil } @@ -320,3 +325,20 @@ func validateAdmins(i interface{}) error { return nil } + +func validateSegregatedWallet(i interface{}) error { + str, ok := i.(string) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if str == "" { + return nil + } + + if _, err := sdk.AccAddressFromBech32(str); err != nil { + return fmt.Errorf("invalid address %s: %w", str, err) + } + + return nil +} diff --git a/chain/peggy/types/params.pb.go b/chain/peggy/types/params.pb.go index 0d2bacca..e31cb171 100644 --- a/chain/peggy/types/params.pb.go +++ b/chain/peggy/types/params.pb.go @@ -49,6 +49,8 @@ type Params struct { BridgeContractStartHeight uint64 `protobuf:"varint,20,opt,name=bridge_contract_start_height,json=bridgeContractStartHeight,proto3" json:"bridge_contract_start_height,omitempty"` ValsetReward types.Coin `protobuf:"bytes,21,opt,name=valset_reward,json=valsetReward,proto3" json:"valset_reward"` Admins []string `protobuf:"bytes,22,rep,name=admins,proto3" json:"admins,omitempty"` + // address for receiving Peggy Deposits from sanctioned Ethereum addresses + SegregatedWalletAddress string `protobuf:"bytes,23,opt,name=segregated_wallet_address,json=segregatedWalletAddress,proto3" json:"segregated_wallet_address,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -203,6 +205,13 @@ func (m *Params) GetAdmins() []string { return nil } +func (m *Params) GetSegregatedWalletAddress() string { + if m != nil { + return m.SegregatedWalletAddress + } + return "" +} + func init() { proto.RegisterType((*Params)(nil), "injective.peggy.v1.Params") } @@ -210,58 +219,59 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/params.proto", fileDescriptor_f21ffdf8d29783da) } var fileDescriptor_f21ffdf8d29783da = []byte{ - // 803 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x95, 0x41, 0x6f, 0x23, 0x35, - 0x14, 0xc7, 0x33, 0x6c, 0xe9, 0xb6, 0xde, 0x96, 0x6e, 0xdd, 0xa4, 0xeb, 0xb6, 0x4b, 0x1a, 0x81, - 0x84, 0xa2, 0x15, 0xcc, 0xb4, 0x05, 0x71, 0x00, 0x21, 0x44, 0xd2, 0xa2, 0xad, 0xd8, 0x03, 0x4a, - 0x81, 0x95, 0xb8, 0x58, 0x9e, 0xb1, 0x77, 0xc6, 0x74, 0xc6, 0xae, 0xc6, 0x4e, 0xaa, 0xde, 0x38, - 0x73, 0xe2, 0xa3, 0xf0, 0x31, 0xf6, 0xb8, 0x47, 0x84, 0xd0, 0x0a, 0xb5, 0x07, 0x24, 0x3e, 0x05, - 0xf2, 0xb3, 0x27, 0x49, 0x03, 0x87, 0x6a, 0x2f, 0x55, 0xed, 0xdf, 0xff, 0xff, 0x9e, 0xf3, 0xec, - 0xfc, 0x83, 0xf6, 0xa5, 0xfa, 0x49, 0x64, 0x56, 0x4e, 0x44, 0x72, 0x21, 0xf2, 0xfc, 0x2a, 0x99, - 0x1c, 0x26, 0x17, 0xac, 0x66, 0x95, 0x89, 0x2f, 0x6a, 0x6d, 0x35, 0xc6, 0x53, 0x41, 0x0c, 0x82, - 0x78, 0x72, 0xb8, 0xdb, 0xce, 0x75, 0xae, 0x01, 0x27, 0xee, 0x3f, 0xaf, 0xdc, 0xed, 0x66, 0xda, - 0x54, 0xda, 0x24, 0x29, 0x33, 0x22, 0x99, 0x1c, 0xa6, 0xc2, 0xb2, 0xc3, 0x24, 0xd3, 0x52, 0x05, - 0xbe, 0xc9, 0x2a, 0xa9, 0x74, 0x02, 0x7f, 0xfd, 0xd6, 0x7b, 0xff, 0x20, 0xb4, 0xfc, 0x2d, 0x74, - 0xc3, 0x3b, 0x68, 0x05, 0xea, 0x53, 0xc9, 0x49, 0xd4, 0x8b, 0xfa, 0xab, 0xa3, 0xfb, 0xb0, 0x3e, - 0xe5, 0xf8, 0x00, 0xb5, 0x33, 0xad, 0x6c, 0xcd, 0x32, 0x4b, 0x8d, 0x1e, 0xd7, 0x99, 0xa0, 0x05, - 0x33, 0x05, 0x79, 0x0b, 0x64, 0xb8, 0x61, 0x67, 0x80, 0x9e, 0x32, 0x53, 0xe0, 0x4f, 0xd1, 0xa3, - 0xb4, 0x96, 0x3c, 0x17, 0x54, 0xd8, 0x42, 0xd4, 0x62, 0x5c, 0x51, 0xc6, 0x79, 0x2d, 0x8c, 0x21, - 0xf7, 0xc0, 0xd4, 0xf1, 0xf8, 0x24, 0xd0, 0xaf, 0x3c, 0xc4, 0x1f, 0xa0, 0x8d, 0xe0, 0xcb, 0x0a, - 0x26, 0x95, 0x3b, 0xcb, 0x52, 0x2f, 0xea, 0x2f, 0x8d, 0xd6, 0xfd, 0xf6, 0xd0, 0xed, 0x9e, 0x72, - 0x7c, 0x84, 0x3a, 0x46, 0xe6, 0x4a, 0x70, 0x3a, 0x61, 0xa5, 0x11, 0xd6, 0xd0, 0x4b, 0xa9, 0xb8, - 0xbe, 0x24, 0x6f, 0x83, 0x7a, 0xcb, 0xc3, 0x1f, 0x3c, 0x7b, 0x0e, 0x68, 0xce, 0x93, 0x32, 0x9b, - 0x15, 0x62, 0xea, 0x59, 0x9e, 0xf7, 0x0c, 0x3c, 0x0b, 0x9e, 0x03, 0xd4, 0x0e, 0x9e, 0xac, 0x64, - 0xb2, 0x9a, 0x5a, 0xee, 0x83, 0x05, 0x7b, 0x36, 0x04, 0x34, 0x73, 0x58, 0x56, 0xe7, 0xc2, 0xfa, - 0x2e, 0xd4, 0xca, 0x4a, 0xe8, 0xb1, 0x25, 0x2b, 0xde, 0xe1, 0x19, 0x34, 0xf9, 0xce, 0x13, 0xfc, - 0x21, 0xc2, 0x6c, 0x22, 0x6a, 0x96, 0x0b, 0x9a, 0x96, 0x3a, 0x3b, 0x07, 0x0b, 0x59, 0x05, 0xfd, - 0xc3, 0x40, 0x06, 0x0e, 0x38, 0x03, 0xfe, 0x02, 0xed, 0x35, 0xea, 0xe9, 0x68, 0xe7, 0x6c, 0x08, - 0x6c, 0x24, 0x48, 0x9a, 0xf1, 0xce, 0xec, 0xcf, 0x51, 0xc7, 0x94, 0xcc, 0x14, 0xf4, 0x85, 0xbb, - 0x31, 0xa9, 0x55, 0x18, 0x20, 0x79, 0xd0, 0x8b, 0xfa, 0x6b, 0x83, 0xf7, 0x5f, 0xbe, 0xde, 0x6f, - 0xfd, 0xf1, 0x7a, 0x7f, 0xcf, 0x3f, 0x25, 0xc3, 0xcf, 0x63, 0xa9, 0x93, 0x8a, 0xd9, 0x22, 0x7e, - 0x26, 0x72, 0x96, 0x5d, 0x1d, 0x8b, 0x6c, 0xb4, 0x05, 0x15, 0xbe, 0x0e, 0x05, 0xfc, 0x90, 0xf1, - 0xf7, 0xa8, 0xbd, 0x50, 0x18, 0x3e, 0x3f, 0x59, 0xbb, 0x7b, 0x5d, 0x7c, 0xab, 0x2e, 0xcc, 0xe8, - 0x7f, 0xca, 0xc2, 0x45, 0x90, 0xf5, 0x37, 0x2d, 0x0b, 0x97, 0x85, 0x4b, 0xd4, 0x5b, 0x2c, 0xab, - 0xd5, 0x8b, 0x52, 0x66, 0x56, 0xaa, 0x3c, 0xb4, 0x78, 0xe7, 0xee, 0x2d, 0xde, 0xbd, 0xdd, 0x62, - 0x56, 0xca, 0x77, 0x1b, 0xa2, 0xee, 0x58, 0xa5, 0x5a, 0x71, 0x0a, 0x3a, 0xd7, 0x62, 0xe1, 0xd9, - 0x6e, 0xc0, 0xb5, 0xed, 0x79, 0xd5, 0x59, 0x10, 0xdd, 0x7e, 0xbe, 0xe7, 0xff, 0x39, 0x72, 0xca, - 0xb8, 0x7b, 0x03, 0xd4, 0xbd, 0x42, 0x66, 0xc7, 0xb5, 0x20, 0x0f, 0xef, 0x7e, 0xe4, 0xc7, 0x0b, - 0xc3, 0xe6, 0x27, 0xb6, 0x38, 0x6b, 0x0a, 0xe1, 0x27, 0x68, 0xd3, 0x9b, 0xa9, 0xcb, 0x0f, 0xca, - 0x85, 0xd2, 0x15, 0xd9, 0x84, 0x6f, 0xee, 0x86, 0x07, 0x43, 0x2d, 0xd5, 0xb1, 0xdb, 0xc6, 0x9f, - 0xa3, 0xdd, 0x79, 0xad, 0xa8, 0xb3, 0xa3, 0x03, 0xda, 0x64, 0x02, 0xc1, 0x60, 0x7a, 0x34, 0x33, - 0x9d, 0x38, 0x3e, 0x0c, 0x18, 0x7f, 0x82, 0xb6, 0x61, 0xda, 0xb3, 0xc9, 0x08, 0xc5, 0xd2, 0x52, - 0x70, 0xb2, 0xd5, 0x8b, 0xfa, 0x2b, 0xa3, 0x36, 0xd0, 0x66, 0x22, 0x27, 0x9e, 0xe1, 0x2f, 0xd1, - 0xe3, 0x26, 0x26, 0xa6, 0xb9, 0x64, 0x59, 0x6d, 0x69, 0x21, 0x64, 0x5e, 0x58, 0xd2, 0x86, 0x71, - 0xee, 0x84, 0xcc, 0x68, 0xe2, 0xc9, 0x29, 0x9e, 0x82, 0x00, 0x1f, 0xa3, 0x75, 0x7f, 0x03, 0xb4, - 0x16, 0x97, 0xac, 0xe6, 0xa4, 0xd3, 0x8b, 0xfa, 0x0f, 0x8e, 0x76, 0x62, 0x7f, 0xce, 0xd8, 0x45, - 0x68, 0x1c, 0x22, 0x34, 0x76, 0xa7, 0x1e, 0x2c, 0xb9, 0xa1, 0x8e, 0xd6, 0xbc, 0x6b, 0x04, 0x26, - 0xbc, 0x8d, 0x96, 0x19, 0xaf, 0xa4, 0x32, 0x64, 0xbb, 0x77, 0xaf, 0xbf, 0x3a, 0x0a, 0xab, 0xcf, - 0x3a, 0x3f, 0xff, 0xd9, 0x6b, 0xfd, 0xf2, 0xf7, 0x6f, 0x4f, 0xd6, 0x7c, 0xa4, 0xfb, 0x84, 0x1d, - 0x88, 0x97, 0xd7, 0xdd, 0xe8, 0xd5, 0x75, 0x37, 0xfa, 0xeb, 0xba, 0x1b, 0xfd, 0x7a, 0xd3, 0x6d, - 0xbd, 0xba, 0xe9, 0xb6, 0x7e, 0xbf, 0xe9, 0xb6, 0x7e, 0xfc, 0x26, 0x97, 0xb6, 0x18, 0xa7, 0x71, - 0xa6, 0xab, 0xe4, 0xb4, 0x89, 0xfb, 0x67, 0x2c, 0x35, 0xc9, 0x34, 0xfc, 0x3f, 0xca, 0x74, 0x2d, - 0xe6, 0x97, 0x2e, 0x09, 0x93, 0x4a, 0xf3, 0x71, 0x29, 0x4c, 0xf8, 0xe9, 0xb0, 0x57, 0x17, 0xc2, - 0xa4, 0xcb, 0x10, 0xed, 0x1f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xfa, 0xa0, 0xe8, 0x5a, - 0x06, 0x00, 0x00, + // 830 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcf, 0x6f, 0x23, 0x35, + 0x18, 0xcd, 0xb0, 0xa5, 0xdb, 0xba, 0x2d, 0xdd, 0xba, 0x49, 0xeb, 0xb6, 0x4b, 0x3a, 0x02, 0x09, + 0x45, 0x2b, 0x98, 0x69, 0x0b, 0xe2, 0xb0, 0x08, 0x21, 0x92, 0x16, 0x6d, 0xc5, 0x1e, 0x50, 0x0a, + 0x54, 0xe2, 0x62, 0x79, 0xc6, 0xdf, 0xce, 0x98, 0xce, 0x8c, 0xab, 0xb1, 0x93, 0xaa, 0x37, 0xce, + 0x9c, 0xf8, 0x2b, 0x38, 0xf3, 0x67, 0xec, 0x71, 0x8f, 0x08, 0xa1, 0x0a, 0xb5, 0x07, 0xfe, 0x0d, + 0xe4, 0x1f, 0x93, 0xa4, 0x81, 0x43, 0xc5, 0x25, 0x8a, 0xfd, 0xde, 0xfb, 0x3e, 0xe7, 0xd9, 0x79, + 0x1f, 0xda, 0x17, 0xd5, 0x8f, 0x90, 0x6a, 0x31, 0x86, 0xf8, 0x12, 0xb2, 0xec, 0x3a, 0x1e, 0x1f, + 0xc6, 0x97, 0xac, 0x66, 0xa5, 0x8a, 0x2e, 0x6b, 0xa9, 0x25, 0xc6, 0x13, 0x42, 0x64, 0x09, 0xd1, + 0xf8, 0x70, 0xb7, 0x9d, 0xc9, 0x4c, 0x5a, 0x38, 0x36, 0xdf, 0x1c, 0x73, 0xb7, 0x9b, 0x4a, 0x55, + 0x4a, 0x15, 0x27, 0x4c, 0x41, 0x3c, 0x3e, 0x4c, 0x40, 0xb3, 0xc3, 0x38, 0x95, 0xa2, 0xf2, 0xf8, + 0x06, 0x2b, 0x45, 0x25, 0x63, 0xfb, 0xe9, 0xb6, 0xde, 0xfb, 0x75, 0x05, 0x2d, 0x7e, 0x63, 0xbb, + 0xe1, 0x1d, 0xb4, 0x64, 0xeb, 0x53, 0xc1, 0x49, 0x10, 0x06, 0xbd, 0xe5, 0xe1, 0x63, 0xbb, 0x3e, + 0xe5, 0xf8, 0x00, 0xb5, 0x53, 0x59, 0xe9, 0x9a, 0xa5, 0x9a, 0x2a, 0x39, 0xaa, 0x53, 0xa0, 0x39, + 0x53, 0x39, 0x79, 0xcb, 0xd2, 0x70, 0x83, 0x9d, 0x59, 0xe8, 0x05, 0x53, 0x39, 0xfe, 0x14, 0x6d, + 0x27, 0xb5, 0xe0, 0x19, 0x50, 0xd0, 0x39, 0xd4, 0x30, 0x2a, 0x29, 0xe3, 0xbc, 0x06, 0xa5, 0xc8, + 0x23, 0x2b, 0xea, 0x38, 0xf8, 0xc4, 0xa3, 0x5f, 0x3a, 0x10, 0x7f, 0x80, 0xd6, 0xbd, 0x2e, 0xcd, + 0x99, 0xa8, 0xcc, 0x59, 0x16, 0xc2, 0xa0, 0xb7, 0x30, 0x5c, 0x73, 0xdb, 0x03, 0xb3, 0x7b, 0xca, + 0xf1, 0x11, 0xea, 0x28, 0x91, 0x55, 0xc0, 0xe9, 0x98, 0x15, 0x0a, 0xb4, 0xa2, 0x57, 0xa2, 0xe2, + 0xf2, 0x8a, 0xbc, 0x6d, 0xd9, 0x9b, 0x0e, 0xfc, 0xde, 0x61, 0xe7, 0x16, 0x9a, 0xd1, 0x24, 0x4c, + 0xa7, 0x39, 0x4c, 0x34, 0x8b, 0xb3, 0x9a, 0xbe, 0xc3, 0xbc, 0xe6, 0x00, 0xb5, 0xbd, 0x26, 0x2d, + 0x98, 0x28, 0x27, 0x92, 0xc7, 0x56, 0x82, 0x1d, 0x36, 0xb0, 0xd0, 0x54, 0xa1, 0x59, 0x9d, 0x81, + 0x76, 0x5d, 0xa8, 0x16, 0x25, 0xc8, 0x91, 0x26, 0x4b, 0x4e, 0xe1, 0x30, 0xdb, 0xe4, 0x5b, 0x87, + 0xe0, 0x0f, 0x11, 0x66, 0x63, 0xa8, 0x59, 0x06, 0x34, 0x29, 0x64, 0x7a, 0x61, 0x25, 0x64, 0xd9, + 0xf2, 0x9f, 0x78, 0xa4, 0x6f, 0x00, 0x23, 0xc0, 0x9f, 0xa3, 0xbd, 0x86, 0x3d, 0xb1, 0x76, 0x46, + 0x86, 0xac, 0x8c, 0x78, 0x4a, 0x63, 0xef, 0x54, 0x7e, 0x8e, 0x3a, 0xaa, 0x60, 0x2a, 0xa7, 0xaf, + 0xcc, 0x8d, 0x09, 0x59, 0x79, 0x03, 0xc9, 0x4a, 0x18, 0xf4, 0x56, 0xfb, 0xef, 0xbf, 0xbe, 0xd9, + 0x6f, 0xfd, 0x71, 0xb3, 0xbf, 0xe7, 0x9e, 0x92, 0xe2, 0x17, 0x91, 0x90, 0x71, 0xc9, 0x74, 0x1e, + 0xbd, 0x84, 0x8c, 0xa5, 0xd7, 0xc7, 0x90, 0x0e, 0x37, 0x6d, 0x85, 0xaf, 0x7c, 0x01, 0x67, 0x32, + 0xfe, 0x0e, 0xb5, 0xe7, 0x0a, 0xdb, 0xdf, 0x4f, 0x56, 0x1f, 0x5e, 0x17, 0xdf, 0xab, 0x6b, 0x3d, + 0xfa, 0x8f, 0xb2, 0xf6, 0x22, 0xc8, 0xda, 0xff, 0x2d, 0x6b, 0x2f, 0x0b, 0x17, 0x28, 0x9c, 0x2f, + 0x2b, 0xab, 0x57, 0x85, 0x48, 0xb5, 0xa8, 0x32, 0xdf, 0xe2, 0x9d, 0x87, 0xb7, 0x78, 0xf7, 0x7e, + 0x8b, 0x69, 0x29, 0xd7, 0x6d, 0x80, 0xba, 0xa3, 0x2a, 0x91, 0x15, 0xa7, 0x96, 0x67, 0x5a, 0xcc, + 0x3d, 0xdb, 0x75, 0x7b, 0x6d, 0x7b, 0x8e, 0x75, 0xe6, 0x49, 0xf7, 0x9f, 0xef, 0xc5, 0xbf, 0x8e, + 0x9c, 0x30, 0x6e, 0xde, 0x00, 0x35, 0xaf, 0x90, 0xe9, 0x51, 0x0d, 0xe4, 0xc9, 0xc3, 0x8f, 0xfc, + 0x74, 0xce, 0x6c, 0x7e, 0xa2, 0xf3, 0xb3, 0xa6, 0x10, 0x7e, 0x86, 0x36, 0x9c, 0x98, 0x9a, 0xfc, + 0xa0, 0x1c, 0x2a, 0x59, 0x92, 0x0d, 0xfb, 0xcf, 0x5d, 0x77, 0xc0, 0x40, 0x8a, 0xea, 0xd8, 0x6c, + 0xe3, 0xcf, 0xd0, 0xee, 0x2c, 0x17, 0xea, 0xf4, 0xe8, 0x80, 0x36, 0x99, 0x40, 0xb0, 0x15, 0x6d, + 0x4f, 0x45, 0x27, 0x06, 0x1f, 0x78, 0x18, 0x7f, 0x82, 0xb6, 0xac, 0xdb, 0x53, 0x67, 0xa0, 0x62, + 0x49, 0x01, 0x9c, 0x6c, 0x86, 0x41, 0x6f, 0x69, 0xd8, 0xb6, 0x68, 0xe3, 0xc8, 0x89, 0xc3, 0xf0, + 0x17, 0xe8, 0x69, 0x13, 0x13, 0x93, 0x5c, 0xd2, 0xac, 0xd6, 0x34, 0x07, 0x91, 0xe5, 0x9a, 0xb4, + 0xad, 0x9d, 0x3b, 0x3e, 0x33, 0x9a, 0x78, 0x32, 0x8c, 0x17, 0x96, 0x80, 0x8f, 0xd1, 0x9a, 0xbb, + 0x01, 0x5a, 0xc3, 0x15, 0xab, 0x39, 0xe9, 0x84, 0x41, 0x6f, 0xe5, 0x68, 0x27, 0x72, 0xe7, 0x8c, + 0x4c, 0x84, 0x46, 0x3e, 0x42, 0x23, 0x73, 0xea, 0xfe, 0x82, 0x31, 0x75, 0xb8, 0xea, 0x54, 0x43, + 0x2b, 0xc2, 0x5b, 0x68, 0x91, 0xf1, 0x52, 0x54, 0x8a, 0x6c, 0x85, 0x8f, 0x7a, 0xcb, 0x43, 0xbf, + 0xc2, 0xcf, 0xd1, 0x8e, 0x82, 0xac, 0x86, 0x8c, 0x69, 0xe0, 0xf4, 0x8a, 0x15, 0x05, 0xe8, 0x49, + 0xfe, 0x6d, 0x3b, 0x43, 0xa6, 0x84, 0x73, 0x8b, 0xfb, 0x04, 0x7c, 0xde, 0xf9, 0xe9, 0xcf, 0xb0, + 0xf5, 0xf3, 0xdf, 0xbf, 0x3d, 0x5b, 0x75, 0xe3, 0xc0, 0xa5, 0x73, 0x1f, 0x5e, 0xdf, 0x76, 0x83, + 0x37, 0xb7, 0xdd, 0xe0, 0xaf, 0xdb, 0x6e, 0xf0, 0xcb, 0x5d, 0xb7, 0xf5, 0xe6, 0xae, 0xdb, 0xfa, + 0xfd, 0xae, 0xdb, 0xfa, 0xe1, 0xeb, 0x4c, 0xe8, 0x7c, 0x94, 0x44, 0xa9, 0x2c, 0xe3, 0xd3, 0x66, + 0x54, 0xbc, 0x64, 0x89, 0x8a, 0x27, 0x83, 0xe3, 0xa3, 0x54, 0xd6, 0x30, 0xbb, 0x34, 0x29, 0x1a, + 0x97, 0x92, 0x8f, 0x0a, 0x50, 0x7e, 0xec, 0xe8, 0xeb, 0x4b, 0x50, 0xc9, 0xa2, 0x1d, 0x0b, 0x1f, + 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xec, 0xc3, 0x94, 0xd9, 0x96, 0x06, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -284,6 +294,15 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.SegregatedWalletAddress) > 0 { + i -= len(m.SegregatedWalletAddress) + copy(dAtA[i:], m.SegregatedWalletAddress) + i = encodeVarintParams(dAtA, i, uint64(len(m.SegregatedWalletAddress))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } if len(m.Admins) > 0 { for iNdEx := len(m.Admins) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Admins[iNdEx]) @@ -545,6 +564,10 @@ func (m *Params) Size() (n int) { n += 2 + l + sovParams(uint64(l)) } } + l = len(m.SegregatedWalletAddress) + if l > 0 { + n += 2 + l + sovParams(uint64(l)) + } return n } @@ -1164,6 +1187,38 @@ func (m *Params) Unmarshal(dAtA []byte) error { } m.Admins = append(m.Admins, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SegregatedWalletAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SegregatedWalletAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/chain/peggy/types/types.go b/chain/peggy/types/types.go index 48959e4a..c0d814ed 100644 --- a/chain/peggy/types/types.go +++ b/chain/peggy/types/types.go @@ -252,7 +252,7 @@ func (v Valsets) Swap(i, j int) { func (b OutgoingTxBatch) GetFees() sdkmath.Int { sum := sdkmath.ZeroInt() for _, t := range b.Transactions { - sum.Add(t.Erc20Fee.Amount) + sum = sum.Add(t.Erc20Fee.Amount) } return sum } diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index c642dda9..5d9cff61 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -5,8 +5,8 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -573,51 +573,6 @@ func (m *RoleIDs) GetRoleIds() []uint32 { return nil } -// Voucher is used to represent a voucher -type Voucher struct { - Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` -} - -func (m *Voucher) Reset() { *m = Voucher{} } -func (m *Voucher) String() string { return proto.CompactTextString(m) } -func (*Voucher) ProtoMessage() {} -func (*Voucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{8} -} -func (m *Voucher) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Voucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Voucher.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Voucher) XXX_Merge(src proto.Message) { - xxx_messageInfo_Voucher.Merge(m, src) -} -func (m *Voucher) XXX_Size() int { - return m.Size() -} -func (m *Voucher) XXX_DiscardUnknown() { - xxx_messageInfo_Voucher.DiscardUnknown(m) -} - -var xxx_messageInfo_Voucher proto.InternalMessageInfo - -func (m *Voucher) GetCoins() github_com_cosmos_cosmos_sdk_types.Coins { - if m != nil { - return m.Coins - } - return nil -} - // AddressVoucher is used to represent a voucher for a specific address type AddressVoucher struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -628,7 +583,7 @@ func (m *AddressVoucher) Reset() { *m = AddressVoucher{} } func (m *AddressVoucher) String() string { return proto.CompactTextString(m) } func (*AddressVoucher) ProtoMessage() {} func (*AddressVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{9} + return fileDescriptor_6d25f3ecf3806c6c, []int{8} } func (m *AddressVoucher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -674,7 +629,6 @@ func init() { proto.RegisterType((*Role)(nil), "injective.permissions.v1beta1.Role") proto.RegisterType((*PolicyManagerCapability)(nil), "injective.permissions.v1beta1.PolicyManagerCapability") proto.RegisterType((*RoleIDs)(nil), "injective.permissions.v1beta1.RoleIDs") - proto.RegisterType((*Voucher)(nil), "injective.permissions.v1beta1.Voucher") proto.RegisterType((*AddressVoucher)(nil), "injective.permissions.v1beta1.AddressVoucher") } @@ -683,64 +637,62 @@ func init() { } var fileDescriptor_6d25f3ecf3806c6c = []byte{ - // 901 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xda, 0x8e, 0xd7, 0x79, 0xce, 0x0f, 0x33, 0x8a, 0x9a, 0x4d, 0x4b, 0x6d, 0xcb, 0x05, - 0x11, 0x0a, 0xb5, 0x69, 0x90, 0x10, 0x97, 0x4a, 0x38, 0xf6, 0x96, 0x2e, 0xc4, 0x3f, 0x18, 0x27, - 0x95, 0xca, 0x65, 0x35, 0x5e, 0x8f, 0x92, 0x21, 0xde, 0x1d, 0x6b, 0x67, 0x13, 0xc9, 0x37, 0x73, - 0xe6, 0xc2, 0x3f, 0xc1, 0x85, 0x03, 0x7f, 0x47, 0x8f, 0x39, 0x22, 0x0e, 0x01, 0x25, 0x37, 0xfe, - 0x0a, 0x34, 0xb3, 0xb3, 0xf6, 0x56, 0x22, 0x3f, 0xd4, 0x93, 0xe7, 0xbd, 0x6f, 0xbe, 0xef, 0xbd, - 0xf9, 0xf6, 0x79, 0x06, 0x9a, 0x2c, 0xf8, 0x89, 0x7a, 0x11, 0x3b, 0xa7, 0xcd, 0x29, 0x0d, 0x7d, - 0x26, 0x04, 0xe3, 0x81, 0x68, 0x9e, 0x3f, 0x1f, 0xd1, 0x88, 0x3c, 0x4f, 0xe7, 0x1a, 0xd3, 0x90, - 0x47, 0x1c, 0x3d, 0x5e, 0x10, 0x1a, 0x69, 0x50, 0x13, 0x1e, 0x56, 0x3c, 0x2e, 0x7c, 0x2e, 0x9a, - 0x23, 0x22, 0xe8, 0x42, 0xc5, 0xe3, 0x2c, 0x88, 0xe9, 0x0f, 0xb7, 0x8e, 0xf9, 0x31, 0x57, 0xcb, - 0xa6, 0x5c, 0xc5, 0xd9, 0xfa, 0xcf, 0x79, 0x58, 0xed, 0x11, 0x9f, 0x8a, 0x29, 0xf1, 0x28, 0xda, - 0x82, 0x95, 0x31, 0x0d, 0xb8, 0x6f, 0x19, 0x35, 0x63, 0x77, 0x15, 0xc7, 0x01, 0x7a, 0x02, 0xeb, - 0x1e, 0x0f, 0xa2, 0x90, 0x78, 0x91, 0x7b, 0xc2, 0xf9, 0xa9, 0x95, 0x55, 0xe8, 0x5a, 0x92, 0x7c, - 0xc5, 0xf9, 0x29, 0xea, 0x41, 0x39, 0xe4, 0x13, 0xea, 0xa6, 0x5a, 0xb3, 0x72, 0xb5, 0xdc, 0x6e, - 0x69, 0xef, 0x49, 0xe3, 0xd6, 0xc6, 0x1b, 0x98, 0x4f, 0x28, 0xde, 0x94, 0xe4, 0xc1, 0x12, 0x45, - 0xdf, 0x41, 0x89, 0x78, 0x11, 0x0f, 0x5d, 0x09, 0x08, 0x2b, 0xaf, 0xa4, 0x3e, 0xbd, 0x43, 0xaa, - 0x25, 0x19, 0x52, 0x4f, 0x60, 0x20, 0x8b, 0x35, 0xea, 0xc3, 0xba, 0xea, 0xcd, 0x27, 0x01, 0x39, - 0xa6, 0xa1, 0xb0, 0x56, 0x94, 0xda, 0xd3, 0x7b, 0x34, 0xd6, 0x8d, 0x29, 0x78, 0x2d, 0x5c, 0x06, - 0x02, 0x1d, 0xc2, 0xe6, 0x94, 0x4f, 0x98, 0x37, 0x73, 0x45, 0x44, 0xa2, 0x33, 0x41, 0x85, 0x55, - 0x50, 0x92, 0x9f, 0xdd, 0x21, 0x39, 0x50, 0xac, 0xa1, 0x22, 0xe1, 0x8d, 0x69, 0x2a, 0xa2, 0x02, - 0x9d, 0xc3, 0x23, 0xad, 0xaa, 0x1b, 0x75, 0x3d, 0x32, 0x25, 0x23, 0x36, 0x61, 0x11, 0xa3, 0xc2, - 0x32, 0x55, 0x85, 0xaf, 0xee, 0x55, 0x41, 0x77, 0xda, 0x4e, 0xf8, 0x33, 0xbc, 0x33, 0xfd, 0x5f, - 0x80, 0x51, 0x51, 0xff, 0x1a, 0x60, 0x69, 0x9c, 0x9c, 0x01, 0x65, 0x5d, 0x32, 0x03, 0x2a, 0x90, - 0xd9, 0xf8, 0x43, 0x64, 0x6b, 0x39, 0x99, 0x55, 0x81, 0x64, 0x4a, 0x92, 0x62, 0x0b, 0x84, 0x20, - 0x2f, 0xd3, 0x9a, 0xa8, 0xd6, 0xe8, 0x01, 0x14, 0x94, 0x40, 0x42, 0xd4, 0x51, 0xfd, 0x05, 0x94, - 0x52, 0xf6, 0x22, 0x0b, 0x4c, 0x7d, 0x66, 0xcd, 0x4e, 0xc2, 0x1b, 0x0a, 0xff, 0x62, 0xc0, 0x5a, - 0xda, 0x4b, 0xf4, 0x42, 0xd5, 0x61, 0x3c, 0x50, 0xfc, 0x8d, 0xbd, 0x8f, 0xef, 0x9e, 0x14, 0xc6, - 0x03, 0xac, 0x49, 0xa8, 0x0a, 0x25, 0x26, 0xdc, 0x31, 0x13, 0x64, 0x34, 0xa1, 0x63, 0x35, 0xe0, - 0x45, 0x0c, 0x4c, 0x74, 0x74, 0x06, 0x3d, 0x82, 0x55, 0x26, 0x5c, 0x41, 0x89, 0x84, 0x73, 0x0a, - 0x2e, 0x32, 0x31, 0x54, 0x71, 0xfd, 0x08, 0xf2, 0xf2, 0x30, 0xd2, 0x80, 0x80, 0xf8, 0x0b, 0x03, - 0xe4, 0x1a, 0x6d, 0x83, 0xa9, 0x66, 0x8f, 0xc5, 0xaa, 0xeb, 0xb8, 0x20, 0x43, 0x67, 0x8c, 0x6a, - 0x50, 0x7a, 0xf7, 0xbf, 0x22, 0xc1, 0x74, 0xaa, 0xfe, 0x87, 0x01, 0xdb, 0x37, 0x7c, 0xce, 0x5b, - 0x0c, 0x5b, 0x3a, 0x91, 0x7d, 0x4f, 0x27, 0x3c, 0x12, 0x24, 0x56, 0xe8, 0xa3, 0x82, 0x47, 0x02, - 0x6d, 0x05, 0xda, 0x81, 0xa2, 0xdc, 0x20, 0xad, 0xb0, 0xf2, 0x0a, 0x35, 0x3d, 0x12, 0x48, 0x27, - 0xea, 0x1f, 0x81, 0x29, 0x7d, 0x70, 0x3a, 0x42, 0xee, 0xd2, 0xc7, 0x16, 0x96, 0x51, 0xcb, 0xed, - 0xae, 0x63, 0x33, 0x3e, 0xb7, 0xa8, 0x4f, 0xc0, 0x7c, 0xcd, 0xcf, 0xbc, 0x13, 0x1a, 0x22, 0x02, - 0x2b, 0xf2, 0x86, 0x8a, 0xb7, 0x94, 0xf6, 0x76, 0x1a, 0xf1, 0x1d, 0xd6, 0x90, 0x77, 0xd8, 0xa2, - 0xc1, 0x36, 0x67, 0xc1, 0xfe, 0x17, 0x6f, 0x2f, 0xab, 0x99, 0xdf, 0xff, 0xae, 0xee, 0x1e, 0xb3, - 0xe8, 0xe4, 0x6c, 0xd4, 0xf0, 0xb8, 0xdf, 0xd4, 0x17, 0x5e, 0xfc, 0xf3, 0x4c, 0x8c, 0x4f, 0x9b, - 0xd1, 0x6c, 0x4a, 0x85, 0x22, 0x08, 0x1c, 0x2b, 0xd7, 0x7f, 0x33, 0x60, 0xa3, 0x35, 0x1e, 0x87, - 0x54, 0x88, 0xa4, 0xaa, 0x05, 0x26, 0x89, 0x33, 0x89, 0x77, 0x3a, 0x44, 0x33, 0x30, 0xcf, 0xe3, - 0x4d, 0xca, 0xbc, 0x5b, 0x3b, 0xea, 0xc8, 0x8e, 0xfe, 0xba, 0xac, 0x7e, 0x72, 0xcf, 0x8e, 0xfe, - 0xbd, 0xac, 0x7e, 0xa0, 0xc5, 0x3f, 0xe7, 0x3e, 0x8b, 0xa8, 0x3f, 0x8d, 0x66, 0x38, 0xa9, 0xf7, - 0xf4, 0xc2, 0x80, 0x42, 0xfc, 0x29, 0xd0, 0x26, 0x94, 0x8e, 0x7a, 0xc3, 0x81, 0xdd, 0x76, 0x5e, - 0x3a, 0x76, 0xa7, 0x9c, 0x41, 0x45, 0xc8, 0x77, 0x9d, 0xde, 0x61, 0xd9, 0x40, 0x25, 0x30, 0xb1, - 0xdd, 0xb6, 0x9d, 0xd7, 0x76, 0x39, 0x2b, 0xd3, 0xfb, 0x47, 0xb8, 0x57, 0xce, 0xcb, 0xd5, 0xd0, - 0xee, 0x75, 0xca, 0x45, 0xb4, 0x01, 0x30, 0x3c, 0x1a, 0xd8, 0xd8, 0x55, 0x48, 0x19, 0x3d, 0x86, - 0x07, 0xdd, 0x7e, 0xc7, 0x79, 0xf9, 0xc6, 0x1d, 0xf4, 0x0f, 0x9c, 0xf6, 0x1b, 0xb7, 0xdb, 0xea, - 0xb5, 0xbe, 0xb5, 0xf1, 0xb0, 0x3c, 0x9f, 0xcf, 0xbf, 0x41, 0x1f, 0xc2, 0x96, 0x86, 0xdb, 0xfd, - 0xde, 0x21, 0x6e, 0xb5, 0x0f, 0xdd, 0x57, 0xfd, 0xfe, 0xf7, 0x12, 0x9c, 0x1b, 0xa8, 0x0a, 0xdb, - 0x1a, 0xc5, 0xfd, 0x03, 0xdb, 0x1d, 0xd8, 0xb8, 0xeb, 0x0c, 0x87, 0x4e, 0xbf, 0xa7, 0xd8, 0xf3, - 0x6c, 0x8a, 0xae, 0x36, 0xa4, 0xb5, 0xe7, 0xf9, 0xfd, 0xd3, 0xb7, 0x57, 0x15, 0xe3, 0xe2, 0xaa, - 0x62, 0xfc, 0x73, 0x55, 0x31, 0x7e, 0xbd, 0xae, 0x64, 0x2e, 0xae, 0x2b, 0x99, 0x3f, 0xaf, 0x2b, - 0x99, 0x1f, 0x7f, 0x48, 0x79, 0xe6, 0x24, 0xd3, 0x79, 0x40, 0x46, 0x62, 0xf9, 0x28, 0x3e, 0xf3, - 0x78, 0x48, 0xd3, 0xe1, 0x09, 0x61, 0x41, 0xd3, 0xe7, 0xe3, 0xb3, 0x09, 0x15, 0xef, 0xbc, 0x98, - 0xca, 0xe2, 0x51, 0x41, 0xbd, 0x67, 0x5f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xcd, 0x22, - 0x33, 0x57, 0x07, 0x00, 0x00, + // 871 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4d, 0x6f, 0xdb, 0x46, + 0x10, 0x15, 0x25, 0x45, 0x92, 0x47, 0xfe, 0x50, 0x17, 0x46, 0x4c, 0x27, 0x8d, 0x24, 0x28, 0x2d, + 0xea, 0xa6, 0x8d, 0x84, 0xb8, 0x40, 0xd1, 0x4b, 0x80, 0xca, 0x12, 0xd3, 0xb0, 0xb5, 0x28, 0x75, + 0x65, 0x07, 0x48, 0x2f, 0xc4, 0x8a, 0x5a, 0xd8, 0x5b, 0x8b, 0x5c, 0x82, 0x4b, 0x0b, 0xd0, 0x4d, + 0x3d, 0xf7, 0xd2, 0x3f, 0xd1, 0x6b, 0x7f, 0x47, 0x8e, 0x3e, 0x16, 0x3d, 0x18, 0x85, 0x7d, 0xeb, + 0xaf, 0x28, 0x76, 0xb9, 0x94, 0x18, 0xa0, 0x89, 0x83, 0x9e, 0x34, 0x33, 0x6f, 0xdf, 0xdb, 0x99, + 0xc7, 0x11, 0x09, 0x1d, 0x16, 0xfc, 0x4c, 0xbd, 0x98, 0xcd, 0x69, 0x27, 0xa4, 0x91, 0xcf, 0x84, + 0x60, 0x3c, 0x10, 0x9d, 0xf9, 0xb3, 0x09, 0x8d, 0xc9, 0xb3, 0x6c, 0xad, 0x1d, 0x46, 0x3c, 0xe6, + 0xe8, 0xd1, 0x8a, 0xd0, 0xce, 0x82, 0x9a, 0xf0, 0xa0, 0xee, 0x71, 0xe1, 0x73, 0xd1, 0x99, 0x10, + 0x41, 0x57, 0x2a, 0x1e, 0x67, 0x41, 0x42, 0x7f, 0xb0, 0x7b, 0xc6, 0xcf, 0xb8, 0x0a, 0x3b, 0x32, + 0x4a, 0xaa, 0xad, 0x5f, 0x8a, 0xb0, 0xe1, 0x10, 0x9f, 0x8a, 0x90, 0x78, 0x14, 0xed, 0xc2, 0xbd, + 0x29, 0x0d, 0xb8, 0x6f, 0x1a, 0x4d, 0xe3, 0x60, 0x03, 0x27, 0x09, 0x7a, 0x0c, 0x5b, 0x1e, 0x0f, + 0xe2, 0x88, 0x78, 0xb1, 0x7b, 0xce, 0xf9, 0x85, 0x99, 0x57, 0xe8, 0x66, 0x5a, 0x7c, 0xc9, 0xf9, + 0x05, 0x72, 0xa0, 0x16, 0xf1, 0x19, 0x75, 0x33, 0xad, 0x99, 0x85, 0x66, 0xe1, 0xa0, 0x7a, 0xf8, + 0xb8, 0xfd, 0xde, 0xc6, 0xdb, 0x98, 0xcf, 0x28, 0xde, 0x91, 0xe4, 0xd1, 0x1a, 0x45, 0xdf, 0x43, + 0x95, 0x78, 0x31, 0x8f, 0x5c, 0x09, 0x08, 0xb3, 0xa8, 0xa4, 0x3e, 0xbf, 0x43, 0xaa, 0x2b, 0x19, + 0x52, 0x4f, 0x60, 0x20, 0xab, 0x18, 0x0d, 0x61, 0x4b, 0xf5, 0xe6, 0x93, 0x80, 0x9c, 0xd1, 0x48, + 0x98, 0xf7, 0x94, 0xda, 0x93, 0x0f, 0x68, 0x6c, 0x90, 0x50, 0xf0, 0x66, 0xb4, 0x4e, 0x04, 0x3a, + 0x81, 0x9d, 0x90, 0xcf, 0x98, 0xb7, 0x70, 0x45, 0x4c, 0xe2, 0x4b, 0x41, 0x85, 0x59, 0x52, 0x92, + 0x5f, 0xdc, 0x21, 0x39, 0x52, 0xac, 0xb1, 0x22, 0xe1, 0xed, 0x30, 0x93, 0x51, 0x81, 0xe6, 0xf0, + 0x50, 0xab, 0xea, 0x46, 0x5d, 0x8f, 0x84, 0x64, 0xc2, 0x66, 0x2c, 0x66, 0x54, 0x98, 0x65, 0x75, + 0xc3, 0xd7, 0x1f, 0x74, 0x83, 0xee, 0xb4, 0x97, 0xf2, 0x17, 0x78, 0x3f, 0xfc, 0x4f, 0x80, 0x51, + 0xd1, 0xfa, 0x06, 0x60, 0x6d, 0x9c, 0xdc, 0x01, 0x65, 0x5d, 0xba, 0x03, 0x2a, 0x91, 0xd5, 0xe4, + 0x41, 0xe4, 0x9b, 0x05, 0x59, 0x55, 0x89, 0x64, 0x4a, 0x92, 0x62, 0x0b, 0x84, 0xa0, 0x28, 0xcb, + 0x9a, 0xa8, 0x62, 0x74, 0x1f, 0x4a, 0x4a, 0x20, 0x25, 0xea, 0xac, 0xf5, 0x1c, 0xaa, 0x19, 0x7b, + 0x91, 0x09, 0x65, 0x3d, 0xb3, 0x66, 0xa7, 0xe9, 0x3b, 0x2e, 0xfe, 0xd5, 0x80, 0xcd, 0xac, 0x97, + 0xe8, 0xb9, 0xba, 0x87, 0xf1, 0x40, 0xf1, 0xb7, 0x0f, 0x3f, 0xbd, 0x7b, 0x53, 0x18, 0x0f, 0xb0, + 0x26, 0xa1, 0x06, 0x54, 0x99, 0x70, 0xa7, 0x4c, 0x90, 0xc9, 0x8c, 0x4e, 0xd5, 0x82, 0x57, 0x30, + 0x30, 0xd1, 0xd7, 0x15, 0xf4, 0x10, 0x36, 0x98, 0x70, 0x05, 0x25, 0x12, 0x2e, 0x28, 0xb8, 0xc2, + 0xc4, 0x58, 0xe5, 0xad, 0x53, 0x28, 0xca, 0x61, 0xa4, 0x01, 0x01, 0xf1, 0x57, 0x06, 0xc8, 0x18, + 0xed, 0x41, 0x59, 0xed, 0x1e, 0x4b, 0x54, 0xb7, 0x70, 0x49, 0xa6, 0xf6, 0x14, 0x35, 0xa1, 0xfa, + 0xf6, 0x7f, 0x45, 0x82, 0xd9, 0x52, 0xeb, 0x0f, 0x03, 0xf6, 0xde, 0xf1, 0x38, 0xdf, 0x63, 0xd8, + 0xda, 0x89, 0xfc, 0xff, 0x74, 0xc2, 0x23, 0x41, 0x6a, 0x85, 0x1e, 0x15, 0x3c, 0x12, 0x68, 0x2b, + 0xd0, 0x3e, 0x54, 0xe4, 0x01, 0x69, 0x85, 0x59, 0x54, 0x68, 0xd9, 0x23, 0x81, 0x74, 0xa2, 0xf5, + 0x09, 0x94, 0xa5, 0x0f, 0x76, 0x5f, 0xc8, 0x53, 0x7a, 0x6c, 0x61, 0x1a, 0xcd, 0xc2, 0xc1, 0x16, + 0x2e, 0x27, 0x73, 0x8b, 0xd6, 0xef, 0x06, 0x6c, 0x77, 0xa7, 0xd3, 0x88, 0x0a, 0xf1, 0x8a, 0x5f, + 0x7a, 0xe7, 0xc9, 0xe3, 0x27, 0x49, 0x25, 0x9d, 0x46, 0xa7, 0x68, 0x01, 0xe5, 0x79, 0x72, 0x48, + 0x8d, 0x53, 0x3d, 0xdc, 0x6f, 0x27, 0xef, 0xb9, 0xb6, 0x7c, 0xcf, 0xad, 0x86, 0xe8, 0x71, 0x16, + 0x1c, 0xf5, 0xdf, 0x5c, 0x37, 0x72, 0x7f, 0x5d, 0x37, 0x3e, 0x3b, 0x63, 0xf1, 0xf9, 0xe5, 0xa4, + 0xed, 0x71, 0xbf, 0xa3, 0x5f, 0x8a, 0xc9, 0xcf, 0x53, 0x31, 0xbd, 0xe8, 0xc4, 0x8b, 0x90, 0x0a, + 0x45, 0xf8, 0xe7, 0xba, 0xf1, 0x91, 0x16, 0xff, 0x92, 0xfb, 0x2c, 0xa6, 0x7e, 0x18, 0x2f, 0x70, + 0x7a, 0xdf, 0x93, 0x2b, 0x03, 0x4a, 0x89, 0x39, 0x68, 0x07, 0xaa, 0xa7, 0xce, 0x78, 0x64, 0xf5, + 0xec, 0x17, 0xb6, 0xd5, 0xaf, 0xe5, 0x50, 0x05, 0x8a, 0x03, 0xdb, 0x39, 0xa9, 0x19, 0xa8, 0x0a, + 0x65, 0x6c, 0xf5, 0x2c, 0xfb, 0x95, 0x55, 0xcb, 0xcb, 0xf2, 0xd1, 0x29, 0x76, 0x6a, 0x45, 0x19, + 0x8d, 0x2d, 0xa7, 0x5f, 0xab, 0xa0, 0x6d, 0x80, 0xf1, 0xe9, 0xc8, 0xc2, 0xae, 0x42, 0x6a, 0xe8, + 0x11, 0xdc, 0x1f, 0x0c, 0xfb, 0xf6, 0x8b, 0xd7, 0xee, 0x68, 0x78, 0x6c, 0xf7, 0x5e, 0xbb, 0x83, + 0xae, 0xd3, 0xfd, 0xce, 0xc2, 0xe3, 0xda, 0x72, 0xb9, 0xfc, 0x16, 0x7d, 0x0c, 0xbb, 0x1a, 0xee, + 0x0d, 0x9d, 0x13, 0xdc, 0xed, 0x9d, 0xb8, 0x2f, 0x87, 0xc3, 0x1f, 0x24, 0xb8, 0x34, 0x50, 0x03, + 0xf6, 0x34, 0x8a, 0x87, 0xc7, 0x96, 0x3b, 0xb2, 0xf0, 0xc0, 0x1e, 0x8f, 0xed, 0xa1, 0xa3, 0xd8, + 0xcb, 0x7c, 0x86, 0xae, 0x0e, 0x64, 0xb5, 0x97, 0xc5, 0xa3, 0x8b, 0x37, 0x37, 0x75, 0xe3, 0xea, + 0xa6, 0x6e, 0xfc, 0x7d, 0x53, 0x37, 0x7e, 0xbb, 0xad, 0xe7, 0xae, 0x6e, 0xeb, 0xb9, 0x3f, 0x6f, + 0xeb, 0xb9, 0x9f, 0x7e, 0xcc, 0x78, 0x66, 0xa7, 0xfb, 0x72, 0x4c, 0x26, 0x62, 0xfd, 0x99, 0x7a, + 0xea, 0xf1, 0x88, 0x66, 0xd3, 0x73, 0xc2, 0x82, 0x8e, 0xcf, 0xa7, 0x97, 0x33, 0x2a, 0xde, 0xfa, + 0x86, 0x29, 0x8b, 0x27, 0x25, 0xf5, 0x85, 0xf9, 0xea, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x62, + 0x3a, 0xbf, 0x78, 0xe9, 0x06, 0x00, 0x00, } func (m *Namespace) Marshal() (dAtA []byte, err error) { @@ -1151,43 +1103,6 @@ func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Voucher) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Voucher) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Voucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Coins) > 0 { - for iNdEx := len(m.Coins) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Coins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPermissions(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - func (m *AddressVoucher) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1418,21 +1333,6 @@ func (m *RoleIDs) Size() (n int) { return n } -func (m *Voucher) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Coins) > 0 { - for _, e := range m.Coins { - l = e.Size() - n += 1 + l + sovPermissions(uint64(l)) - } - } - return n -} - func (m *AddressVoucher) Size() (n int) { if m == nil { return 0 @@ -2576,90 +2476,6 @@ func (m *RoleIDs) Unmarshal(dAtA []byte) error { } return nil } -func (m *Voucher) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Voucher: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Voucher: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Coins = append(m.Coins, types.Coin{}) - if err := m.Coins[len(m.Coins)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPermissions(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPermissions - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *AddressVoucher) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/types/util.go b/chain/types/util.go new file mode 100644 index 00000000..6cb58634 --- /dev/null +++ b/chain/types/util.go @@ -0,0 +1,27 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func HasDuplicate[T comparable](elements []T) bool { + seen := make(map[T]struct{}) + for idx := range elements { + if _, ok := seen[elements[idx]]; ok { + return true // Duplicate found + } + seen[elements[idx]] = struct{}{} + } + return false +} + +func HasDuplicateCoins(slice []sdk.Coin) bool { + seen := make(map[string]struct{}) + for _, item := range slice { + if _, ok := seen[item.Denom]; ok { + return true + } + seen[item.Denom] = struct{}{} + } + return false +} diff --git a/chain/wasmx/types/proposal.go b/chain/wasmx/types/proposal.go index 803eeeb8..9562e5f1 100644 --- a/chain/wasmx/types/proposal.go +++ b/chain/wasmx/types/proposal.go @@ -196,17 +196,6 @@ func (p *BatchStoreCodeProposal) ValidateBasic() error { return govtypes.ValidateAbstract(p) } -func HasDuplicates(slice []string) bool { - seen := make(map[string]struct{}) - for _, item := range slice { - if _, ok := seen[item]; ok { - return true - } - seen[item] = struct{}{} - } - return false -} - func hasDuplicatesContractRegistrationRequest(slice []ContractRegistrationRequest) bool { seen := make(map[string]struct{}) for _, item := range slice { diff --git a/client/chain/injective_data/ofac.json b/client/chain/injective_data/ofac.json new file mode 100644 index 00000000..66b27cd2 --- /dev/null +++ b/client/chain/injective_data/ofac.json @@ -0,0 +1,162 @@ +[ + "0x01e2919679362dfbc9ee1644ba9c6da6d6245bb1", + "0x03893a7c7463ae47d46bc7f091665f1893656003", + "0x04dba1194ee10112fe6c3207c0687def0e78bacf", + "0x05e0b5b40b7b66098c2161a5ee11c5740a3a7c45", + "0x07687e702b410fa43f4cb4af7fa097918ffd2730", + "0x0836222f2b2b24a3f36f98668ed8f0b38d1a872f", + "0x08723392ed15743cc38513c4925f5e6be5c17243", + "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", + "0x09193888b3f38c82dedfda55259a82c0e7de875e", + "0x0931ca4d13bb4ba75d9b7132ab690265d749a5e7", + "0x098b716b8aaf21512996dc57eb0615e2383e2f96", + "0x0e3a09dda6b20afbb34ac7cd4a6881493f3e7bf7", + "0x0ee5067b06776a89ccc7dc8ee369984ad7db5e06", + "0x12d66f87a04a9e220743712ce6d9bb1b5616b8fc", + "0x1356c899d8c9467c7f71c195612f8a395abf2f0a", + "0x169ad27a470d064dede56a2d3ff727986b15d52b", + "0x175d44451403edf28469df03a9280c1197adb92c", + "0x178169b423a011fff22b9e3f3abea13414ddd0f1", + "0x179f48c78f57a3a78f0608cc9197b8972921d1d2", + "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", + "0x1999ef52700c34de7ec2b68a28aafb37db0c5ade", + "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", + "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", + "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", + "0x1e34a77868e19a6647b1f2f47b51ed72dede95dd", + "0x21b8d56bda776bbe68655a16895afd96f5534fed", + "0x22aaa7720ddd5388a3c0a3333430953c68f1849b", + "0x23173fe8b96a4ad8d2e17fb83ea5dcccdca1ae52", + "0x23773e65ed146a459791799d01336db287f25334", + "0x242654336ca2205714071898f67e254eb49acdce", + "0x2573bac39ebe2901b4389cd468f2872cf7767faf", + "0x26903a5a198d571422b2b4ea08b56a37cbd68c89", + "0x2717c5e28cf931547b621a5dddb772ab6a35b701", + "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", + "0x2f50508a8a3d323b91336fa3ea6ae50e55f32185", + "0x2fc93484614a34f26f7970cbb94615ba109bb4bf", + "0x308ed4b7b49797e1a98d3818bff6fe5385410370", + "0x330bdfade01ee9bf63c209ee33102dd334618e0a", + "0x35fb6f6db4fb05e6a4ce86f2c93691425626d4b1", + "0x38735f03b30fbc022ddd06abed01f0ca823c6a94", + "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29", + "0x3aac1cc67c2ec5db4ea850957b967ba153ad6279", + "0x3ad9db589d201a710ed237c829c7860ba86510fc", + "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d", + "0x3cffd56b47b7b41c56258d9c7731abadc360e073", + "0x3e37627deaa754090fbfbb8bd226c1ce66d255e9", + "0x3efa30704d2b8bbac821307230376556cf8cc39e", + "0x407cceeaa7c95d2fe2250bf9f2c105aa7aafb512", + "0x43fa21d92141ba9db43052492e0deee5aa5f0a93", + "0x4736dcf1b7a3d580672cce6e7c65cd5cc9cfba9d", + "0x47ce0c6ed5b0ce3d3a51fdb1c52dc66a7c3c2936", + "0x48549a34ae37b12f6a30566245176994e17c6b4a", + "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", + "0x502371699497d08d5339c870851898d6d72521dd", + "0x527653ea119f3e6a1f5bd18fbf4714081d7b31ce", + "0x530a64c0ce595026a4a556b703644228179e2d57", + "0x538ab61e8a9fc1b2f93b3dd9011d662d89be6fe6", + "0x53b6936513e738f44fb50d2b9476730c0ab3bfc1", + "0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0", + "0x57b2b8c82f065de8ef5573f9730fc1449b403c9f", + "0x58e8dcc13be9780fc42e8723d8ead4cf46943df2", + "0x5a14e72060c11313e38738009254a90968f58f51", + "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f", + "0x5cab7692d4e94096462119ab7bf57319726eed2a", + "0x5efda50f22d34f262c29268506c5fa42cb56a1ce", + "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2", + "0x5f6c97c6ad7bdd0ae7e0dd4ca33a4ed3fdabd4d7", + "0x610b717796ad172b316836ac95a2ffad065ceab4", + "0x653477c392c16b0765603074f157314cc4f40c32", + "0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45", + "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", + "0x6bf694a291df3fec1f7e69701e3ab6c592435ae7", + "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", + "0x722122df12d4e14e13ac3b6895a86e84145b6967", + "0x723b78e67497e85279cb204544566f4dc5d2aca0", + "0x72a5843cc08275c8171e582972aa4fda8c397b2a", + "0x743494b60097a2230018079c02fe21a7b687eaa5", + "0x746aebc06d2ae31b71ac51429a19d54e797878e9", + "0x756c4628e57f7e7f8a459ec2752968360cf4d1aa", + "0x76d85b4c0fc497eecc38902397ac608000a06607", + "0x776198ccf446dfa168347089d7338879273172cf", + "0x77777feddddffc19ff86db637967013e6c6a116c", + "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", + "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", + "0x7f19720a857f834887fc9a7bc0a0fbe7fc7f8102", + "0x7f367cc41522ce07553e823bf3be79a889debe1b", + "0x7ff9cfad3877f21d41da833e2f775db0569ee3d9", + "0x8281aa6795ade17c8973e1aedca380258bc124f9", + "0x833481186f16cece3f1eeea1a694c42034c3a0db", + "0x83e5bc4ffa856bb84bb88581f5dd62a433a25e0d", + "0x84443cfd09a48af6ef360c6976c5392ac5023a1f", + "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c", + "0x8589427373d6d84e98730d7795d8f6f8731fda16", + "0x88fd245fedec4a936e700f9173454d1931b4c307", + "0x901bb9583b24d97e995513c6778dc6888ab6870e", + "0x910cbd523d972eb0a6f4cae4618ad62622b39dbf", + "0x931546d9e66836abf687d2bc64b30407bac8c568", + "0x94a1b5cdb22c43faab4abeb5c74999895464ddaf", + "0x94be88213a387e992dd87de56950a9aef34b9448", + "0x94c92f096437ab9958fc0a37f09348f30389ae79", + "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", + "0x97b1043abd9e6fc31681635166d430a458d14f9c", + "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", + "0x9ad122c22b14202b4490edaf288fdb3c7cb3ff5e", + "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", + "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", + "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", + "0xa160cdab225685da1d56aa342ad8841c3b53f291", + "0xa5c2254e4253490c54cef0a4347fddb8f75a4998", + "0xa60c772958a3ed56c1f15dd055ba37ac8e523a0d", + "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", + "0xaeaac358560e11f52454d997aaff2c5731b6f8a6", + "0xaf4c0b70b2ea9fb7487c7cbb37ada259579fe040", + "0xaf8d1839c3c67cf571aa74b5c12398d4901147b3", + "0xb04e030140b30c27bcdfaafffa98c57d80eda7b4", + "0xb1c8094b234dce6e03f10a5b673c1d8c69739a00", + "0xb20c66c4de72433f3ce747b58b86830c459ca911", + "0xb541fc07bc7619fd4062a54d96268525cbc6ffef", + "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", + "0xba214c1c1928a32bffe790263e38b4af9bfcd659", + "0xbb93e510bbcd0b7beb5a853875f9ec60275cf498", + "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", + "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", + "0xca0840578f57fe71599d29375e16783424023357", + "0xcc84179ffd19a1627e79f8648d09e095252bc418", + "0xcee71753c9820f063b38fdbe4cfdaf1d3d928a80", + "0xd0975b32cea532eadddfc9c60481976e39db3472", + "0xd21be7248e0197ee08e0c20d4a96debdac3d20af", + "0xd47438c816c9e7f2e2888e060936a499af9582b3", + "0xd4b88df4d29f5cedd6857912842cff3b20c8cfa3", + "0xd5d6f8d9e784d0e26222ad3834500801a68d027d", + "0xd691f27f38b395864ea86cfc7253969b409c362d", + "0xd692fd2d0b2fbd2e52cfa5b5b9424bc981c30696", + "0xd82ed8786d7c69dc7e052f7a542ab047971e73d2", + "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", + "0xd8d7de3349ccaa0fde6298fe6d7b7d0d34586193", + "0xd90e2f925da726b50c4ed8d0fb90ad053324f31b", + "0xd96f2b1c14db8458374d9aca76e26c3d18364307", + "0xdcbeffbecce100cce9e4b153c4e15cb885643193", + "0xdd4c48c0b24039969fc16d1cdf626eab821d3384", + "0xdf231d99ff8b6c6cbf4e9b9a945cbacef9339178", + "0xdf3a408c53e5078af6e8fb2a85088d46ee09a61b", + "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", + "0xe7aa314c77f4233c18c6cc84384a9247c0cf367b", + "0xe950dc316b836e4eefb8308bf32bf7c72a1358ff", + "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921", + "0xedc5d01286f99a066559f60a585406f3878a033e", + "0xefe301d259f525ca1ba74a7977b80d5b060b3cca", + "0xf3701f445b6bdafedbca97d1e477357839e4120d", + "0xf4b067dd14e95bab89be928c07cb22e3c94e0daa", + "0xf60dd140cff0706bae9cd734ac3ae76ad9ebc32a", + "0xf67721a2d8f736e75a49fdd7fad2e31d8676542a", + "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", + "0xfac583c0cf07ea434052c49115a4682172ab6b4f", + "0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144", + "0xfec8a60023265364d066a1212fde3930f6ae8da7", + "0xffbac21a641dcfe4552920138d90f3638b3c9fba", + "0xc5801cd781d168e2d3899ad9c39d8a2541871298", + "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", + "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb" +] diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go index 6e44ae07..67a662ae 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go index 57dec967..61e766e0 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go b/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go deleted file mode 100644 index 4ceab949..00000000 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go +++ /dev/null @@ -1,882 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_accounts_rpc.proto - -/* -Package injective_accounts_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_accounts_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Portfolio(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Portfolio(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderStates(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderStatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderStates(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountsList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountsListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountsList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalancesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalancesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalancesList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountBalanceEndpoint(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountBalanceEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountBalanceEndpoint(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamSubaccountBalance_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, runtime.ServerMetadata, error) { - var protoReq StreamSubaccountBalanceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamSubaccountBalance(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountHistory(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountOrderSummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrderSummaryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountOrderSummary(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Rewards(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RewardsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Rewards(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAccountsRPC_StreamAccountData_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamAccountDataClient, runtime.ServerMetadata, error) { - var protoReq StreamAccountDataRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamAccountData(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveAccountsRPCHandlerServer registers the http handlers for service InjectiveAccountsRPC to "mux". -// UnaryRPC :call InjectiveAccountsRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveAccountsRPCHandlerFromEndpoint instead. -func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveAccountsRPCServer) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveAccountsRPCHandlerFromEndpoint is same as RegisterInjectiveAccountsRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveAccountsRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveAccountsRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveAccountsRPCHandler registers the http handlers for service InjectiveAccountsRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveAccountsRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveAccountsRPCHandlerClient(ctx, mux, NewInjectiveAccountsRPCClient(conn)) -} - -// RegisterInjectiveAccountsRPCHandlerClient registers the http handlers for service InjectiveAccountsRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveAccountsRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveAccountsRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveAccountsRPCClient" to call the correct interceptors. -func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveAccountsRPCClient) error { - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveAccountsRPC_Portfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Portfolio"}, "")) - - pattern_InjectiveAccountsRPC_OrderStates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "OrderStates"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountsList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountsList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalancesList"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalanceEndpoint"}, "")) - - pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamSubaccountBalance"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountHistory"}, "")) - - pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountOrderSummary"}, "")) - - pattern_InjectiveAccountsRPC_Rewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Rewards"}, "")) - - pattern_InjectiveAccountsRPC_StreamAccountData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamAccountData"}, "")) -) - -var ( - forward_InjectiveAccountsRPC_Portfolio_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_OrderStates_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountsList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.ForwardResponseStream - - forward_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_Rewards_0 = runtime.ForwardResponseMessage - - forward_InjectiveAccountsRPC_StreamAccountData_0 = runtime.ForwardResponseStream -) diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc.proto b/exchange/accounts_rpc/pb/injective_accounts_rpc.proto deleted file mode 100644 index e28956da..00000000 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc.proto +++ /dev/null @@ -1,623 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_accounts_rpc; - -option go_package = "/injective_accounts_rpcpb"; - -// InjectiveAccountsRPC defines API of Exchange Accounts provider. -service InjectiveAccountsRPC { - // Provide the account's portfolio value in USD. - rpc Portfolio (PortfolioRequest) returns (PortfolioResponse); - // List order states by order hashes - rpc OrderStates (OrderStatesRequest) returns (OrderStatesResponse); - // List all subaccounts IDs of an account address - rpc SubaccountsList (SubaccountsListRequest) returns (SubaccountsListResponse); - // List subaccount balances for the provided denoms. - rpc SubaccountBalancesList (SubaccountBalancesListRequest) returns (SubaccountBalancesListResponse); - // Gets a balance for specific coin denom - rpc SubaccountBalanceEndpoint (SubaccountBalanceEndpointRequest) returns (SubaccountBalanceEndpointResponse); - // StreamSubaccountBalance streams new balance changes for a specified -// subaccount and denoms. If no denoms are provided, all denom changes are -// streamed. - rpc StreamSubaccountBalance (StreamSubaccountBalanceRequest) returns (stream StreamSubaccountBalanceResponse); - // Get subaccount's deposits and withdrawals history - rpc SubaccountHistory (SubaccountHistoryRequest) returns (SubaccountHistoryResponse); - // Get subaccount's orders summary - rpc SubaccountOrderSummary (SubaccountOrderSummaryRequest) returns (SubaccountOrderSummaryResponse); - // Provide historical trading rewards - rpc Rewards (RewardsRequest) returns (RewardsResponse); - // Stream live data for an account and respective data - rpc StreamAccountData (StreamAccountDataRequest) returns (stream StreamAccountDataResponse); -} - -message PortfolioRequest { - // Account address - string account_address = 1; -} - -message PortfolioResponse { - // The portfolio of this account - AccountPortfolio portfolio = 1; -} - -message AccountPortfolio { - // The account's portfolio value in USD. - string portfolio_value = 1; - // The account's available balance value in USD. - string available_balance = 2; - // The account's locked balance value in USD. - string locked_balance = 3; - // The account's total unrealized PnL value in USD. - string unrealized_pnl = 4; - // List of all subaccounts' portfolio - repeated SubaccountPortfolio subaccounts = 5; -} - -message SubaccountPortfolio { - // The ID of this subaccount - string subaccount_id = 1; - // The subaccount's available balance value in USD. - string available_balance = 2; - // The subaccount's locked balance value in USD. - string locked_balance = 3; - // The subaccount's total unrealized PnL value in USD. - string unrealized_pnl = 4; -} - -message OrderStatesRequest { - repeated string spot_order_hashes = 1; - repeated string derivative_order_hashes = 2; -} - -message OrderStatesResponse { - // List of the spot order state records - repeated OrderStateRecord spot_order_states = 1; - // List of the derivative order state records - repeated OrderStateRecord derivative_order_states = 2; -} - -message OrderStateRecord { - // Hash of the order - string order_hash = 1; - // The subaccountId that this order belongs to - string subaccount_id = 2; - // The Market ID of the order - string market_id = 3; - // The type of the order - string order_type = 4; - // The side of the order - string order_side = 5; - // The state (status) of the order - string state = 6; - // The filled quantity of the order - string quantity_filled = 7; - // The filled quantity of the order - string quantity_remaining = 8; - // Order committed timestamp in UNIX millis. - sint64 created_at = 9; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Order prices - string price = 11; - // Margin for derivative order - string margin = 12; -} - -message SubaccountsListRequest { - // Account address, the subaccounts owner - string account_address = 1; -} - -message SubaccountsListResponse { - repeated string subaccounts = 1; -} - -message SubaccountBalancesListRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message SubaccountBalancesListResponse { - // List of subaccount balances - repeated SubaccountBalance balances = 1; -} - -message SubaccountBalance { - // Related subaccount ID - string subaccount_id = 1; - // Account address, owner of this subaccount - string account_address = 2; - // Coin denom on the chain. - string denom = 3; - SubaccountDeposit deposit = 4; -} - -message SubaccountDeposit { - string total_balance = 1; - string available_balance = 2; -} - -message SubaccountBalanceEndpointRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Specify denom to get balance - string denom = 2; -} - -message SubaccountBalanceEndpointResponse { - // Subaccount balance - SubaccountBalance balance = 1; -} - -message StreamSubaccountBalanceRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter balances by denoms. If not set, the balances of all the denoms for -// the subaccount are provided. - repeated string denoms = 2; -} - -message StreamSubaccountBalanceResponse { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message SubaccountHistoryRequest { - // SubaccountId of the trader we want to get the history from - string subaccount_id = 1; - // Filter history by denom - string denom = 2; - // Filter history by transfer type - repeated string transfer_types = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 5; - // Upper bound of account transfer history's executedAt - sint64 end_time = 6; -} - -message SubaccountHistoryResponse { - // List of subaccount transfers - repeated SubaccountBalanceTransfer transfers = 1; - Paging paging = 2; -} - -message SubaccountBalanceTransfer { - // Type of the subaccount balance transfer - string transfer_type = 1; - // Subaccount ID of the sending side - string src_subaccount_id = 2; - // Account address of the sending side - string src_account_address = 3; - // Subaccount ID of the receiving side - string dst_subaccount_id = 4; - // Account address of the receiving side - string dst_account_address = 5; - // Coin amount of the transfer - CosmosCoin amount = 6; - // Timestamp of the transfer in UNIX millis - sint64 executed_at = 7; -} - -message CosmosCoin { - // Coin denominator - string denom = 1; - // Coin amount (big int) - string amount = 2; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message SubaccountOrderSummaryRequest { - // SubaccountId of the trader we want to get the summary from - string subaccount_id = 1; - // MarketId is limiting order summary to specific market only - string market_id = 2; - // Filter by direction of the orders - string order_direction = 3; -} - -message SubaccountOrderSummaryResponse { - // Total count of subaccount's spot orders in given market and direction - sint64 spot_orders_total = 1; - // Total count of subaccount's derivative orders in given market and direction - sint64 derivative_orders_total = 2; -} - -message RewardsRequest { - // The distribution epoch sequence number. -1 for latest. - sint64 epoch = 1; - // Account address for the rewards distribution - string account_address = 2; -} - -message RewardsResponse { - // The trading rewards distributed - repeated Reward rewards = 1; -} - -message Reward { - // Account address - string account_address = 1; - // Reward coins distributed - repeated Coin rewards = 2; - // Rewards distribution timestamp in UNIX millis. - sint64 distributed_at = 3; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message StreamAccountDataRequest { - // account address - string account_address = 1; -} - -message StreamAccountDataResponse { - SubaccountBalanceResult subaccount_balance = 1; - PositionsResult position = 2; - TradeResult trade = 3; - OrderResult order = 4; - OrderHistoryResult order_history = 5; - FundingPaymentResult funding_payment = 6; -} - -message SubaccountBalanceResult { - // Subaccount balance - SubaccountBalance balance = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message PositionsResult { - // Updated derivative Position - Position position = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message Position { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 10; - // Position created timestamp in UNIX millis. - sint64 created_at = 11; -} - -message TradeResult { - oneof trade { - // New spot market trade - SpotTrade spot_trade = 1; - // New derivative market trade - DerivativeTrade derivative_trade = 2; - } - // Executed trades update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotTrade { - // Maker order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // The direction the trade - string trade_direction = 5; - // Price level at which trade has been executed - PriceLevel price = 6; - // The fee associated with the trade (quote asset denom) - string fee = 7; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 8; - // Fee recipient address - string fee_recipient = 9; - // A unique string that helps differentiate between trades - string trade_id = 10; - // Trade's execution side, marker/taker - string execution_side = 11; - // Custom client order ID - string cid = 12; -} - -message PriceLevel { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message DerivativeTrade { - // Order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // True if the trade is a liquidation - bool is_liquidation = 5; - // Position Delta from the trade - PositionDelta position_delta = 6; - // The payout associated with the trade - string payout = 7; - // The fee associated with the trade - string fee = 8; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 9; - // Fee recipient address - string fee_recipient = 10; - // A unique string that helps differentiate between trades - string trade_id = 11; - // Trade's execution side, marker/taker - string execution_side = 12; - // Custom client order ID - string cid = 13; -} - -message PositionDelta { - // The direction the trade - string trade_direction = 1; - // Execution Price of the trade. - string execution_price = 2; - // Execution Quantity of the trade. - string execution_quantity = 3; - // Execution Margin of the trade. - string execution_margin = 4; -} - -message OrderResult { - oneof order { - // Updated spot market order - SpotLimitOrder spot_order = 1; - // Updated derivative market order - DerivativeLimitOrder derivative_order = 2; - } - // Executed orders update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // Price of the order - string price = 5; - // Quantity of the order - string quantity = 6; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 7; - // Trigger price is the trigger price used by stop/take orders. 0 if the -// trigger price is not set. - string trigger_price = 8; - // Fee recipient address - string fee_recipient = 9; - // Order state - string state = 10; - // Order committed timestamp in UNIX millis. - sint64 created_at = 11; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 13; - // Custom client order ID - string cid = 14; -} - -message DerivativeLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Derivative Market ID - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // True if the order is a reduce-only order - bool is_reduce_only = 5; - // Margin of the order - string margin = 6; - // Price of the order - string price = 7; - // Quantity of the order - string quantity = 8; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 9; - // Trigger price is the trigger price used by stop/take orders - string trigger_price = 10; - // Fee recipient address - string fee_recipient = 11; - // Order state - string state = 12; - // Order committed timestamp in UNIX millis. - sint64 created_at = 13; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 14; - // Order number of subaccount - sint64 order_number = 15; - // Order type - string order_type = 16; - // Order type - bool is_conditional = 17; - // Trigger timestamp, only exists for conditional orders - uint64 trigger_at = 18; - // OrderHash of order that is triggered by this conditional order - string placed_order_hash = 19; - // Execution type of conditional order - string execution_type = 20; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 21; - // Custom client order ID - string cid = 22; -} - -message OrderHistoryResult { - oneof order_history { - // Spot order history - SpotOrderHistory spot_order_history = 1; - // Derivative order history - DerivativeOrderHistory derivative_order_history = 2; - } - // Order update type - string operation_type = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message SpotOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // Order direction (order side) - string direction = 14; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 15; - // Custom client order ID - string cid = 16; -} - -message DerivativeOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // True if an order is reduce only - bool is_reduce_only = 14; - // Order direction (order side) - string direction = 15; - // True if this is conditional order, otherwise false - bool is_conditional = 16; - // Trigger timestamp in unix milli - uint64 trigger_at = 17; - // Order hash placed when this triggers - string placed_order_hash = 18; - // Order's margin - string margin = 19; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 20; - // Custom client order ID - string cid = 21; -} - -message FundingPaymentResult { - // Funding payments of the account - FundingPayment funding_payments = 1; - // Funding payments type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message FundingPayment { - // Derivative Market ID - string market_id = 1; - // The subaccountId that the position belongs to - string subaccount_id = 2; - // Amount of the funding payment - string amount = 3; - // Timestamp of funding payment in UNIX millis - sint64 timestamp = 4; -} diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go index 0640a809..3d7db44a 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb @@ -541,6 +541,91 @@ func (x *StreamBidsResponse) GetTimestamp() int64 { return 0 } +type InjBurntEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InjBurntEndpointRequest) Reset() { + *x = InjBurntEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InjBurntEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InjBurntEndpointRequest) ProtoMessage() {} + +func (x *InjBurntEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[9] + 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 InjBurntEndpointRequest.ProtoReflect.Descriptor instead. +func (*InjBurntEndpointRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{9} +} + +type InjBurntEndpointResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalInjBurnt string `protobuf:"bytes,1,opt,name=total_inj_burnt,json=totalInjBurnt,proto3" json:"total_inj_burnt,omitempty"` +} + +func (x *InjBurntEndpointResponse) Reset() { + *x = InjBurntEndpointResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InjBurntEndpointResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InjBurntEndpointResponse) ProtoMessage() {} + +func (x *InjBurntEndpointResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + 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 InjBurntEndpointResponse.ProtoReflect.Descriptor instead. +func (*InjBurntEndpointResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *InjBurntEndpointResponse) GetTotalInjBurnt() string { + if x != nil { + return x.TotalInjBurnt + } + return "" +} + var File_goadesign_goagen_injective_auction_rpc_proto protoreflect.FileDescriptor var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{ @@ -598,29 +683,43 @@ var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{ 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x32, 0xc9, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, + 0x22, 0x19, 0x0a, 0x17, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x18, 0x49, + 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x69, 0x6e, 0x6a, 0x5f, 0x62, 0x75, 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x32, + 0xbe, 0x03, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1a, 0x5a, 0x18, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x10, 0x49, + 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -635,34 +734,38 @@ func file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_auction_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_goadesign_goagen_injective_auction_rpc_proto_goTypes = []interface{}{ - (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest - (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse - (*Auction)(nil), // 2: injective_auction_rpc.Auction - (*Coin)(nil), // 3: injective_auction_rpc.Coin - (*Bid)(nil), // 4: injective_auction_rpc.Bid - (*AuctionsRequest)(nil), // 5: injective_auction_rpc.AuctionsRequest - (*AuctionsResponse)(nil), // 6: injective_auction_rpc.AuctionsResponse - (*StreamBidsRequest)(nil), // 7: injective_auction_rpc.StreamBidsRequest - (*StreamBidsResponse)(nil), // 8: injective_auction_rpc.StreamBidsResponse + (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest + (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse + (*Auction)(nil), // 2: injective_auction_rpc.Auction + (*Coin)(nil), // 3: injective_auction_rpc.Coin + (*Bid)(nil), // 4: injective_auction_rpc.Bid + (*AuctionsRequest)(nil), // 5: injective_auction_rpc.AuctionsRequest + (*AuctionsResponse)(nil), // 6: injective_auction_rpc.AuctionsResponse + (*StreamBidsRequest)(nil), // 7: injective_auction_rpc.StreamBidsRequest + (*StreamBidsResponse)(nil), // 8: injective_auction_rpc.StreamBidsResponse + (*InjBurntEndpointRequest)(nil), // 9: injective_auction_rpc.InjBurntEndpointRequest + (*InjBurntEndpointResponse)(nil), // 10: injective_auction_rpc.InjBurntEndpointResponse } var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_auction_rpc.AuctionEndpointResponse.auction:type_name -> injective_auction_rpc.Auction - 4, // 1: injective_auction_rpc.AuctionEndpointResponse.bids:type_name -> injective_auction_rpc.Bid - 3, // 2: injective_auction_rpc.Auction.basket:type_name -> injective_auction_rpc.Coin - 2, // 3: injective_auction_rpc.AuctionsResponse.auctions:type_name -> injective_auction_rpc.Auction - 0, // 4: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:input_type -> injective_auction_rpc.AuctionEndpointRequest - 5, // 5: injective_auction_rpc.InjectiveAuctionRPC.Auctions:input_type -> injective_auction_rpc.AuctionsRequest - 7, // 6: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest - 1, // 7: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse - 6, // 8: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse - 8, // 9: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse - 7, // [7:10] is the sub-list for method output_type - 4, // [4:7] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 2, // 0: injective_auction_rpc.AuctionEndpointResponse.auction:type_name -> injective_auction_rpc.Auction + 4, // 1: injective_auction_rpc.AuctionEndpointResponse.bids:type_name -> injective_auction_rpc.Bid + 3, // 2: injective_auction_rpc.Auction.basket:type_name -> injective_auction_rpc.Coin + 2, // 3: injective_auction_rpc.AuctionsResponse.auctions:type_name -> injective_auction_rpc.Auction + 0, // 4: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:input_type -> injective_auction_rpc.AuctionEndpointRequest + 5, // 5: injective_auction_rpc.InjectiveAuctionRPC.Auctions:input_type -> injective_auction_rpc.AuctionsRequest + 7, // 6: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest + 9, // 7: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:input_type -> injective_auction_rpc.InjBurntEndpointRequest + 1, // 8: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse + 6, // 9: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse + 8, // 10: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse + 10, // 11: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:output_type -> injective_auction_rpc.InjBurntEndpointResponse + 8, // [8:12] is the sub-list for method output_type + 4, // [4:8] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_auction_rpc_proto_init() } @@ -779,6 +882,30 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { return nil } } + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InjBurntEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InjBurntEndpointResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -786,7 +913,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_auction_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 9, + NumMessages: 11, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go index 3c89d6b5..2aa1e18e 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb @@ -28,6 +28,8 @@ type InjectiveAuctionRPCClient interface { Auctions(ctx context.Context, in *AuctionsRequest, opts ...grpc.CallOption) (*AuctionsResponse, error) // StreamBids streams new bids of an auction. StreamBids(ctx context.Context, in *StreamBidsRequest, opts ...grpc.CallOption) (InjectiveAuctionRPC_StreamBidsClient, error) + // InjBurntEndpoint returns the total amount of INJ burnt in auctions. + InjBurntEndpoint(ctx context.Context, in *InjBurntEndpointRequest, opts ...grpc.CallOption) (*InjBurntEndpointResponse, error) } type injectiveAuctionRPCClient struct { @@ -88,6 +90,15 @@ func (x *injectiveAuctionRPCStreamBidsClient) Recv() (*StreamBidsResponse, error return m, nil } +func (c *injectiveAuctionRPCClient) InjBurntEndpoint(ctx context.Context, in *InjBurntEndpointRequest, opts ...grpc.CallOption) (*InjBurntEndpointResponse, error) { + out := new(InjBurntEndpointResponse) + err := c.cc.Invoke(ctx, "/injective_auction_rpc.InjectiveAuctionRPC/InjBurntEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // InjectiveAuctionRPCServer is the server API for InjectiveAuctionRPC service. // All implementations must embed UnimplementedInjectiveAuctionRPCServer // for forward compatibility @@ -98,6 +109,8 @@ type InjectiveAuctionRPCServer interface { Auctions(context.Context, *AuctionsRequest) (*AuctionsResponse, error) // StreamBids streams new bids of an auction. StreamBids(*StreamBidsRequest, InjectiveAuctionRPC_StreamBidsServer) error + // InjBurntEndpoint returns the total amount of INJ burnt in auctions. + InjBurntEndpoint(context.Context, *InjBurntEndpointRequest) (*InjBurntEndpointResponse, error) mustEmbedUnimplementedInjectiveAuctionRPCServer() } @@ -114,6 +127,9 @@ func (UnimplementedInjectiveAuctionRPCServer) Auctions(context.Context, *Auction func (UnimplementedInjectiveAuctionRPCServer) StreamBids(*StreamBidsRequest, InjectiveAuctionRPC_StreamBidsServer) error { return status.Errorf(codes.Unimplemented, "method StreamBids not implemented") } +func (UnimplementedInjectiveAuctionRPCServer) InjBurntEndpoint(context.Context, *InjBurntEndpointRequest) (*InjBurntEndpointResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InjBurntEndpoint not implemented") +} func (UnimplementedInjectiveAuctionRPCServer) mustEmbedUnimplementedInjectiveAuctionRPCServer() {} // UnsafeInjectiveAuctionRPCServer may be embedded to opt out of forward compatibility for this service. @@ -184,6 +200,24 @@ func (x *injectiveAuctionRPCStreamBidsServer) Send(m *StreamBidsResponse) error return x.ServerStream.SendMsg(m) } +func _InjectiveAuctionRPC_InjBurntEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InjBurntEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAuctionRPCServer).InjBurntEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_auction_rpc.InjectiveAuctionRPC/InjBurntEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAuctionRPCServer).InjBurntEndpoint(ctx, req.(*InjBurntEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + // InjectiveAuctionRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveAuctionRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -199,6 +233,10 @@ var InjectiveAuctionRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "Auctions", Handler: _InjectiveAuctionRPC_Auctions_Handler, }, + { + MethodName: "InjBurntEndpoint", + Handler: _InjectiveAuctionRPC_InjBurntEndpoint_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go b/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go deleted file mode 100644 index 5d95026e..00000000 --- a/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go +++ /dev/null @@ -1,314 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_auction_rpc.proto - -/* -Package injective_auction_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_auction_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveAuctionRPC_AuctionEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAuctionRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuctionEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AuctionEndpoint(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAuctionRPC_AuctionEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAuctionRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuctionEndpointRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AuctionEndpoint(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAuctionRPC_Auctions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAuctionRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuctionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Auctions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveAuctionRPC_Auctions_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAuctionRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuctionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Auctions(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveAuctionRPC_StreamBids_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAuctionRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAuctionRPC_StreamBidsClient, runtime.ServerMetadata, error) { - var protoReq StreamBidsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamBids(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveAuctionRPCHandlerServer registers the http handlers for service InjectiveAuctionRPC to "mux". -// UnaryRPC :call InjectiveAuctionRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveAuctionRPCHandlerFromEndpoint instead. -func RegisterInjectiveAuctionRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveAuctionRPCServer) error { - - mux.Handle("POST", pattern_InjectiveAuctionRPC_AuctionEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAuctionRPC_Auctions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveAuctionRPC_Auctions_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAuctionRPC_Auctions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAuctionRPC_StreamBids_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveAuctionRPCHandlerFromEndpoint is same as RegisterInjectiveAuctionRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveAuctionRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveAuctionRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveAuctionRPCHandler registers the http handlers for service InjectiveAuctionRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveAuctionRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveAuctionRPCHandlerClient(ctx, mux, NewInjectiveAuctionRPCClient(conn)) -} - -// RegisterInjectiveAuctionRPCHandlerClient registers the http handlers for service InjectiveAuctionRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveAuctionRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveAuctionRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveAuctionRPCClient" to call the correct interceptors. -func RegisterInjectiveAuctionRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveAuctionRPCClient) error { - - mux.Handle("POST", pattern_InjectiveAuctionRPC_AuctionEndpoint_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAuctionRPC_Auctions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAuctionRPC_Auctions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAuctionRPC_Auctions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveAuctionRPC_StreamBids_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/StreamBids", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/StreamBids")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveAuctionRPC_StreamBids_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveAuctionRPC_StreamBids_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveAuctionRPC_AuctionEndpoint_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_auction_rpc.InjectiveAuctionRPC", "AuctionEndpoint"}, "")) - - pattern_InjectiveAuctionRPC_Auctions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_auction_rpc.InjectiveAuctionRPC", "Auctions"}, "")) - - pattern_InjectiveAuctionRPC_StreamBids_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_auction_rpc.InjectiveAuctionRPC", "StreamBids"}, "")) -) - -var ( - forward_InjectiveAuctionRPC_AuctionEndpoint_0 = runtime.ForwardResponseMessage - - forward_InjectiveAuctionRPC_Auctions_0 = runtime.ForwardResponseMessage - - forward_InjectiveAuctionRPC_StreamBids_0 = runtime.ForwardResponseStream -) diff --git a/exchange/auction_rpc/pb/injective_auction_rpc.proto b/exchange/auction_rpc/pb/injective_auction_rpc.proto deleted file mode 100644 index 1e2257c4..00000000 --- a/exchange/auction_rpc/pb/injective_auction_rpc.proto +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveAuctionRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_auction_rpc; - -option go_package = "/injective_auction_rpcpb"; - -// InjectiveAuctionRPC defines gRPC API of the Auction API. -service InjectiveAuctionRPC { - // Provide historical auction info for a given auction - rpc AuctionEndpoint (AuctionEndpointRequest) returns (AuctionEndpointResponse); - // Provide the historical auctions info - rpc Auctions (AuctionsRequest) returns (AuctionsResponse); - // StreamBids streams new bids of an auction. - rpc StreamBids (StreamBidsRequest) returns (stream StreamBidsResponse); -} - -message AuctionEndpointRequest { - // The auction round number. -1 for latest. - sint64 round = 1; -} - -message AuctionEndpointResponse { - // The auction - Auction auction = 1; - // Bids of the auction - repeated Bid bids = 2; -} - -message Auction { - // Account address of the auction winner - string winner = 1; - // Coins in the basket - repeated Coin basket = 2; - string winning_bid_amount = 3; - uint64 round = 4; - // Auction end timestamp in UNIX millis. - sint64 end_timestamp = 5; - // UpdatedAt timestamp in UNIX millis. - sint64 updated_at = 6; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message Bid { - // Account address of the bidder - string bidder = 1; - string amount = 2; - // Bid timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message AuctionsRequest { -} - -message AuctionsResponse { - // The historical auctions - repeated Auction auctions = 1; -} - -message StreamBidsRequest { -} - -message StreamBidsResponse { - // Account address of the bidder - string bidder = 1; - string bid_amount = 2; - uint64 round = 3; - // Operation timestamp in UNIX millis. - sint64 timestamp = 4; -} diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go index cb9eacab..1710ad1a 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb diff --git a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go index 7b8d6047..70413eec 100644 --- a/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go b/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go deleted file mode 100644 index b2564260..00000000 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go +++ /dev/null @@ -1,596 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_campaign_rpc.proto - -/* -Package injective_campaign_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_campaign_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveCampaignRPC_Ranking_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RankingRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Ranking(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_Ranking_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RankingRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Ranking(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveCampaignRPC_Campaigns_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CampaignsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Campaigns(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_Campaigns_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CampaignsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Campaigns(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveCampaignRPC_CampaignsV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CampaignsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.CampaignsV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_CampaignsV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CampaignsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.CampaignsV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveCampaignRPC_ListGuilds_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListGuildsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ListGuilds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_ListGuilds_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListGuildsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ListGuilds(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveCampaignRPC_ListGuildMembers_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListGuildMembersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ListGuildMembers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_ListGuildMembers_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListGuildMembersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ListGuildMembers(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveCampaignRPC_GetGuildMember_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetGuildMemberRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetGuildMember(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveCampaignRPC_GetGuildMember_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetGuildMemberRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetGuildMember(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveCampaignRPCHandlerServer registers the http handlers for service InjectiveCampaignRPC to "mux". -// UnaryRPC :call InjectiveCampaignRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveCampaignRPCHandlerFromEndpoint instead. -func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveCampaignRPCServer) error { - - mux.Handle("POST", pattern_InjectiveCampaignRPC_Ranking_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_Ranking_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_Ranking_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_Campaigns_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_Campaigns_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_Campaigns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_CampaignsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_ListGuilds_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_ListGuildMembers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_GetGuildMember_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveCampaignRPCHandlerFromEndpoint is same as RegisterInjectiveCampaignRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveCampaignRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveCampaignRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveCampaignRPCHandler registers the http handlers for service InjectiveCampaignRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveCampaignRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveCampaignRPCHandlerClient(ctx, mux, NewInjectiveCampaignRPCClient(conn)) -} - -// RegisterInjectiveCampaignRPCHandlerClient registers the http handlers for service InjectiveCampaignRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveCampaignRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveCampaignRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveCampaignRPCClient" to call the correct interceptors. -func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveCampaignRPCClient) error { - - mux.Handle("POST", pattern_InjectiveCampaignRPC_Ranking_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_Ranking_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_Ranking_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_Campaigns_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_Campaigns_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_Campaigns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_CampaignsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_ListGuilds_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_ListGuildMembers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveCampaignRPC_GetGuildMember_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveCampaignRPC_Ranking_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "Ranking"}, "")) - - pattern_InjectiveCampaignRPC_Campaigns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "Campaigns"}, "")) - - pattern_InjectiveCampaignRPC_CampaignsV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "CampaignsV2"}, "")) - - pattern_InjectiveCampaignRPC_ListGuilds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "ListGuilds"}, "")) - - pattern_InjectiveCampaignRPC_ListGuildMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "ListGuildMembers"}, "")) - - pattern_InjectiveCampaignRPC_GetGuildMember_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "GetGuildMember"}, "")) -) - -var ( - forward_InjectiveCampaignRPC_Ranking_0 = runtime.ForwardResponseMessage - - forward_InjectiveCampaignRPC_Campaigns_0 = runtime.ForwardResponseMessage - - forward_InjectiveCampaignRPC_CampaignsV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveCampaignRPC_ListGuilds_0 = runtime.ForwardResponseMessage - - forward_InjectiveCampaignRPC_ListGuildMembers_0 = runtime.ForwardResponseMessage - - forward_InjectiveCampaignRPC_GetGuildMember_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto deleted file mode 100644 index 13acc8b2..00000000 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto +++ /dev/null @@ -1,346 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveCampaignRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_campaign_rpc; - -option go_package = "/injective_campaign_rpcpb"; - -// InjectiveCampaignRPC defined a gRPC service for Injective Campaigns. -service InjectiveCampaignRPC { - // Lists all participants in campaign - rpc Ranking (RankingRequest) returns (RankingResponse); - // List current round active campaigns - rpc Campaigns (CampaignsRequest) returns (CampaignsResponse); - // List campaigns v2 - rpc CampaignsV2 (CampaignsV2Request) returns (CampaignsV2Response); - // List guilds by campaign - rpc ListGuilds (ListGuildsRequest) returns (ListGuildsResponse); - // List guild members of given campaign and guildId - rpc ListGuildMembers (ListGuildMembersRequest) returns (ListGuildMembersResponse); - // Get single member guild info - rpc GetGuildMember (GetGuildMemberRequest) returns (GetGuildMemberResponse); -} - -message RankingRequest { - // Campaign ID - string campaign_id = 1; - // MarketId of the campaign - string market_id = 2; - // Account address - string account_address = 3; - sint32 limit = 4; - uint64 skip = 5; - // Contract address that manages the round and reward - string contract_address = 6; -} - -message RankingResponse { - // The campaign information - Campaign campaign = 1; - // The campaign users - repeated CampaignUser users = 2; - Paging paging = 3; -} - -message Campaign { - string campaign_id = 1; - // MarketId of the trading strategy - string market_id = 2; - // Total campaign score - string total_score = 4; - // Last time the campaign score has been updated. - sint64 last_updated = 5; - // Campaign start date in UNIX millis. - sint64 start_date = 6; - // Campaign end date in UNIX millis. - sint64 end_date = 7; - // Whether the campaign rewards can be claimed. - bool is_claimable = 8; - // Campaigns round ID - sint32 round_id = 9; - // Contract address that controls this campaign - string manager_contract = 10; - // Reward tokens of this campaign - repeated Coin rewards = 11; - // Total user score if accountAddress is passed, this is useful to estimate -// account's reward - string user_score = 12; - // Return true if user claimed the reward of this campaign - bool user_claimed = 13; - // Suffix of the subaccount that eligible for volume score - string subaccount_id_suffix = 14; - // Contract that manage users reward - string reward_contract = 15; - // Version of reward contract, UI use this to determine the message that need -// to be sent - string version = 16; - // Campaign type - string type = 17; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message CampaignUser { - string campaign_id = 1; - // MarketId of the trading strategy - string market_id = 2; - // Account address - string account_address = 3; - // Campaign score - string score = 4; - // Whether the distribution contract has been updated with the latest score - bool contract_updated = 5; - // Block height when the score has been updated. - sint64 block_height = 6; - // Block time timestamp in UNIX millis. - sint64 block_time = 7; - // Amount swapped but only count base denom of the market - string purchased_amount = 8; - // True if this user is updated to be in Galxe Campain list, only eligible -// address are added - bool galxe_updated = 9; - // True if this user claimed the reward - bool reward_claimed = 10; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message CampaignsRequest { - // Round ID, if not specified, it will return latest roundId - sint64 round_id = 1; - // Address of login account, if not specified it will return no user rewards - string account_address = 2; - // This will return campaign x where x.roundId <= toRoundId. Useful for listing -// multiple rounds - sint32 to_round_id = 3; - // Contract address that manages the round and reward - string contract_address = 4; - // Campaign type - string type = 5; -} - -message CampaignsResponse { - repeated Campaign campaigns = 1; - repeated Coin accumulated_rewards = 2; - sint32 reward_count = 3; -} - -message CampaignsV2Request { - // Campaign type - string type = 1; - // Whether the campaign is active. -// Deprecated: use status instead. - bool active = 2; - // Limit number of returned campaigns - sint32 limit = 3; - // Cursor for pagination - string cursor = 4; - // Filter campaigns by start date greater than this value in milliseconds - sint64 from_start_date = 5; - // Filter campaigns by start date lower than this value in milliseconds - sint64 to_start_date = 6; - // Filter campaigns by end date greater than this value in milliseconds - sint64 from_end_date = 7; - // Filter campaigns by end date lower than this value in milliseconds - sint64 to_end_date = 8; - // Filter campaigns by status - string status = 9; -} - -message CampaignsV2Response { - repeated CampaignV2 campaigns = 1; - string cursor = 2; -} - -message CampaignV2 { - string campaign_id = 1; - // MarketId of the trading strategy - string market_id = 2; - // Total campaign score - string total_score = 4; - // Campaign creation date in UNIX millis. - sint64 created_at = 5; - // Campaign last update date in UNIX millis. - sint64 updated_at = 6; - // Campaign start date in UNIX millis. - sint64 start_date = 7; - // Campaign end date in UNIX millis. - sint64 end_date = 8; - // Whether the campaign rewards can be claimed. - bool is_claimable = 9; - // Campaigns round ID - sint32 round_id = 10; - // Contract address that controls this campaign - string manager_contract = 11; - // Reward tokens of this campaign - repeated Coin rewards = 12; - // Suffix of the subaccount that eligible for volume score - string subaccount_id_suffix = 13; - // Contract that manage users reward - string reward_contract = 14; - // Campaign type - string type = 15; - // Version of reward contract, UI use this to determine the message that need -// to be sent - string version = 16; - // Campaign name - string name = 17; - // Campaign description - string description = 18; -} - -message ListGuildsRequest { - // Campaign contract address - string campaign_contract = 1; - // Limit number of returned guilds - sint32 limit = 2; - // Skip some first guilds in the list for next page - sint32 skip = 3; - // Sort by some metrics - string sort_by = 4; -} - -message ListGuildsResponse { - repeated Guild guilds = 1; - Paging paging = 2; - // Snapshot updated at time in UNIX milli - sint64 updated_at = 3; - // Summary of the campaign - CampaignSummary campaign_summary = 4; -} - -message Guild { - string campaign_contract = 1; - // Guild ID - string guild_id = 2; - // Guild's master address - string master_address = 3; - // Guild creation date (in UNIX milliseconds) - sint64 created_at = 4; - // Average TVL score - string tvl_score = 5; - // Total volume score - string volume_score = 6; - // guild's rank by volume - sint32 rank_by_volume = 7; - // guild's rank by TVL - sint32 rank_by_tvl = 8; - // guild's logo, at the moment it supports numberic string (i.e '1', '2' and so -// on) not a random URL because of front end limitation - string logo = 9; - // guild's total TVL - string total_tvl = 10; - // Snapshot updated at time in UNIX milli - sint64 updated_at = 11; - // Guild name - string name = 14; - // Active status of guild, true when master total tvl meets the minimum -// requirements - bool is_active = 13; - // Master balance (in current campaigns denom) - string master_balance = 15; - // Guild description, set by master of the guild - string description = 16; -} - -message CampaignSummary { - // Campaign id - string campaign_id = 1; - // Guild manager contract address - string campaign_contract = 2; - // Number of guild in the campaign - sint32 total_guilds_count = 3; - // Total TVL - string total_tvl = 4; - // Sum average TVL of all guilds - string total_average_tvl = 5; - // Total volume across all guilds (in market quote denom, often USDT) - string total_volume = 6; - // Snapshot updated at time in UNIX milli - sint64 updated_at = 7; - // Total member joined the campaign (include guild masters) - sint32 total_members_count = 8; - // Campaign start time - sint64 start_time = 9; - // Campaign end time - sint64 end_time = 10; -} - -message ListGuildMembersRequest { - // Campaign contract address - string campaign_contract = 1; - // ID of guild, inside campaign - string guild_id = 2; - // Limit number of returned guild members - sint32 limit = 3; - // Skip some first guild members in the list for next page - sint32 skip = 4; - // whether to include guild summary info, it's better to use this in terms of -// latency, instead of sending 2 requests we just need once - bool include_guild_info = 5; - // Sort by some metrics - string sort_by = 6; -} - -message ListGuildMembersResponse { - repeated GuildMember members = 1; - Paging paging = 2; - Guild guild_info = 3; -} - -message GuildMember { - // Guild manager contract address - string campaign_contract = 1; - // Guild ID - string guild_id = 2; - // Guild member address - string address = 3; - // Guild enrollment date (in UNIX milliseconds) - sint64 joined_at = 4; - // Average TVL score - string tvl_score = 5; - // Total volume score - string volume_score = 6; - // Total volume score - string total_tvl = 7; - // Volume percentage out of guilds total volume - double volume_score_percentage = 8; - // TVL percentage out of guilds total TVL score - double tvl_score_percentage = 9; - // Rewards for volume campaign (amount+denom) - repeated Coin tvl_reward = 10; - // Rewards for TVL campaign (amount+denom) - repeated Coin volume_reward = 11; -} - -message GetGuildMemberRequest { - // Campaign contract address - string campaign_contract = 1; - // User address - string address = 2; -} - -message GetGuildMemberResponse { - GuildMember info = 1; -} diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go index cae3c64a..0c64e865 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -3986,6 +3986,147 @@ func (x *StreamPositionsResponse) GetTimestamp() int64 { return 0 } +type StreamPositionsV2Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the positions from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Backward compat single market ID of position we want to stream + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // List of market IDs of the positions we want to stream + MarketIds []string `protobuf:"bytes,3,rep,name=market_ids,json=marketIds,proto3" json:"market_ids,omitempty"` + // Subaccount ids of traders we want to get positions + SubaccountIds []string `protobuf:"bytes,4,rep,name=subaccount_ids,json=subaccountIds,proto3" json:"subaccount_ids,omitempty"` + // filter by account address + AccountAddress string `protobuf:"bytes,5,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *StreamPositionsV2Request) Reset() { + *x = StreamPositionsV2Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamPositionsV2Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamPositionsV2Request) ProtoMessage() {} + +func (x *StreamPositionsV2Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_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 StreamPositionsV2Request.ProtoReflect.Descriptor instead. +func (*StreamPositionsV2Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{49} +} + +func (x *StreamPositionsV2Request) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *StreamPositionsV2Request) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *StreamPositionsV2Request) GetMarketIds() []string { + if x != nil { + return x.MarketIds + } + return nil +} + +func (x *StreamPositionsV2Request) GetSubaccountIds() []string { + if x != nil { + return x.SubaccountIds + } + return nil +} + +func (x *StreamPositionsV2Request) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type StreamPositionsV2Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Updated derivative Position + Position *DerivativePositionV2 `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *StreamPositionsV2Response) Reset() { + *x = StreamPositionsV2Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamPositionsV2Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamPositionsV2Response) ProtoMessage() {} + +func (x *StreamPositionsV2Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_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 StreamPositionsV2Response.ProtoReflect.Descriptor instead. +func (*StreamPositionsV2Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{50} +} + +func (x *StreamPositionsV2Response) GetPosition() *DerivativePositionV2 { + if x != nil { + return x.Position + } + return nil +} + +func (x *StreamPositionsV2Response) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + type StreamOrdersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4028,7 +4169,7 @@ type StreamOrdersRequest struct { func (x *StreamOrdersRequest) Reset() { *x = StreamOrdersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4041,7 +4182,7 @@ func (x *StreamOrdersRequest) String() string { func (*StreamOrdersRequest) ProtoMessage() {} func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4054,7 +4195,7 @@ func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{49} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{51} } func (x *StreamOrdersRequest) GetMarketId() string { @@ -4171,7 +4312,7 @@ type StreamOrdersResponse struct { func (x *StreamOrdersResponse) Reset() { *x = StreamOrdersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4184,7 +4325,7 @@ func (x *StreamOrdersResponse) String() string { func (*StreamOrdersResponse) ProtoMessage() {} func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4197,7 +4338,7 @@ func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{50} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{52} } func (x *StreamOrdersResponse) GetOrder() *DerivativeLimitOrder { @@ -4263,7 +4404,7 @@ type TradesRequest struct { func (x *TradesRequest) Reset() { *x = TradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4276,7 +4417,7 @@ func (x *TradesRequest) String() string { func (*TradesRequest) ProtoMessage() {} func (x *TradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4289,7 +4430,7 @@ func (x *TradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesRequest.ProtoReflect.Descriptor instead. func (*TradesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{51} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{53} } func (x *TradesRequest) GetMarketId() string { @@ -4410,7 +4551,7 @@ type TradesResponse struct { func (x *TradesResponse) Reset() { *x = TradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4423,7 +4564,7 @@ func (x *TradesResponse) String() string { func (*TradesResponse) ProtoMessage() {} func (x *TradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4436,7 +4577,7 @@ func (x *TradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesResponse.ProtoReflect.Descriptor instead. func (*TradesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{52} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{54} } func (x *TradesResponse) GetTrades() []*DerivativeTrade { @@ -4489,7 +4630,7 @@ type DerivativeTrade struct { func (x *DerivativeTrade) Reset() { *x = DerivativeTrade{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4502,7 +4643,7 @@ func (x *DerivativeTrade) String() string { func (*DerivativeTrade) ProtoMessage() {} func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4515,7 +4656,7 @@ func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeTrade.ProtoReflect.Descriptor instead. func (*DerivativeTrade) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{53} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{55} } func (x *DerivativeTrade) GetOrderHash() string { @@ -4627,7 +4768,7 @@ type PositionDelta struct { func (x *PositionDelta) Reset() { *x = PositionDelta{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4640,7 +4781,7 @@ func (x *PositionDelta) String() string { func (*PositionDelta) ProtoMessage() {} func (x *PositionDelta) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4653,7 +4794,7 @@ func (x *PositionDelta) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionDelta.ProtoReflect.Descriptor instead. func (*PositionDelta) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{54} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{56} } func (x *PositionDelta) GetTradeDirection() string { @@ -4726,7 +4867,7 @@ type TradesV2Request struct { func (x *TradesV2Request) Reset() { *x = TradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4739,7 +4880,7 @@ func (x *TradesV2Request) String() string { func (*TradesV2Request) ProtoMessage() {} func (x *TradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4752,7 +4893,7 @@ func (x *TradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Request.ProtoReflect.Descriptor instead. func (*TradesV2Request) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{55} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{57} } func (x *TradesV2Request) GetMarketId() string { @@ -4873,7 +5014,7 @@ type TradesV2Response struct { func (x *TradesV2Response) Reset() { *x = TradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4886,7 +5027,7 @@ func (x *TradesV2Response) String() string { func (*TradesV2Response) ProtoMessage() {} func (x *TradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4899,7 +5040,7 @@ func (x *TradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Response.ProtoReflect.Descriptor instead. func (*TradesV2Response) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{56} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{58} } func (x *TradesV2Response) GetTrades() []*DerivativeTrade { @@ -4958,7 +5099,7 @@ type StreamTradesRequest struct { func (x *StreamTradesRequest) Reset() { *x = StreamTradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4971,7 +5112,7 @@ func (x *StreamTradesRequest) String() string { func (*StreamTradesRequest) ProtoMessage() {} func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4984,7 +5125,7 @@ func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesRequest.ProtoReflect.Descriptor instead. func (*StreamTradesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{57} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{59} } func (x *StreamTradesRequest) GetMarketId() string { @@ -5108,7 +5249,7 @@ type StreamTradesResponse struct { func (x *StreamTradesResponse) Reset() { *x = StreamTradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5121,7 +5262,7 @@ func (x *StreamTradesResponse) String() string { func (*StreamTradesResponse) ProtoMessage() {} func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5134,7 +5275,7 @@ func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesResponse.ProtoReflect.Descriptor instead. func (*StreamTradesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{58} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{60} } func (x *StreamTradesResponse) GetTrade() *DerivativeTrade { @@ -5200,7 +5341,7 @@ type StreamTradesV2Request struct { func (x *StreamTradesV2Request) Reset() { *x = StreamTradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5213,7 +5354,7 @@ func (x *StreamTradesV2Request) String() string { func (*StreamTradesV2Request) ProtoMessage() {} func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5226,7 +5367,7 @@ func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Request.ProtoReflect.Descriptor instead. func (*StreamTradesV2Request) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{59} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{61} } func (x *StreamTradesV2Request) GetMarketId() string { @@ -5350,7 +5491,7 @@ type StreamTradesV2Response struct { func (x *StreamTradesV2Response) Reset() { *x = StreamTradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5363,7 +5504,7 @@ func (x *StreamTradesV2Response) String() string { func (*StreamTradesV2Response) ProtoMessage() {} func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5376,7 +5517,7 @@ func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Response.ProtoReflect.Descriptor instead. func (*StreamTradesV2Response) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{60} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{62} } func (x *StreamTradesV2Response) GetTrade() *DerivativeTrade { @@ -5418,7 +5559,7 @@ type SubaccountOrdersListRequest struct { func (x *SubaccountOrdersListRequest) Reset() { *x = SubaccountOrdersListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5431,7 +5572,7 @@ func (x *SubaccountOrdersListRequest) String() string { func (*SubaccountOrdersListRequest) ProtoMessage() {} func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5444,7 +5585,7 @@ func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListRequest.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{61} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{63} } func (x *SubaccountOrdersListRequest) GetSubaccountId() string { @@ -5488,7 +5629,7 @@ type SubaccountOrdersListResponse struct { func (x *SubaccountOrdersListResponse) Reset() { *x = SubaccountOrdersListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5501,7 +5642,7 @@ func (x *SubaccountOrdersListResponse) String() string { func (*SubaccountOrdersListResponse) ProtoMessage() {} func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5514,7 +5655,7 @@ func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListResponse.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{62} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{64} } func (x *SubaccountOrdersListResponse) GetOrders() []*DerivativeLimitOrder { @@ -5553,7 +5694,7 @@ type SubaccountTradesListRequest struct { func (x *SubaccountTradesListRequest) Reset() { *x = SubaccountTradesListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5566,7 +5707,7 @@ func (x *SubaccountTradesListRequest) String() string { func (*SubaccountTradesListRequest) ProtoMessage() {} func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5579,7 +5720,7 @@ func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListRequest.ProtoReflect.Descriptor instead. func (*SubaccountTradesListRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{63} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{65} } func (x *SubaccountTradesListRequest) GetSubaccountId() string { @@ -5636,7 +5777,7 @@ type SubaccountTradesListResponse struct { func (x *SubaccountTradesListResponse) Reset() { *x = SubaccountTradesListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5649,7 +5790,7 @@ func (x *SubaccountTradesListResponse) String() string { func (*SubaccountTradesListResponse) ProtoMessage() {} func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5662,7 +5803,7 @@ func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListResponse.ProtoReflect.Descriptor instead. func (*SubaccountTradesListResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{64} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{66} } func (x *SubaccountTradesListResponse) GetTrades() []*DerivativeTrade { @@ -5712,7 +5853,7 @@ type OrdersHistoryRequest struct { func (x *OrdersHistoryRequest) Reset() { *x = OrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5725,7 +5866,7 @@ func (x *OrdersHistoryRequest) String() string { func (*OrdersHistoryRequest) ProtoMessage() {} func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5738,7 +5879,7 @@ func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*OrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{65} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{67} } func (x *OrdersHistoryRequest) GetSubaccountId() string { @@ -5866,7 +6007,7 @@ type OrdersHistoryResponse struct { func (x *OrdersHistoryResponse) Reset() { *x = OrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5879,7 +6020,7 @@ func (x *OrdersHistoryResponse) String() string { func (*OrdersHistoryResponse) ProtoMessage() {} func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5892,7 +6033,7 @@ func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*OrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{66} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{68} } func (x *OrdersHistoryResponse) GetOrders() []*DerivativeOrderHistory { @@ -5961,7 +6102,7 @@ type DerivativeOrderHistory struct { func (x *DerivativeOrderHistory) Reset() { *x = DerivativeOrderHistory{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5974,7 +6115,7 @@ func (x *DerivativeOrderHistory) String() string { func (*DerivativeOrderHistory) ProtoMessage() {} func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5987,7 +6128,7 @@ func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeOrderHistory.ProtoReflect.Descriptor instead. func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{67} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{69} } func (x *DerivativeOrderHistory) GetOrderHash() string { @@ -6158,7 +6299,7 @@ type StreamOrdersHistoryRequest struct { func (x *StreamOrdersHistoryRequest) Reset() { *x = StreamOrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6171,7 +6312,7 @@ func (x *StreamOrdersHistoryRequest) String() string { func (*StreamOrdersHistoryRequest) ProtoMessage() {} func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6184,7 +6325,7 @@ func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{68} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{70} } func (x *StreamOrdersHistoryRequest) GetSubaccountId() string { @@ -6245,7 +6386,7 @@ type StreamOrdersHistoryResponse struct { func (x *StreamOrdersHistoryResponse) Reset() { *x = StreamOrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6258,7 +6399,7 @@ func (x *StreamOrdersHistoryResponse) String() string { func (*StreamOrdersHistoryResponse) ProtoMessage() {} func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6271,7 +6412,7 @@ func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{69} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{71} } func (x *StreamOrdersHistoryResponse) GetOrder() *DerivativeOrderHistory { @@ -6949,130 +7090,193 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, - 0xcf, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x69, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, - 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, - 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, + 0xcb, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x01, + 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, + 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, + 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, + 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe8, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, + 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, + 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, - 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, - 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, - 0x69, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, - 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, 0x0a, + 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, @@ -7102,466 +7306,435 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, - 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, - 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, + 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, - 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, - 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, - 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, - 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, - 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, + 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, + 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, + 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, + 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, - 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, - 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, - 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, - 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xc4, 0x1a, 0x0a, 0x1e, 0x49, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xd7, 0x1b, 0x0a, 0x1e, 0x49, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x07, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, + 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, - 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, - 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, - 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, + 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, - 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, - 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, + 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, + 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, - 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, - 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, + 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, + 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x3b, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, + 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, + 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, - 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -7576,7 +7749,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP() return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 70) +var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 72) var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_goTypes = []interface{}{ (*MarketsRequest)(nil), // 0: injective_derivative_exchange_rpc.MarketsRequest (*MarketsResponse)(nil), // 1: injective_derivative_exchange_rpc.MarketsResponse @@ -7627,27 +7800,29 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_goTypes = []in (*FundingRate)(nil), // 46: injective_derivative_exchange_rpc.FundingRate (*StreamPositionsRequest)(nil), // 47: injective_derivative_exchange_rpc.StreamPositionsRequest (*StreamPositionsResponse)(nil), // 48: injective_derivative_exchange_rpc.StreamPositionsResponse - (*StreamOrdersRequest)(nil), // 49: injective_derivative_exchange_rpc.StreamOrdersRequest - (*StreamOrdersResponse)(nil), // 50: injective_derivative_exchange_rpc.StreamOrdersResponse - (*TradesRequest)(nil), // 51: injective_derivative_exchange_rpc.TradesRequest - (*TradesResponse)(nil), // 52: injective_derivative_exchange_rpc.TradesResponse - (*DerivativeTrade)(nil), // 53: injective_derivative_exchange_rpc.DerivativeTrade - (*PositionDelta)(nil), // 54: injective_derivative_exchange_rpc.PositionDelta - (*TradesV2Request)(nil), // 55: injective_derivative_exchange_rpc.TradesV2Request - (*TradesV2Response)(nil), // 56: injective_derivative_exchange_rpc.TradesV2Response - (*StreamTradesRequest)(nil), // 57: injective_derivative_exchange_rpc.StreamTradesRequest - (*StreamTradesResponse)(nil), // 58: injective_derivative_exchange_rpc.StreamTradesResponse - (*StreamTradesV2Request)(nil), // 59: injective_derivative_exchange_rpc.StreamTradesV2Request - (*StreamTradesV2Response)(nil), // 60: injective_derivative_exchange_rpc.StreamTradesV2Response - (*SubaccountOrdersListRequest)(nil), // 61: injective_derivative_exchange_rpc.SubaccountOrdersListRequest - (*SubaccountOrdersListResponse)(nil), // 62: injective_derivative_exchange_rpc.SubaccountOrdersListResponse - (*SubaccountTradesListRequest)(nil), // 63: injective_derivative_exchange_rpc.SubaccountTradesListRequest - (*SubaccountTradesListResponse)(nil), // 64: injective_derivative_exchange_rpc.SubaccountTradesListResponse - (*OrdersHistoryRequest)(nil), // 65: injective_derivative_exchange_rpc.OrdersHistoryRequest - (*OrdersHistoryResponse)(nil), // 66: injective_derivative_exchange_rpc.OrdersHistoryResponse - (*DerivativeOrderHistory)(nil), // 67: injective_derivative_exchange_rpc.DerivativeOrderHistory - (*StreamOrdersHistoryRequest)(nil), // 68: injective_derivative_exchange_rpc.StreamOrdersHistoryRequest - (*StreamOrdersHistoryResponse)(nil), // 69: injective_derivative_exchange_rpc.StreamOrdersHistoryResponse + (*StreamPositionsV2Request)(nil), // 49: injective_derivative_exchange_rpc.StreamPositionsV2Request + (*StreamPositionsV2Response)(nil), // 50: injective_derivative_exchange_rpc.StreamPositionsV2Response + (*StreamOrdersRequest)(nil), // 51: injective_derivative_exchange_rpc.StreamOrdersRequest + (*StreamOrdersResponse)(nil), // 52: injective_derivative_exchange_rpc.StreamOrdersResponse + (*TradesRequest)(nil), // 53: injective_derivative_exchange_rpc.TradesRequest + (*TradesResponse)(nil), // 54: injective_derivative_exchange_rpc.TradesResponse + (*DerivativeTrade)(nil), // 55: injective_derivative_exchange_rpc.DerivativeTrade + (*PositionDelta)(nil), // 56: injective_derivative_exchange_rpc.PositionDelta + (*TradesV2Request)(nil), // 57: injective_derivative_exchange_rpc.TradesV2Request + (*TradesV2Response)(nil), // 58: injective_derivative_exchange_rpc.TradesV2Response + (*StreamTradesRequest)(nil), // 59: injective_derivative_exchange_rpc.StreamTradesRequest + (*StreamTradesResponse)(nil), // 60: injective_derivative_exchange_rpc.StreamTradesResponse + (*StreamTradesV2Request)(nil), // 61: injective_derivative_exchange_rpc.StreamTradesV2Request + (*StreamTradesV2Response)(nil), // 62: injective_derivative_exchange_rpc.StreamTradesV2Response + (*SubaccountOrdersListRequest)(nil), // 63: injective_derivative_exchange_rpc.SubaccountOrdersListRequest + (*SubaccountOrdersListResponse)(nil), // 64: injective_derivative_exchange_rpc.SubaccountOrdersListResponse + (*SubaccountTradesListRequest)(nil), // 65: injective_derivative_exchange_rpc.SubaccountTradesListRequest + (*SubaccountTradesListResponse)(nil), // 66: injective_derivative_exchange_rpc.SubaccountTradesListResponse + (*OrdersHistoryRequest)(nil), // 67: injective_derivative_exchange_rpc.OrdersHistoryRequest + (*OrdersHistoryResponse)(nil), // 68: injective_derivative_exchange_rpc.OrdersHistoryResponse + (*DerivativeOrderHistory)(nil), // 69: injective_derivative_exchange_rpc.DerivativeOrderHistory + (*StreamOrdersHistoryRequest)(nil), // 70: injective_derivative_exchange_rpc.StreamOrdersHistoryRequest + (*StreamOrdersHistoryResponse)(nil), // 71: injective_derivative_exchange_rpc.StreamOrdersHistoryResponse } var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_depIdxs = []int32{ 2, // 0: injective_derivative_exchange_rpc.MarketsResponse.markets:type_name -> injective_derivative_exchange_rpc.DerivativeMarketInfo @@ -7682,75 +7857,78 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_depIdxs = []in 46, // 29: injective_derivative_exchange_rpc.FundingRatesResponse.funding_rates:type_name -> injective_derivative_exchange_rpc.FundingRate 14, // 30: injective_derivative_exchange_rpc.FundingRatesResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging 35, // 31: injective_derivative_exchange_rpc.StreamPositionsResponse.position:type_name -> injective_derivative_exchange_rpc.DerivativePosition - 32, // 32: injective_derivative_exchange_rpc.StreamOrdersResponse.order:type_name -> injective_derivative_exchange_rpc.DerivativeLimitOrder - 53, // 33: injective_derivative_exchange_rpc.TradesResponse.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade - 14, // 34: injective_derivative_exchange_rpc.TradesResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging - 54, // 35: injective_derivative_exchange_rpc.DerivativeTrade.position_delta:type_name -> injective_derivative_exchange_rpc.PositionDelta - 53, // 36: injective_derivative_exchange_rpc.TradesV2Response.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade - 14, // 37: injective_derivative_exchange_rpc.TradesV2Response.paging:type_name -> injective_derivative_exchange_rpc.Paging - 53, // 38: injective_derivative_exchange_rpc.StreamTradesResponse.trade:type_name -> injective_derivative_exchange_rpc.DerivativeTrade - 53, // 39: injective_derivative_exchange_rpc.StreamTradesV2Response.trade:type_name -> injective_derivative_exchange_rpc.DerivativeTrade - 32, // 40: injective_derivative_exchange_rpc.SubaccountOrdersListResponse.orders:type_name -> injective_derivative_exchange_rpc.DerivativeLimitOrder - 14, // 41: injective_derivative_exchange_rpc.SubaccountOrdersListResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging - 53, // 42: injective_derivative_exchange_rpc.SubaccountTradesListResponse.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade - 67, // 43: injective_derivative_exchange_rpc.OrdersHistoryResponse.orders:type_name -> injective_derivative_exchange_rpc.DerivativeOrderHistory - 14, // 44: injective_derivative_exchange_rpc.OrdersHistoryResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging - 67, // 45: injective_derivative_exchange_rpc.StreamOrdersHistoryResponse.order:type_name -> injective_derivative_exchange_rpc.DerivativeOrderHistory - 0, // 46: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Markets:input_type -> injective_derivative_exchange_rpc.MarketsRequest - 7, // 47: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Market:input_type -> injective_derivative_exchange_rpc.MarketRequest - 9, // 48: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamMarket:input_type -> injective_derivative_exchange_rpc.StreamMarketRequest - 11, // 49: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarkets:input_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest - 15, // 50: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarket:input_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketRequest - 17, // 51: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbookV2:input_type -> injective_derivative_exchange_rpc.OrderbookV2Request - 21, // 52: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbooksV2:input_type -> injective_derivative_exchange_rpc.OrderbooksV2Request - 24, // 53: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookV2:input_type -> injective_derivative_exchange_rpc.StreamOrderbookV2Request - 26, // 54: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookUpdate:input_type -> injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest - 30, // 55: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Orders:input_type -> injective_derivative_exchange_rpc.OrdersRequest - 33, // 56: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Positions:input_type -> injective_derivative_exchange_rpc.PositionsRequest - 36, // 57: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.PositionsV2:input_type -> injective_derivative_exchange_rpc.PositionsV2Request - 39, // 58: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.LiquidablePositions:input_type -> injective_derivative_exchange_rpc.LiquidablePositionsRequest - 41, // 59: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingPayments:input_type -> injective_derivative_exchange_rpc.FundingPaymentsRequest - 44, // 60: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingRates:input_type -> injective_derivative_exchange_rpc.FundingRatesRequest - 47, // 61: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositions:input_type -> injective_derivative_exchange_rpc.StreamPositionsRequest - 49, // 62: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrders:input_type -> injective_derivative_exchange_rpc.StreamOrdersRequest - 51, // 63: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Trades:input_type -> injective_derivative_exchange_rpc.TradesRequest - 55, // 64: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.TradesV2:input_type -> injective_derivative_exchange_rpc.TradesV2Request - 57, // 65: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTrades:input_type -> injective_derivative_exchange_rpc.StreamTradesRequest - 59, // 66: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTradesV2:input_type -> injective_derivative_exchange_rpc.StreamTradesV2Request - 61, // 67: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountOrdersList:input_type -> injective_derivative_exchange_rpc.SubaccountOrdersListRequest - 63, // 68: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountTradesList:input_type -> injective_derivative_exchange_rpc.SubaccountTradesListRequest - 65, // 69: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrdersHistory:input_type -> injective_derivative_exchange_rpc.OrdersHistoryRequest - 68, // 70: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrdersHistory:input_type -> injective_derivative_exchange_rpc.StreamOrdersHistoryRequest - 1, // 71: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Markets:output_type -> injective_derivative_exchange_rpc.MarketsResponse - 8, // 72: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Market:output_type -> injective_derivative_exchange_rpc.MarketResponse - 10, // 73: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamMarket:output_type -> injective_derivative_exchange_rpc.StreamMarketResponse - 12, // 74: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarkets:output_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse - 16, // 75: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarket:output_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketResponse - 18, // 76: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbookV2:output_type -> injective_derivative_exchange_rpc.OrderbookV2Response - 22, // 77: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbooksV2:output_type -> injective_derivative_exchange_rpc.OrderbooksV2Response - 25, // 78: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookV2:output_type -> injective_derivative_exchange_rpc.StreamOrderbookV2Response - 27, // 79: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookUpdate:output_type -> injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse - 31, // 80: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Orders:output_type -> injective_derivative_exchange_rpc.OrdersResponse - 34, // 81: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Positions:output_type -> injective_derivative_exchange_rpc.PositionsResponse - 37, // 82: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.PositionsV2:output_type -> injective_derivative_exchange_rpc.PositionsV2Response - 40, // 83: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.LiquidablePositions:output_type -> injective_derivative_exchange_rpc.LiquidablePositionsResponse - 42, // 84: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingPayments:output_type -> injective_derivative_exchange_rpc.FundingPaymentsResponse - 45, // 85: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingRates:output_type -> injective_derivative_exchange_rpc.FundingRatesResponse - 48, // 86: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositions:output_type -> injective_derivative_exchange_rpc.StreamPositionsResponse - 50, // 87: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrders:output_type -> injective_derivative_exchange_rpc.StreamOrdersResponse - 52, // 88: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Trades:output_type -> injective_derivative_exchange_rpc.TradesResponse - 56, // 89: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.TradesV2:output_type -> injective_derivative_exchange_rpc.TradesV2Response - 58, // 90: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTrades:output_type -> injective_derivative_exchange_rpc.StreamTradesResponse - 60, // 91: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTradesV2:output_type -> injective_derivative_exchange_rpc.StreamTradesV2Response - 62, // 92: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountOrdersList:output_type -> injective_derivative_exchange_rpc.SubaccountOrdersListResponse - 64, // 93: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountTradesList:output_type -> injective_derivative_exchange_rpc.SubaccountTradesListResponse - 66, // 94: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrdersHistory:output_type -> injective_derivative_exchange_rpc.OrdersHistoryResponse - 69, // 95: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrdersHistory:output_type -> injective_derivative_exchange_rpc.StreamOrdersHistoryResponse - 71, // [71:96] is the sub-list for method output_type - 46, // [46:71] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 38, // 32: injective_derivative_exchange_rpc.StreamPositionsV2Response.position:type_name -> injective_derivative_exchange_rpc.DerivativePositionV2 + 32, // 33: injective_derivative_exchange_rpc.StreamOrdersResponse.order:type_name -> injective_derivative_exchange_rpc.DerivativeLimitOrder + 55, // 34: injective_derivative_exchange_rpc.TradesResponse.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade + 14, // 35: injective_derivative_exchange_rpc.TradesResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging + 56, // 36: injective_derivative_exchange_rpc.DerivativeTrade.position_delta:type_name -> injective_derivative_exchange_rpc.PositionDelta + 55, // 37: injective_derivative_exchange_rpc.TradesV2Response.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade + 14, // 38: injective_derivative_exchange_rpc.TradesV2Response.paging:type_name -> injective_derivative_exchange_rpc.Paging + 55, // 39: injective_derivative_exchange_rpc.StreamTradesResponse.trade:type_name -> injective_derivative_exchange_rpc.DerivativeTrade + 55, // 40: injective_derivative_exchange_rpc.StreamTradesV2Response.trade:type_name -> injective_derivative_exchange_rpc.DerivativeTrade + 32, // 41: injective_derivative_exchange_rpc.SubaccountOrdersListResponse.orders:type_name -> injective_derivative_exchange_rpc.DerivativeLimitOrder + 14, // 42: injective_derivative_exchange_rpc.SubaccountOrdersListResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging + 55, // 43: injective_derivative_exchange_rpc.SubaccountTradesListResponse.trades:type_name -> injective_derivative_exchange_rpc.DerivativeTrade + 69, // 44: injective_derivative_exchange_rpc.OrdersHistoryResponse.orders:type_name -> injective_derivative_exchange_rpc.DerivativeOrderHistory + 14, // 45: injective_derivative_exchange_rpc.OrdersHistoryResponse.paging:type_name -> injective_derivative_exchange_rpc.Paging + 69, // 46: injective_derivative_exchange_rpc.StreamOrdersHistoryResponse.order:type_name -> injective_derivative_exchange_rpc.DerivativeOrderHistory + 0, // 47: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Markets:input_type -> injective_derivative_exchange_rpc.MarketsRequest + 7, // 48: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Market:input_type -> injective_derivative_exchange_rpc.MarketRequest + 9, // 49: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamMarket:input_type -> injective_derivative_exchange_rpc.StreamMarketRequest + 11, // 50: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarkets:input_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketsRequest + 15, // 51: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarket:input_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketRequest + 17, // 52: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbookV2:input_type -> injective_derivative_exchange_rpc.OrderbookV2Request + 21, // 53: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbooksV2:input_type -> injective_derivative_exchange_rpc.OrderbooksV2Request + 24, // 54: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookV2:input_type -> injective_derivative_exchange_rpc.StreamOrderbookV2Request + 26, // 55: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookUpdate:input_type -> injective_derivative_exchange_rpc.StreamOrderbookUpdateRequest + 30, // 56: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Orders:input_type -> injective_derivative_exchange_rpc.OrdersRequest + 33, // 57: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Positions:input_type -> injective_derivative_exchange_rpc.PositionsRequest + 36, // 58: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.PositionsV2:input_type -> injective_derivative_exchange_rpc.PositionsV2Request + 39, // 59: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.LiquidablePositions:input_type -> injective_derivative_exchange_rpc.LiquidablePositionsRequest + 41, // 60: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingPayments:input_type -> injective_derivative_exchange_rpc.FundingPaymentsRequest + 44, // 61: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingRates:input_type -> injective_derivative_exchange_rpc.FundingRatesRequest + 47, // 62: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositions:input_type -> injective_derivative_exchange_rpc.StreamPositionsRequest + 49, // 63: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositionsV2:input_type -> injective_derivative_exchange_rpc.StreamPositionsV2Request + 51, // 64: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrders:input_type -> injective_derivative_exchange_rpc.StreamOrdersRequest + 53, // 65: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Trades:input_type -> injective_derivative_exchange_rpc.TradesRequest + 57, // 66: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.TradesV2:input_type -> injective_derivative_exchange_rpc.TradesV2Request + 59, // 67: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTrades:input_type -> injective_derivative_exchange_rpc.StreamTradesRequest + 61, // 68: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTradesV2:input_type -> injective_derivative_exchange_rpc.StreamTradesV2Request + 63, // 69: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountOrdersList:input_type -> injective_derivative_exchange_rpc.SubaccountOrdersListRequest + 65, // 70: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountTradesList:input_type -> injective_derivative_exchange_rpc.SubaccountTradesListRequest + 67, // 71: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrdersHistory:input_type -> injective_derivative_exchange_rpc.OrdersHistoryRequest + 70, // 72: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrdersHistory:input_type -> injective_derivative_exchange_rpc.StreamOrdersHistoryRequest + 1, // 73: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Markets:output_type -> injective_derivative_exchange_rpc.MarketsResponse + 8, // 74: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Market:output_type -> injective_derivative_exchange_rpc.MarketResponse + 10, // 75: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamMarket:output_type -> injective_derivative_exchange_rpc.StreamMarketResponse + 12, // 76: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarkets:output_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketsResponse + 16, // 77: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.BinaryOptionsMarket:output_type -> injective_derivative_exchange_rpc.BinaryOptionsMarketResponse + 18, // 78: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbookV2:output_type -> injective_derivative_exchange_rpc.OrderbookV2Response + 22, // 79: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrderbooksV2:output_type -> injective_derivative_exchange_rpc.OrderbooksV2Response + 25, // 80: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookV2:output_type -> injective_derivative_exchange_rpc.StreamOrderbookV2Response + 27, // 81: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrderbookUpdate:output_type -> injective_derivative_exchange_rpc.StreamOrderbookUpdateResponse + 31, // 82: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Orders:output_type -> injective_derivative_exchange_rpc.OrdersResponse + 34, // 83: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Positions:output_type -> injective_derivative_exchange_rpc.PositionsResponse + 37, // 84: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.PositionsV2:output_type -> injective_derivative_exchange_rpc.PositionsV2Response + 40, // 85: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.LiquidablePositions:output_type -> injective_derivative_exchange_rpc.LiquidablePositionsResponse + 42, // 86: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingPayments:output_type -> injective_derivative_exchange_rpc.FundingPaymentsResponse + 45, // 87: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.FundingRates:output_type -> injective_derivative_exchange_rpc.FundingRatesResponse + 48, // 88: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositions:output_type -> injective_derivative_exchange_rpc.StreamPositionsResponse + 50, // 89: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamPositionsV2:output_type -> injective_derivative_exchange_rpc.StreamPositionsV2Response + 52, // 90: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrders:output_type -> injective_derivative_exchange_rpc.StreamOrdersResponse + 54, // 91: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.Trades:output_type -> injective_derivative_exchange_rpc.TradesResponse + 58, // 92: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.TradesV2:output_type -> injective_derivative_exchange_rpc.TradesV2Response + 60, // 93: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTrades:output_type -> injective_derivative_exchange_rpc.StreamTradesResponse + 62, // 94: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamTradesV2:output_type -> injective_derivative_exchange_rpc.StreamTradesV2Response + 64, // 95: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountOrdersList:output_type -> injective_derivative_exchange_rpc.SubaccountOrdersListResponse + 66, // 96: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.SubaccountTradesList:output_type -> injective_derivative_exchange_rpc.SubaccountTradesListResponse + 68, // 97: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.OrdersHistory:output_type -> injective_derivative_exchange_rpc.OrdersHistoryResponse + 71, // 98: injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC.StreamOrdersHistory:output_type -> injective_derivative_exchange_rpc.StreamOrdersHistoryResponse + 73, // [73:99] is the sub-list for method output_type + 47, // [47:73] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() } @@ -8348,7 +8526,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamOrdersRequest); i { + switch v := v.(*StreamPositionsV2Request); i { case 0: return &v.state case 1: @@ -8360,7 +8538,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamOrdersResponse); i { + switch v := v.(*StreamPositionsV2Response); i { case 0: return &v.state case 1: @@ -8372,7 +8550,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradesRequest); i { + switch v := v.(*StreamOrdersRequest); i { case 0: return &v.state case 1: @@ -8384,7 +8562,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradesResponse); i { + switch v := v.(*StreamOrdersResponse); i { case 0: return &v.state case 1: @@ -8396,7 +8574,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeTrade); i { + switch v := v.(*TradesRequest); i { case 0: return &v.state case 1: @@ -8408,7 +8586,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionDelta); i { + switch v := v.(*TradesResponse); i { case 0: return &v.state case 1: @@ -8420,7 +8598,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradesV2Request); i { + switch v := v.(*DerivativeTrade); i { case 0: return &v.state case 1: @@ -8432,7 +8610,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradesV2Response); i { + switch v := v.(*PositionDelta); i { case 0: return &v.state case 1: @@ -8444,7 +8622,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTradesRequest); i { + switch v := v.(*TradesV2Request); i { case 0: return &v.state case 1: @@ -8456,7 +8634,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTradesResponse); i { + switch v := v.(*TradesV2Response); i { case 0: return &v.state case 1: @@ -8468,7 +8646,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTradesV2Request); i { + switch v := v.(*StreamTradesRequest); i { case 0: return &v.state case 1: @@ -8480,7 +8658,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTradesV2Response); i { + switch v := v.(*StreamTradesResponse); i { case 0: return &v.state case 1: @@ -8492,7 +8670,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrdersListRequest); i { + switch v := v.(*StreamTradesV2Request); i { case 0: return &v.state case 1: @@ -8504,7 +8682,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrdersListResponse); i { + switch v := v.(*StreamTradesV2Response); i { case 0: return &v.state case 1: @@ -8516,7 +8694,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountTradesListRequest); i { + switch v := v.(*SubaccountOrdersListRequest); i { case 0: return &v.state case 1: @@ -8528,7 +8706,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountTradesListResponse); i { + switch v := v.(*SubaccountOrdersListResponse); i { case 0: return &v.state case 1: @@ -8540,7 +8718,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrdersHistoryRequest); i { + switch v := v.(*SubaccountTradesListRequest); i { case 0: return &v.state case 1: @@ -8552,7 +8730,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrdersHistoryResponse); i { + switch v := v.(*SubaccountTradesListResponse); i { case 0: return &v.state case 1: @@ -8564,7 +8742,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativeOrderHistory); i { + switch v := v.(*OrdersHistoryRequest); i { case 0: return &v.state case 1: @@ -8576,7 +8754,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamOrdersHistoryRequest); i { + switch v := v.(*OrdersHistoryResponse); i { case 0: return &v.state case 1: @@ -8588,6 +8766,30 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { } } file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeOrderHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamOrdersHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersHistoryResponse); i { case 0: return &v.state @@ -8606,7 +8808,7 @@ func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 70, + NumMessages: 72, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go index 4ca27953..950476b0 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -53,8 +53,11 @@ type InjectiveDerivativeExchangeRPCClient interface { FundingPayments(ctx context.Context, in *FundingPaymentsRequest, opts ...grpc.CallOption) (*FundingPaymentsResponse, error) // FundingRates gets the historical funding rates for a market. FundingRates(ctx context.Context, in *FundingRatesRequest, opts ...grpc.CallOption) (*FundingRatesResponse, error) - // StreamPositions streams derivatives position updates. + // StreamPositions streams derivatives position updates. This is the legacy + // version of the streamPositionsV2 endpoint. Use streamPositionsV2 instead. StreamPositions(ctx context.Context, in *StreamPositionsRequest, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamPositionsClient, error) + // StreamPositionsV2 streams derivatives position updates. + StreamPositionsV2(ctx context.Context, in *StreamPositionsV2Request, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) // StreamOrders streams updates to individual orders of a Derivative Market. StreamOrders(ctx context.Context, in *StreamOrdersRequest, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) // Trades gets the trades of a Derivative Market. @@ -320,8 +323,40 @@ func (x *injectiveDerivativeExchangeRPCStreamPositionsClient) Recv() (*StreamPos return m, nil } +func (c *injectiveDerivativeExchangeRPCClient) StreamPositionsV2(ctx context.Context, in *StreamPositionsV2Request, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) { + stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[4], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositionsV2", opts...) + if err != nil { + return nil, err + } + x := &injectiveDerivativeExchangeRPCStreamPositionsV2Client{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type InjectiveDerivativeExchangeRPC_StreamPositionsV2Client interface { + Recv() (*StreamPositionsV2Response, error) + grpc.ClientStream +} + +type injectiveDerivativeExchangeRPCStreamPositionsV2Client struct { + grpc.ClientStream +} + +func (x *injectiveDerivativeExchangeRPCStreamPositionsV2Client) Recv() (*StreamPositionsV2Response, error) { + m := new(StreamPositionsV2Response) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *injectiveDerivativeExchangeRPCClient) StreamOrders(ctx context.Context, in *StreamOrdersRequest, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[4], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders", opts...) + stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[5], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders", opts...) if err != nil { return nil, err } @@ -371,7 +406,7 @@ func (c *injectiveDerivativeExchangeRPCClient) TradesV2(ctx context.Context, in } func (c *injectiveDerivativeExchangeRPCClient) StreamTrades(ctx context.Context, in *StreamTradesRequest, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamTradesClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[5], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades", opts...) + stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[6], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades", opts...) if err != nil { return nil, err } @@ -403,7 +438,7 @@ func (x *injectiveDerivativeExchangeRPCStreamTradesClient) Recv() (*StreamTrades } func (c *injectiveDerivativeExchangeRPCClient) StreamTradesV2(ctx context.Context, in *StreamTradesV2Request, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamTradesV2Client, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[6], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2", opts...) + stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[7], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2", opts...) if err != nil { return nil, err } @@ -462,7 +497,7 @@ func (c *injectiveDerivativeExchangeRPCClient) OrdersHistory(ctx context.Context } func (c *injectiveDerivativeExchangeRPCClient) StreamOrdersHistory(ctx context.Context, in *StreamOrdersHistoryRequest, opts ...grpc.CallOption) (InjectiveDerivativeExchangeRPC_StreamOrdersHistoryClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[7], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory", opts...) + stream, err := c.cc.NewStream(ctx, &InjectiveDerivativeExchangeRPC_ServiceDesc.Streams[8], "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory", opts...) if err != nil { return nil, err } @@ -528,8 +563,11 @@ type InjectiveDerivativeExchangeRPCServer interface { FundingPayments(context.Context, *FundingPaymentsRequest) (*FundingPaymentsResponse, error) // FundingRates gets the historical funding rates for a market. FundingRates(context.Context, *FundingRatesRequest) (*FundingRatesResponse, error) - // StreamPositions streams derivatives position updates. + // StreamPositions streams derivatives position updates. This is the legacy + // version of the streamPositionsV2 endpoint. Use streamPositionsV2 instead. StreamPositions(*StreamPositionsRequest, InjectiveDerivativeExchangeRPC_StreamPositionsServer) error + // StreamPositionsV2 streams derivatives position updates. + StreamPositionsV2(*StreamPositionsV2Request, InjectiveDerivativeExchangeRPC_StreamPositionsV2Server) error // StreamOrders streams updates to individual orders of a Derivative Market. StreamOrders(*StreamOrdersRequest, InjectiveDerivativeExchangeRPC_StreamOrdersServer) error // Trades gets the trades of a Derivative Market. @@ -604,6 +642,9 @@ func (UnimplementedInjectiveDerivativeExchangeRPCServer) FundingRates(context.Co func (UnimplementedInjectiveDerivativeExchangeRPCServer) StreamPositions(*StreamPositionsRequest, InjectiveDerivativeExchangeRPC_StreamPositionsServer) error { return status.Errorf(codes.Unimplemented, "method StreamPositions not implemented") } +func (UnimplementedInjectiveDerivativeExchangeRPCServer) StreamPositionsV2(*StreamPositionsV2Request, InjectiveDerivativeExchangeRPC_StreamPositionsV2Server) error { + return status.Errorf(codes.Unimplemented, "method StreamPositionsV2 not implemented") +} func (UnimplementedInjectiveDerivativeExchangeRPCServer) StreamOrders(*StreamOrdersRequest, InjectiveDerivativeExchangeRPC_StreamOrdersServer) error { return status.Errorf(codes.Unimplemented, "method StreamOrders not implemented") } @@ -945,6 +986,27 @@ func (x *injectiveDerivativeExchangeRPCStreamPositionsServer) Send(m *StreamPosi return x.ServerStream.SendMsg(m) } +func _InjectiveDerivativeExchangeRPC_StreamPositionsV2_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamPositionsV2Request) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(InjectiveDerivativeExchangeRPCServer).StreamPositionsV2(m, &injectiveDerivativeExchangeRPCStreamPositionsV2Server{stream}) +} + +type InjectiveDerivativeExchangeRPC_StreamPositionsV2Server interface { + Send(*StreamPositionsV2Response) error + grpc.ServerStream +} + +type injectiveDerivativeExchangeRPCStreamPositionsV2Server struct { + grpc.ServerStream +} + +func (x *injectiveDerivativeExchangeRPCStreamPositionsV2Server) Send(m *StreamPositionsV2Response) error { + return x.ServerStream.SendMsg(m) +} + func _InjectiveDerivativeExchangeRPC_StreamOrders_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(StreamOrdersRequest) if err := stream.RecvMsg(m); err != nil { @@ -1216,6 +1278,11 @@ var InjectiveDerivativeExchangeRPC_ServiceDesc = grpc.ServiceDesc{ Handler: _InjectiveDerivativeExchangeRPC_StreamPositions_Handler, ServerStreams: true, }, + { + StreamName: "StreamPositionsV2", + Handler: _InjectiveDerivativeExchangeRPC_StreamPositionsV2_Handler, + ServerStreams: true, + }, { StreamName: "StreamOrders", Handler: _InjectiveDerivativeExchangeRPC_StreamOrders_Handler, diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go deleted file mode 100644 index 952d119a..00000000 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go +++ /dev/null @@ -1,1995 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_derivative_exchange_rpc.proto - -/* -Package injective_derivative_exchange_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_derivative_exchange_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveDerivativeExchangeRPC_Markets_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Markets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_Markets_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Markets(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_Market_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Market(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_Market_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Market(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_StreamMarket_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamMarketClient, runtime.ServerMetadata, error) { - var protoReq StreamMarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamMarket(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BinaryOptionsMarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.BinaryOptionsMarkets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BinaryOptionsMarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.BinaryOptionsMarkets(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BinaryOptionsMarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.BinaryOptionsMarket(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BinaryOptionsMarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.BinaryOptionsMarket(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderbookV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderbookV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbooksV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderbooksV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbooksV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderbooksV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, runtime.ServerMetadata, error) { - var protoReq StreamOrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrderbookV2(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, runtime.ServerMetadata, error) { - var protoReq StreamOrderbookUpdateRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrderbookUpdate(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_Orders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Orders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_Orders_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Orders(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_Positions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PositionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Positions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_Positions_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PositionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Positions(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_PositionsV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PositionsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.PositionsV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_PositionsV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PositionsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.PositionsV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq LiquidablePositionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.LiquidablePositions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq LiquidablePositionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.LiquidablePositions(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_FundingPayments_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundingPaymentsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.FundingPayments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_FundingPayments_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundingPaymentsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.FundingPayments(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_FundingRates_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundingRatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.FundingRates(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_FundingRates_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundingRatesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.FundingRates(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_StreamPositions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamPositionsClient, runtime.ServerMetadata, error) { - var protoReq StreamPositionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamPositions(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_StreamOrders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamOrdersClient, runtime.ServerMetadata, error) { - var protoReq StreamOrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrders(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_Trades_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Trades(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_Trades_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Trades(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_TradesV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.TradesV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_TradesV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.TradesV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_StreamTrades_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamTradesClient, runtime.ServerMetadata, error) { - var protoReq StreamTradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamTrades(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamTradesV2Client, runtime.ServerMetadata, error) { - var protoReq StreamTradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamTradesV2(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrdersListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountOrdersList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrdersListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountOrdersList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountTradesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountTradesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountTradesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountTradesList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrdersHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveDerivativeExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrdersHistory(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveDerivativeExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveDerivativeExchangeRPC_StreamOrdersHistoryClient, runtime.ServerMetadata, error) { - var protoReq StreamOrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrdersHistory(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveDerivativeExchangeRPCHandlerServer registers the http handlers for service InjectiveDerivativeExchangeRPC to "mux". -// UnaryRPC :call InjectiveDerivativeExchangeRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveDerivativeExchangeRPCHandlerFromEndpoint instead. -func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveDerivativeExchangeRPCServer) error { - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Markets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Market_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamMarket_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrderbooksV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Orders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Positions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_PositionsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_LiquidablePositions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_FundingPayments_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_FundingRates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamPositions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Trades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_TradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamTrades_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamTradesV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_SubaccountTradesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveDerivativeExchangeRPCHandlerFromEndpoint is same as RegisterInjectiveDerivativeExchangeRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveDerivativeExchangeRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveDerivativeExchangeRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveDerivativeExchangeRPCHandler registers the http handlers for service InjectiveDerivativeExchangeRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveDerivativeExchangeRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx, mux, NewInjectiveDerivativeExchangeRPCClient(conn)) -} - -// RegisterInjectiveDerivativeExchangeRPCHandlerClient registers the http handlers for service InjectiveDerivativeExchangeRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveDerivativeExchangeRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveDerivativeExchangeRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveDerivativeExchangeRPCClient" to call the correct interceptors. -func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveDerivativeExchangeRPCClient) error { - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Markets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Market_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamMarket_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamMarket_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamMarket_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrderbooksV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Orders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Positions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_PositionsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_LiquidablePositions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_FundingPayments_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_FundingRates_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamPositions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamPositions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamPositions_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrders_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamOrders_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_Trades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_TradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamTrades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTrades_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamTrades_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamTradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_SubaccountTradesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_OrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveDerivativeExchangeRPC_Markets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "Markets"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_Market_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "Market"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamMarket_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamMarket"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "BinaryOptionsMarkets"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "BinaryOptionsMarket"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_OrderbookV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "OrderbookV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_OrderbooksV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "OrderbooksV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamOrderbookV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamOrderbookUpdate"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_Orders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "Orders"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_Positions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "Positions"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_PositionsV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "PositionsV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_LiquidablePositions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "LiquidablePositions"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_FundingPayments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "FundingPayments"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_FundingRates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "FundingRates"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamPositions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamPositions"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamOrders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamOrders"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_Trades_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "Trades"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_TradesV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "TradesV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamTrades_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamTrades"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamTradesV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamTradesV2"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "SubaccountOrdersList"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "SubaccountTradesList"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_OrdersHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "OrdersHistory"}, "")) - - pattern_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC", "StreamOrdersHistory"}, "")) -) - -var ( - forward_InjectiveDerivativeExchangeRPC_Markets_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_Market_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_StreamMarket_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_Orders_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_Positions_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_PositionsV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_FundingPayments_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_FundingRates_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_StreamPositions_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_StreamOrders_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_Trades_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_TradesV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_StreamTrades_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_StreamTradesV2_0 = runtime.ForwardResponseStream - - forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0 = runtime.ForwardResponseMessage - - forward_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0 = runtime.ForwardResponseStream -) diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto deleted file mode 100644 index b65d2df4..00000000 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto +++ /dev/null @@ -1,1079 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveDerivativeExchangeRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_derivative_exchange_rpc; - -option go_package = "/injective_derivative_exchange_rpcpb"; - -// InjectiveDerivativeExchangeRPC defines gRPC API of Derivative Markets -// provider. -service InjectiveDerivativeExchangeRPC { - // Markets gets a list of Derivative Markets - rpc Markets (MarketsRequest) returns (MarketsResponse); - // Market gets details of a single derivative market - rpc Market (MarketRequest) returns (MarketResponse); - // StreamMarket streams live updates of selected derivative markets - rpc StreamMarket (StreamMarketRequest) returns (stream StreamMarketResponse); - // BinaryOptionsMarkets gets a list of Binary Options Markets - rpc BinaryOptionsMarkets (BinaryOptionsMarketsRequest) returns (BinaryOptionsMarketsResponse); - // BinaryOptionMarket gets details of a single binary options market - rpc BinaryOptionsMarket (BinaryOptionsMarketRequest) returns (BinaryOptionsMarketResponse); - // Orderbook gets the Orderbook of a Derivative Market - rpc OrderbookV2 (OrderbookV2Request) returns (OrderbookV2Response); - // Orderbooks gets the Orderbooks of requested derivative markets - rpc OrderbooksV2 (OrderbooksV2Request) returns (OrderbooksV2Response); - // Stream live snapshot updates of selected derivative market orderbook - rpc StreamOrderbookV2 (StreamOrderbookV2Request) returns (stream StreamOrderbookV2Response); - // Stream live level updates of selected derivative market orderbook - rpc StreamOrderbookUpdate (StreamOrderbookUpdateRequest) returns (stream StreamOrderbookUpdateResponse); - // DerivativeLimitOrders gets the limit orders of a derivative Market. - rpc Orders (OrdersRequest) returns (OrdersResponse); - // Positions gets the positions for a trader. - rpc Positions (PositionsRequest) returns (PositionsResponse); - // Positions gets the positions for a trader. V2 removed some redundant fields -// and had performance improvements - rpc PositionsV2 (PositionsV2Request) returns (PositionsV2Response); - // LiquidablePositions gets all the liquidable positions. - rpc LiquidablePositions (LiquidablePositionsRequest) returns (LiquidablePositionsResponse); - // FundingPayments gets the funding payments for a trader. - rpc FundingPayments (FundingPaymentsRequest) returns (FundingPaymentsResponse); - // FundingRates gets the historical funding rates for a market. - rpc FundingRates (FundingRatesRequest) returns (FundingRatesResponse); - // StreamPositions streams derivatives position updates. - rpc StreamPositions (StreamPositionsRequest) returns (stream StreamPositionsResponse); - // StreamOrders streams updates to individual orders of a Derivative Market. - rpc StreamOrders (StreamOrdersRequest) returns (stream StreamOrdersResponse); - // Trades gets the trades of a Derivative Market. - rpc Trades (TradesRequest) returns (TradesResponse); - // Trades gets the trades of a Derivative Market. - rpc TradesV2 (TradesV2Request) returns (TradesV2Response); - // StreamTrades streams newly executed trades from Derivative Market. - rpc StreamTrades (StreamTradesRequest) returns (stream StreamTradesResponse); - // StreamTrades streams newly executed trades from Derivative Market. - rpc StreamTradesV2 (StreamTradesV2Request) returns (stream StreamTradesV2Response); - // SubaccountOrdersList lists orders posted from this subaccount. - rpc SubaccountOrdersList (SubaccountOrdersListRequest) returns (SubaccountOrdersListResponse); - // SubaccountTradesList gets a list of derivatives trades executed by this -// subaccount. - rpc SubaccountTradesList (SubaccountTradesListRequest) returns (SubaccountTradesListResponse); - // Lists history orders posted from a subaccount - rpc OrdersHistory (OrdersHistoryRequest) returns (OrdersHistoryResponse); - // Stream updates to historical orders of a derivative Market - rpc StreamOrdersHistory (StreamOrdersHistoryRequest) returns (stream StreamOrdersHistoryResponse); -} - -message MarketsRequest { - // Filter by market status - string market_status = 1; - // Filter by the Coin denomination of the quote currency - string quote_denom = 2; - repeated string market_statuses = 3; -} - -message MarketsResponse { - // Derivative Markets list - repeated DerivativeMarketInfo markets = 1; -} - -message DerivativeMarketInfo { - // DerivativeMarket ID is crypto.Keccak256Hash([]byte((oracleType.String() + -// ticker + quoteDenom + oracleBase + oracleQuote))) for perpetual markets and -// crypto.Keccak256Hash([]byte((oracleType.String() + ticker + quoteDenom + -// oracleBase + oracleQuote + strconv.Itoa(int(expiry))))) for expiry futures -// markets - string market_id = 1; - // The status of the market - string market_status = 2; - // A name of the pair in format AAA/BBB, where AAA is base asset, BBB is quote -// asset. - string ticker = 3; - // Oracle base currency - string oracle_base = 4; - // Oracle quote currency - string oracle_quote = 5; - // Oracle Type - string oracle_type = 6; - // OracleScaleFactor - uint32 oracle_scale_factor = 7; - // Defines the initial margin ratio of a derivative market - string initial_margin_ratio = 8; - // Defines the maintenance margin ratio of a derivative market - string maintenance_margin_ratio = 9; - // Coin denom used for the quote asset. - string quote_denom = 10; - // Token metadata for quote asset - TokenMeta quote_token_meta = 11; - // Defines the fee percentage makers pay when trading (in quote asset) - string maker_fee_rate = 12; - // Defines the fee percentage takers pay when trading (in quote asset) - string taker_fee_rate = 13; - // Percentage of the transaction fee shared with the service provider - string service_provider_fee = 14; - // True if the market is a perpetual swap market - bool is_perpetual = 15; - // Defines the minimum required tick size for the order's price - string min_price_tick_size = 16; - // Defines the minimum required tick size for the order's quantity - string min_quantity_tick_size = 17; - PerpetualMarketInfo perpetual_market_info = 18; - PerpetualMarketFunding perpetual_market_funding = 19; - ExpiryFuturesMarketInfo expiry_futures_market_info = 20; - // Minimum notional value for the order - string min_notional = 21; -} - -message TokenMeta { - // Token full name - string name = 1; - // Token contract address (native or not) - string address = 2; - // Token symbol short name - string symbol = 3; - // URL to the logo image - string logo = 4; - // Token decimals - sint32 decimals = 5; - // Token metadata fetched timestamp in UNIX millis. - sint64 updated_at = 6; -} - -message PerpetualMarketInfo { - // Defines the default maximum absolute value of the hourly funding rate of the -// perpetual market. - string hourly_funding_rate_cap = 1; - // Defines the hourly interest rate of the perpetual market. - string hourly_interest_rate = 2; - // Defines the next funding timestamp in seconds of a perpetual market in UNIX -// seconds. - sint64 next_funding_timestamp = 3; - // Defines the funding interval in seconds of a perpetual market in seconds. - sint64 funding_interval = 4; -} - -message PerpetualMarketFunding { - // Defines the cumulative funding of a perpetual market. - string cumulative_funding = 1; - // Defines defines the cumulative price for the current hour up to the last -// timestamp. - string cumulative_price = 2; - // Defines the last funding timestamp in seconds of a perpetual market in UNIX -// seconds. - sint64 last_timestamp = 3; -} - -message ExpiryFuturesMarketInfo { - // Defines the expiration time for a time expiry futures market in UNIX seconds. - sint64 expiration_timestamp = 1; - // Defines the settlement price for a time expiry futures market. - string settlement_price = 2; -} - -message MarketRequest { - // MarketId of the market we want to fetch - string market_id = 1; -} - -message MarketResponse { - // Info about particular derivative market - DerivativeMarketInfo market = 1; -} - -message StreamMarketRequest { - // List of market IDs for updates streaming, empty means 'ALL' derivative -// markets - repeated string market_ids = 1; -} - -message StreamMarketResponse { - // Info about particular derivative market - DerivativeMarketInfo market = 1; - // Update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message BinaryOptionsMarketsRequest { - // Filter by market status - string market_status = 1; - // Filter by the Coin denomination of the quote currency - string quote_denom = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 4; -} - -message BinaryOptionsMarketsResponse { - // Binary Options Markets list - repeated BinaryOptionsMarketInfo markets = 1; - Paging paging = 2; -} - -message BinaryOptionsMarketInfo { - // Binary Options Market ID is crypto.Keccak256Hash([]byte((oracleType.String() -// + ticker + quoteDenom + oracleSymbol + oracleProvider))) - string market_id = 1; - // The status of the market - string market_status = 2; - // A name of the binary options market. - string ticker = 3; - // Oracle symbol - string oracle_symbol = 4; - // Oracle provider - string oracle_provider = 5; - // Oracle Type - string oracle_type = 6; - // OracleScaleFactor - uint32 oracle_scale_factor = 7; - // Defines the expiration time for the market in UNIX seconds. - sint64 expiration_timestamp = 8; - // Defines the settlement time for the market in UNIX seconds. - sint64 settlement_timestamp = 9; - // Coin denom used for the quote asset. - string quote_denom = 10; - // Token metadata for quote asset - TokenMeta quote_token_meta = 11; - // Defines the fee percentage makers pay when trading (in quote asset) - string maker_fee_rate = 12; - // Defines the fee percentage takers pay when trading (in quote asset) - string taker_fee_rate = 13; - // Percentage of the transaction fee shared with the service provider - string service_provider_fee = 14; - // Defines the minimum required tick size for the order's price - string min_price_tick_size = 15; - // Defines the minimum required tick size for the order's quantity - string min_quantity_tick_size = 16; - // Defines the settlement price of the market - string settlement_price = 17; - // Defines the minimum notional value for the market - string min_notional = 18; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message BinaryOptionsMarketRequest { - // MarketId of the market we want to fetch - string market_id = 1; -} - -message BinaryOptionsMarketResponse { - // Info about particular derivative market - BinaryOptionsMarketInfo market = 1; -} - -message OrderbookV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; -} - -message OrderbookV2Response { - // Orderbook of a particular derivative market - DerivativeLimitOrderbookV2 orderbook = 1; -} - -message DerivativeLimitOrderbookV2 { - // Array of price levels for buys - repeated PriceLevel buys = 1; - // Array of price levels for sells - repeated PriceLevel sells = 2; - // market orderbook sequence - uint64 sequence = 3; - // Last update timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message PriceLevel { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message OrderbooksV2Request { - // MarketIds of the markets - repeated string market_ids = 1; -} - -message OrderbooksV2Response { - repeated SingleDerivativeLimitOrderbookV2 orderbooks = 1; -} - -message SingleDerivativeLimitOrderbookV2 { - // market's ID - string market_id = 1; - // Orderbook of the market - DerivativeLimitOrderbookV2 orderbook = 2; -} - -message StreamOrderbookV2Request { - // List of market IDs for orderbook streaming, empty means 'ALL' derivative -// markets - repeated string market_ids = 1; -} - -message StreamOrderbookV2Response { - // Orderbook of a Derivative Market - DerivativeLimitOrderbookV2 orderbook = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; - // MarketId of the market's orderbook - string market_id = 4; -} - -message StreamOrderbookUpdateRequest { - // List of market IDs for orderbook streaming, empty means 'ALL' derivative -// markets - repeated string market_ids = 1; -} - -message StreamOrderbookUpdateResponse { - // Orderbook level updates of a Derivative Market - OrderbookLevelUpdates orderbook_level_updates = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; - // MarketId of the market's orderbook - string market_id = 4; -} - -message OrderbookLevelUpdates { - // market's ID - string market_id = 1; - // orderbook update sequence - uint64 sequence = 2; - // buy levels - repeated PriceLevelUpdate buys = 3; - // sell levels - repeated PriceLevelUpdate sells = 4; - // updates timestamp - sint64 updated_at = 5; -} - -message PriceLevelUpdate { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level status. - bool is_active = 3; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message OrdersRequest { - // MarketId of market we want to fetch orders from. Using this field for one -// single marketId - string market_id = 1; - // Look for specific order side - string order_side = 2; - // Look for specific subaccountId of an order - string subaccount_id = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 5; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 7; - // MarketIds of the markets of which we want to get order from, use this field -// for fetching orders from multiple markets - repeated string market_ids = 8; - // Only search for conditional/non-conditional orders - string is_conditional = 9; - // Search for specific order type - string order_type = 10; - // Should include inactive orders - bool include_inactive = 11; - // Choose to return subaccount total orders - bool subaccount_total_orders = 12; - // TradeId of the order we want to fetch - string trade_id = 13; - // Client order ID - string cid = 14; -} - -message OrdersResponse { - repeated DerivativeLimitOrder orders = 1; - Paging paging = 2; -} - -message DerivativeLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Derivative Market ID - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // True if the order is a reduce-only order - bool is_reduce_only = 5; - // Margin of the order - string margin = 6; - // Price of the order - string price = 7; - // Quantity of the order - string quantity = 8; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 9; - // Trigger price is the trigger price used by stop/take orders - string trigger_price = 10; - // Fee recipient address - string fee_recipient = 11; - // Order state - string state = 12; - // Order committed timestamp in UNIX millis. - sint64 created_at = 13; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 14; - // Order number of subaccount - sint64 order_number = 15; - // Order type - string order_type = 16; - // Order type - bool is_conditional = 17; - // Trigger timestamp, only exists for conditional orders - uint64 trigger_at = 18; - // OrderHash of order that is triggered by this conditional order - string placed_order_hash = 19; - // Execution type of conditional order - string execution_type = 20; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 21; - // Custom client order ID - string cid = 22; -} - -message PositionsRequest { - // SubaccountId of the trader we want to get the positions from - string subaccount_id = 1; - // MarketId of the position we want to fetch. Use this field for fetching from -// single market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 5; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 6; - // MarketIds of the markets we want to filter. Use this field for fetching from -// multiple markets - repeated string market_ids = 7; - // filter by direction of the position - string direction = 8; - // set to True to return subaccount total positions - bool subaccount_total_positions = 9; - // filter by account address - string account_address = 10; -} - -message PositionsResponse { - repeated DerivativePosition positions = 1; - Paging paging = 2; -} - -message DerivativePosition { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Aggregate Quantity of the Reduce Only orders associated with the position - string aggregate_reduce_only_quantity = 11; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Position created timestamp in UNIX millis. - sint64 created_at = 13; -} - -message PositionsV2Request { - // SubaccountId of the trader we want to get the positions from - string subaccount_id = 1; - // MarketId of the position we want to fetch. Use this field for fetching from -// single market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 5; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 6; - // MarketIds of the markets we want to filter. Use this field for fetching from -// multiple markets - repeated string market_ids = 7; - // filter by direction of the position - string direction = 8; - // set to True to return subaccount total positions - bool subaccount_total_positions = 9; - // filter by account address - string account_address = 10; -} - -message PositionsV2Response { - repeated DerivativePositionV2 positions = 1; - Paging paging = 2; -} - -message DerivativePositionV2 { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 11; - // Market quote denom - string denom = 12; -} - -message LiquidablePositionsRequest { - // Market ID to filter orders for specific market - string market_id = 1; - // Skip will skip the first n item from the result - uint64 skip = 2; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 3; -} - -message LiquidablePositionsResponse { - // List of derivative positions - repeated DerivativePosition positions = 1; -} - -message FundingPaymentsRequest { - // SubaccountId of the trader we want to get the positions from - string subaccount_id = 1; - // MarketIds of the funding payment we want to fetch. Using this for only one -// market id. This field is prioritized - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 4; - // Upper bound of funding payment updatedAt - sint64 end_time = 5; - // Filter by market ids. Using this field for fetching funding payments from -// multiple market ids - repeated string market_ids = 6; -} - -message FundingPaymentsResponse { - // List of funding payments - repeated FundingPayment payments = 1; - Paging paging = 2; -} - -message FundingPayment { - // Derivative Market ID - string market_id = 1; - // The subaccountId that the position belongs to - string subaccount_id = 2; - // Amount of the funding payment - string amount = 3; - // Timestamp of funding payment in UNIX millis - sint64 timestamp = 4; -} - -message FundingRatesRequest { - // MarketId of the position we want to fetch - string market_id = 1; - // Skip will skip the first n item from the result - uint64 skip = 2; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 3; - // Upper bound of funding timestamp - sint64 end_time = 4; -} - -message FundingRatesResponse { - // List of funding rates - repeated FundingRate funding_rates = 1; - Paging paging = 2; -} - -message FundingRate { - // Derivative Market ID - string market_id = 1; - // Value of the funding rate - string rate = 2; - // Timestamp of funding rate in UNIX millis - sint64 timestamp = 3; -} - -message StreamPositionsRequest { - // SubaccountId of the trader we want to get the positions from - string subaccount_id = 1; - // Backward compat single market ID of position we want to stream - string market_id = 2; - // List of market IDs of the positions we want to stream - repeated string market_ids = 3; - // Subaccount ids of traders we want to get positions - repeated string subaccount_ids = 4; - // filter by account address - string account_address = 5; -} - -message StreamPositionsResponse { - // Updated derivative Position - DerivativePosition position = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message StreamOrdersRequest { - // MarketId of market we want to fetch orders from. Using this field for one -// single marketId - string market_id = 1; - // Look for specific order side - string order_side = 2; - // Look for specific subaccountId of an order - string subaccount_id = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 5; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 7; - // MarketIds of the markets of which we want to get order from, use this field -// for fetching orders from multiple markets - repeated string market_ids = 8; - // Only search for conditional/non-conditional orders - string is_conditional = 9; - // Search for specific order type - string order_type = 10; - // Should include inactive orders - bool include_inactive = 11; - // Choose to return subaccount total orders - bool subaccount_total_orders = 12; - // TradeId of the order we want to fetch - string trade_id = 13; - // Client order ID - string cid = 14; -} - -message StreamOrdersResponse { - // Updated market order - DerivativeLimitOrder order = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message TradesRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades. Use this field for fetching -// trades from multiple subaccounts - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Filter by fee recipient - string fee_recipient = 15; -} - -message TradesResponse { - // Trades of a Derivative Market - repeated DerivativeTrade trades = 1; - Paging paging = 2; -} - -message DerivativeTrade { - // Order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // True if the trade is a liquidation - bool is_liquidation = 5; - // Position Delta from the trade - PositionDelta position_delta = 6; - // The payout associated with the trade - string payout = 7; - // The fee associated with the trade - string fee = 8; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 9; - // Fee recipient address - string fee_recipient = 10; - // A unique string that helps differentiate between trades - string trade_id = 11; - // Trade's execution side, marker/taker - string execution_side = 12; - // Custom client order ID - string cid = 13; -} - -message PositionDelta { - // The direction the trade - string trade_direction = 1; - // Execution Price of the trade. - string execution_price = 2; - // Execution Quantity of the trade. - string execution_quantity = 3; - // Execution Margin of the trade. - string execution_margin = 4; -} - -message TradesV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades. Use this field for fetching -// trades from multiple subaccounts - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Filter by fee recipient - string fee_recipient = 15; -} - -message TradesV2Response { - // Trades of a Derivative Market - repeated DerivativeTrade trades = 1; - Paging paging = 2; -} - -message StreamTradesRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades. Use this field for fetching -// trades from multiple subaccounts - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Filter by fee recipient - string fee_recipient = 15; -} - -message StreamTradesResponse { - // New derivative market trade - DerivativeTrade trade = 1; - // Executed trades update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message StreamTradesV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades. Use this field for fetching -// trades from multiple subaccounts - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Filter by fee recipient - string fee_recipient = 15; -} - -message StreamTradesV2Response { - // New derivative market trade - DerivativeTrade trade = 1; - // Executed trades update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message SubaccountOrdersListRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; -} - -message SubaccountOrdersListResponse { - // List of derivative orders - repeated DerivativeLimitOrder orders = 1; - Paging paging = 2; -} - -message SubaccountTradesListRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter trades by market ID - string market_id = 2; - // Filter by execution type of trades - string execution_type = 3; - // Filter by direction trades - string direction = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 6; -} - -message SubaccountTradesListResponse { - // List of derivative market trades - repeated DerivativeTrade trades = 1; -} - -message OrdersHistoryRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; - // filter by order types - repeated string order_types = 5; - // order side filter - string direction = 6; - // Search for orders which createdAt >= startTime, time in millisecond - sint64 start_time = 7; - // Search for orders which createdAt <= endTime, time in millisecond - sint64 end_time = 8; - // Only search for conditional/non-conditional orders - string is_conditional = 9; - // filter by order type - string order_type = 10; - // Filter by order state - string state = 11; - repeated string execution_types = 12; - repeated string market_ids = 13; - // TradeId of the order we want to fetch - string trade_id = 14; - // Return only orders for active markets - bool active_markets_only = 15; - // Client order ID - string cid = 16; -} - -message OrdersHistoryResponse { - // List of historical derivative orders - repeated DerivativeOrderHistory orders = 1; - Paging paging = 2; -} - -message DerivativeOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // True if an order is reduce only - bool is_reduce_only = 14; - // Order direction (order side) - string direction = 15; - // True if this is conditional order, otherwise false - bool is_conditional = 16; - // Trigger timestamp in unix milli - uint64 trigger_at = 17; - // Order hash placed when this triggers - string placed_order_hash = 18; - // Order's margin - string margin = 19; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 20; - // Custom client order ID - string cid = 21; -} - -message StreamOrdersHistoryRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // filter by order types - repeated string order_types = 3; - // order side filter - string direction = 4; - // Filter by order state - string state = 5; - repeated string execution_types = 6; -} - -message StreamOrdersHistoryResponse { - // Updated order - DerivativeOrderHistory order = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} diff --git a/exchange/event_provider_api/pb/event_provider_api.pb.gw.go b/exchange/event_provider_api/pb/event_provider_api.pb.gw.go deleted file mode 100644 index 03cf7f4d..00000000 --- a/exchange/event_provider_api/pb/event_provider_api.pb.gw.go +++ /dev/null @@ -1,569 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: event_provider_api.proto - -/* -Package event_provider_apipb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package event_provider_apipb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLatestHeightRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetLatestHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_EventProviderAPI_GetLatestHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLatestHeightRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetLatestHeight(ctx, &protoReq) - return msg, metadata, err - -} - -func request_EventProviderAPI_StreamBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (EventProviderAPI_StreamBlockEventsClient, runtime.ServerMetadata, error) { - var protoReq StreamBlockEventsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamBlockEvents(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlockEventsRPCRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetBlockEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_EventProviderAPI_GetBlockEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlockEventsRPCRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetBlockEventsRPC(ctx, &protoReq) - return msg, metadata, err - -} - -func request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetCustomEventsRPCRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetCustomEventsRPC(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_EventProviderAPI_GetCustomEventsRPC_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetCustomEventsRPCRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetCustomEventsRPC(ctx, &protoReq) - return msg, metadata, err - -} - -func request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetABCIBlockEventsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetABCIBlockEvents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_EventProviderAPI_GetABCIBlockEvents_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetABCIBlockEventsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetABCIBlockEvents(ctx, &protoReq) - return msg, metadata, err - -} - -func request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, client EventProviderAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetABCIBlockEventsAtHeightRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetABCIBlockEventsAtHeight(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(ctx context.Context, marshaler runtime.Marshaler, server EventProviderAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetABCIBlockEventsAtHeightRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetABCIBlockEventsAtHeight(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterEventProviderAPIHandlerServer registers the http handlers for service EventProviderAPI to "mux". -// UnaryRPC :call EventProviderAPIServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterEventProviderAPIHandlerFromEndpoint instead. -func RegisterEventProviderAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server EventProviderAPIServer) error { - - mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterEventProviderAPIHandlerFromEndpoint is same as RegisterEventProviderAPIHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterEventProviderAPIHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterEventProviderAPIHandler(ctx, mux, conn) -} - -// RegisterEventProviderAPIHandler registers the http handlers for service EventProviderAPI to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterEventProviderAPIHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterEventProviderAPIHandlerClient(ctx, mux, NewEventProviderAPIClient(conn)) -} - -// RegisterEventProviderAPIHandlerClient registers the http handlers for service EventProviderAPI -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "EventProviderAPIClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "EventProviderAPIClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "EventProviderAPIClient" to call the correct interceptors. -func RegisterEventProviderAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client EventProviderAPIClient) error { - - mux.Handle("POST", pattern_EventProviderAPI_GetLatestHeight_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetLatestHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetLatestHeight")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_GetLatestHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetLatestHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_StreamBlockEvents_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/StreamBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/StreamBlockEvents")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_StreamBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_StreamBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetBlockEventsRPC_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetBlockEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetBlockEventsRPC")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetBlockEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetCustomEventsRPC_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetCustomEventsRPC", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetCustomEventsRPC")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetCustomEventsRPC_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEvents_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEvents", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEvents")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetABCIBlockEvents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight", runtime.WithHTTPPathPattern("/event_provider_api.EventProviderAPI/GetABCIBlockEventsAtHeight")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_EventProviderAPI_GetLatestHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetLatestHeight"}, "")) - - pattern_EventProviderAPI_StreamBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "StreamBlockEvents"}, "")) - - pattern_EventProviderAPI_GetBlockEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetBlockEventsRPC"}, "")) - - pattern_EventProviderAPI_GetCustomEventsRPC_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetCustomEventsRPC"}, "")) - - pattern_EventProviderAPI_GetABCIBlockEvents_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEvents"}, "")) - - pattern_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"event_provider_api.EventProviderAPI", "GetABCIBlockEventsAtHeight"}, "")) -) - -var ( - forward_EventProviderAPI_GetLatestHeight_0 = runtime.ForwardResponseMessage - - forward_EventProviderAPI_StreamBlockEvents_0 = runtime.ForwardResponseStream - - forward_EventProviderAPI_GetBlockEventsRPC_0 = runtime.ForwardResponseMessage - - forward_EventProviderAPI_GetCustomEventsRPC_0 = runtime.ForwardResponseMessage - - forward_EventProviderAPI_GetABCIBlockEvents_0 = runtime.ForwardResponseMessage - - forward_EventProviderAPI_GetABCIBlockEventsAtHeight_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/event_provider_api/pb/event_provider_api.proto b/exchange/event_provider_api/pb/event_provider_api.proto deleted file mode 100644 index 7b85e866..00000000 --- a/exchange/event_provider_api/pb/event_provider_api.proto +++ /dev/null @@ -1,180 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// EventProviderAPI protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package event_provider_api; - -option go_package = "/event_provider_apipb"; - -// EventProviderAPI provides processed block events for different backends. -service EventProviderAPI { - // Get latest block from event provider - rpc GetLatestHeight (GetLatestHeightRequest) returns (GetLatestHeightResponse); - // Stream processed block events for selected backend - rpc StreamBlockEvents (StreamBlockEventsRequest) returns (stream StreamBlockEventsResponse); - // Get processed block events for selected backend - rpc GetBlockEventsRPC (GetBlockEventsRPCRequest) returns (GetBlockEventsRPCResponse); - // Get custom processed block events for selected backend - rpc GetCustomEventsRPC (GetCustomEventsRPCRequest) returns (GetCustomEventsRPCResponse); - // Get raw block events for selected height - rpc GetABCIBlockEvents (GetABCIBlockEventsRequest) returns (GetABCIBlockEventsResponse); - // Get all raw block events for selected height - rpc GetABCIBlockEventsAtHeight (GetABCIBlockEventsAtHeightRequest) returns (GetABCIBlockEventsAtHeightResponse); -} - -message GetLatestHeightRequest { -} - -message GetLatestHeightResponse { - // Response version. - string v = 1; - // Status of the response. - string s = 2; - // Error message. - string e = 3; - LatestBlockHeight data = 4; -} -// Latest block height from event provider db -message LatestBlockHeight { - uint64 height = 1; -} - -message StreamBlockEventsRequest { - // Select backend processor - string backend = 1; - sint32 height = 2; -} - -message StreamBlockEventsResponse { - repeated Block blocks = 1; -} - -message Block { - sint64 height = 1; - string version = 2; - // Processed block events in the block - repeated BlockEvent events = 3; - // Indicates whether the block is the latest one available in the event provider - bool in_sync = 4; -} - -message BlockEvent { - // Event type - string type_url = 1; - // Event data - bytes value = 2; - // TX hash - bytes tx_hash = 3; - // Set only if it's a BeginBlock or EndBlock event - string mode = 4; -} - -message GetBlockEventsRPCRequest { - // Select backend processor - string backend = 1; - sint32 height = 2; - bool human_readable = 3; -} - -message GetBlockEventsRPCResponse { - // Response version. - string v = 1; - // Status of the response. - string s = 2; - // Error message. - string e = 3; - BlockEventsRPC data = 4; -} -// Processed block events for backend processor to consume -message BlockEventsRPC { - // Array of event types - repeated string types = 1; - // Array of parsed events - repeated bytes events = 2; - // Map of event index - tx hash - map tx_hashes = 3; -} - -message GetCustomEventsRPCRequest { - // Select backend processor - string backend = 1; - sint32 height = 2; - // Specify custom events to get - string events = 3; -} - -message GetCustomEventsRPCResponse { - // Response version. - string v = 1; - // Status of the response. - string s = 2; - // Error message. - string e = 3; - BlockEventsRPC data = 4; -} - -message GetABCIBlockEventsRequest { - sint32 height = 1; - // Array of event types - repeated string event_types = 2; -} - -message GetABCIBlockEventsResponse { - // Response version. - string v = 1; - // Status of the response. - string s = 2; - // Error message. - string e = 3; - RawBlock raw_block = 4; -} - -message RawBlock { - sint64 height = 1; - string block_time = 5; - // Block timestamp in UNIX millis. - sint64 block_timestamp = 6; - repeated ABCIResponseDeliverTx txs_results = 2; - repeated ABCIEvent begin_block_events = 3; - repeated ABCIEvent end_block_events = 4; -} - -message ABCIResponseDeliverTx { - sint32 code = 1; - string log = 2; - string info = 3; - sint64 gas_wanted = 4; - sint64 gas_used = 5; - repeated ABCIEvent events = 6; - string codespace = 7; - bytes tx_hash = 8; -} - -message ABCIEvent { - string type = 1; - repeated ABCIAttribute attributes = 2; -} - -message ABCIAttribute { - string key = 1; - string value = 2; -} - -message GetABCIBlockEventsAtHeightRequest { - sint32 height = 1; -} - -message GetABCIBlockEventsAtHeightResponse { - // Response version. - string v = 1; - // Status of the response. - string s = 2; - // Error message. - string e = 3; - RawBlock raw_block = 4; -} diff --git a/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go b/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go deleted file mode 100644 index 2acb375b..00000000 --- a/exchange/event_provider_api/pb/event_provider_api_grpc.pb_mock.go +++ /dev/null @@ -1,563 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go -// -// Generated by this command: -// -// mockgen -source=api/gen/grpc/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go -destination=api/gen/grpc/event_provider_api/pb/event_provider_api_grpc.pb_mock.go -package=event_provider_apipb -// - -// Package event_provider_apipb is a generated GoMock package. -package event_provider_apipb - -import ( - context "context" - reflect "reflect" - - gomock "go.uber.org/mock/gomock" - grpc "google.golang.org/grpc" - metadata "google.golang.org/grpc/metadata" -) - -// MockEventProviderAPIClient is a mock of EventProviderAPIClient interface. -type MockEventProviderAPIClient struct { - ctrl *gomock.Controller - recorder *MockEventProviderAPIClientMockRecorder -} - -// MockEventProviderAPIClientMockRecorder is the mock recorder for MockEventProviderAPIClient. -type MockEventProviderAPIClientMockRecorder struct { - mock *MockEventProviderAPIClient -} - -// NewMockEventProviderAPIClient creates a new mock instance. -func NewMockEventProviderAPIClient(ctrl *gomock.Controller) *MockEventProviderAPIClient { - mock := &MockEventProviderAPIClient{ctrl: ctrl} - mock.recorder = &MockEventProviderAPIClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockEventProviderAPIClient) EXPECT() *MockEventProviderAPIClientMockRecorder { - return m.recorder -} - -// GetABCIBlockEvents mocks base method. -func (m *MockEventProviderAPIClient) GetABCIBlockEvents(ctx context.Context, in *GetABCIBlockEventsRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetABCIBlockEvents", varargs...) - ret0, _ := ret[0].(*GetABCIBlockEventsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. -func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEvents(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEvents), varargs...) -} - -// GetABCIBlockEventsAtHeight mocks base method. -func (m *MockEventProviderAPIClient) GetABCIBlockEventsAtHeight(ctx context.Context, in *GetABCIBlockEventsAtHeightRequest, opts ...grpc.CallOption) (*GetABCIBlockEventsAtHeightResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", varargs...) - ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. -func (mr *MockEventProviderAPIClientMockRecorder) GetABCIBlockEventsAtHeight(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetABCIBlockEventsAtHeight), varargs...) -} - -// GetBlockEventsRPC mocks base method. -func (m *MockEventProviderAPIClient) GetBlockEventsRPC(ctx context.Context, in *GetBlockEventsRPCRequest, opts ...grpc.CallOption) (*GetBlockEventsRPCResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetBlockEventsRPC", varargs...) - ret0, _ := ret[0].(*GetBlockEventsRPCResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. -func (mr *MockEventProviderAPIClientMockRecorder) GetBlockEventsRPC(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetBlockEventsRPC), varargs...) -} - -// GetCustomEventsRPC mocks base method. -func (m *MockEventProviderAPIClient) GetCustomEventsRPC(ctx context.Context, in *GetCustomEventsRPCRequest, opts ...grpc.CallOption) (*GetCustomEventsRPCResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetCustomEventsRPC", varargs...) - ret0, _ := ret[0].(*GetCustomEventsRPCResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. -func (mr *MockEventProviderAPIClientMockRecorder) GetCustomEventsRPC(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetCustomEventsRPC), varargs...) -} - -// GetLatestHeight mocks base method. -func (m *MockEventProviderAPIClient) GetLatestHeight(ctx context.Context, in *GetLatestHeightRequest, opts ...grpc.CallOption) (*GetLatestHeightResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetLatestHeight", varargs...) - ret0, _ := ret[0].(*GetLatestHeightResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestHeight indicates an expected call of GetLatestHeight. -func (mr *MockEventProviderAPIClientMockRecorder) GetLatestHeight(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIClient)(nil).GetLatestHeight), varargs...) -} - -// StreamBlockEvents mocks base method. -func (m *MockEventProviderAPIClient) StreamBlockEvents(ctx context.Context, in *StreamBlockEventsRequest, opts ...grpc.CallOption) (EventProviderAPI_StreamBlockEventsClient, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "StreamBlockEvents", varargs...) - ret0, _ := ret[0].(EventProviderAPI_StreamBlockEventsClient) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// StreamBlockEvents indicates an expected call of StreamBlockEvents. -func (mr *MockEventProviderAPIClientMockRecorder) StreamBlockEvents(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIClient)(nil).StreamBlockEvents), varargs...) -} - -// MockEventProviderAPI_StreamBlockEventsClient is a mock of EventProviderAPI_StreamBlockEventsClient interface. -type MockEventProviderAPI_StreamBlockEventsClient struct { - ctrl *gomock.Controller - recorder *MockEventProviderAPI_StreamBlockEventsClientMockRecorder -} - -// MockEventProviderAPI_StreamBlockEventsClientMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsClient. -type MockEventProviderAPI_StreamBlockEventsClientMockRecorder struct { - mock *MockEventProviderAPI_StreamBlockEventsClient -} - -// NewMockEventProviderAPI_StreamBlockEventsClient creates a new mock instance. -func NewMockEventProviderAPI_StreamBlockEventsClient(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsClient { - mock := &MockEventProviderAPI_StreamBlockEventsClient{ctrl: ctrl} - mock.recorder = &MockEventProviderAPI_StreamBlockEventsClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockEventProviderAPI_StreamBlockEventsClient) EXPECT() *MockEventProviderAPI_StreamBlockEventsClientMockRecorder { - return m.recorder -} - -// CloseSend mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsClient) CloseSend() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CloseSend") - ret0, _ := ret[0].(error) - return ret0 -} - -// CloseSend indicates an expected call of CloseSend. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) CloseSend() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).CloseSend)) -} - -// Context mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsClient) Context() context.Context { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Context") - ret0, _ := ret[0].(context.Context) - return ret0 -} - -// Context indicates an expected call of Context. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Context() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Context)) -} - -// Header mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsClient) Header() (metadata.MD, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Header") - ret0, _ := ret[0].(metadata.MD) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Header indicates an expected call of Header. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Header() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Header)) -} - -// Recv mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsClient) Recv() (*StreamBlockEventsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Recv") - ret0, _ := ret[0].(*StreamBlockEventsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Recv indicates an expected call of Recv. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Recv() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Recv)) -} - -// RecvMsg mocks base method. -func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) RecvMsg(m any) error { - m_2.ctrl.T.Helper() - ret := m_2.ctrl.Call(m_2, "RecvMsg", m) - ret0, _ := ret[0].(error) - return ret0 -} - -// RecvMsg indicates an expected call of RecvMsg. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) RecvMsg(m any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).RecvMsg), m) -} - -// SendMsg mocks base method. -func (m_2 *MockEventProviderAPI_StreamBlockEventsClient) SendMsg(m any) error { - m_2.ctrl.T.Helper() - ret := m_2.ctrl.Call(m_2, "SendMsg", m) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendMsg indicates an expected call of SendMsg. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) SendMsg(m any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).SendMsg), m) -} - -// Trailer mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsClient) Trailer() metadata.MD { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Trailer") - ret0, _ := ret[0].(metadata.MD) - return ret0 -} - -// Trailer indicates an expected call of Trailer. -func (mr *MockEventProviderAPI_StreamBlockEventsClientMockRecorder) Trailer() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsClient)(nil).Trailer)) -} - -// MockEventProviderAPIServer is a mock of EventProviderAPIServer interface. -type MockEventProviderAPIServer struct { - ctrl *gomock.Controller - recorder *MockEventProviderAPIServerMockRecorder -} - -// MockEventProviderAPIServerMockRecorder is the mock recorder for MockEventProviderAPIServer. -type MockEventProviderAPIServerMockRecorder struct { - mock *MockEventProviderAPIServer -} - -// NewMockEventProviderAPIServer creates a new mock instance. -func NewMockEventProviderAPIServer(ctrl *gomock.Controller) *MockEventProviderAPIServer { - mock := &MockEventProviderAPIServer{ctrl: ctrl} - mock.recorder = &MockEventProviderAPIServerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockEventProviderAPIServer) EXPECT() *MockEventProviderAPIServerMockRecorder { - return m.recorder -} - -// GetABCIBlockEvents mocks base method. -func (m *MockEventProviderAPIServer) GetABCIBlockEvents(arg0 context.Context, arg1 *GetABCIBlockEventsRequest) (*GetABCIBlockEventsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetABCIBlockEvents", arg0, arg1) - ret0, _ := ret[0].(*GetABCIBlockEventsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetABCIBlockEvents indicates an expected call of GetABCIBlockEvents. -func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEvents(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEvents), arg0, arg1) -} - -// GetABCIBlockEventsAtHeight mocks base method. -func (m *MockEventProviderAPIServer) GetABCIBlockEventsAtHeight(arg0 context.Context, arg1 *GetABCIBlockEventsAtHeightRequest) (*GetABCIBlockEventsAtHeightResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetABCIBlockEventsAtHeight", arg0, arg1) - ret0, _ := ret[0].(*GetABCIBlockEventsAtHeightResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetABCIBlockEventsAtHeight indicates an expected call of GetABCIBlockEventsAtHeight. -func (mr *MockEventProviderAPIServerMockRecorder) GetABCIBlockEventsAtHeight(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetABCIBlockEventsAtHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetABCIBlockEventsAtHeight), arg0, arg1) -} - -// GetBlockEventsRPC mocks base method. -func (m *MockEventProviderAPIServer) GetBlockEventsRPC(arg0 context.Context, arg1 *GetBlockEventsRPCRequest) (*GetBlockEventsRPCResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetBlockEventsRPC", arg0, arg1) - ret0, _ := ret[0].(*GetBlockEventsRPCResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetBlockEventsRPC indicates an expected call of GetBlockEventsRPC. -func (mr *MockEventProviderAPIServerMockRecorder) GetBlockEventsRPC(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBlockEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetBlockEventsRPC), arg0, arg1) -} - -// GetCustomEventsRPC mocks base method. -func (m *MockEventProviderAPIServer) GetCustomEventsRPC(arg0 context.Context, arg1 *GetCustomEventsRPCRequest) (*GetCustomEventsRPCResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetCustomEventsRPC", arg0, arg1) - ret0, _ := ret[0].(*GetCustomEventsRPCResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetCustomEventsRPC indicates an expected call of GetCustomEventsRPC. -func (mr *MockEventProviderAPIServerMockRecorder) GetCustomEventsRPC(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCustomEventsRPC", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetCustomEventsRPC), arg0, arg1) -} - -// GetLatestHeight mocks base method. -func (m *MockEventProviderAPIServer) GetLatestHeight(arg0 context.Context, arg1 *GetLatestHeightRequest) (*GetLatestHeightResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetLatestHeight", arg0, arg1) - ret0, _ := ret[0].(*GetLatestHeightResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetLatestHeight indicates an expected call of GetLatestHeight. -func (mr *MockEventProviderAPIServerMockRecorder) GetLatestHeight(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLatestHeight", reflect.TypeOf((*MockEventProviderAPIServer)(nil).GetLatestHeight), arg0, arg1) -} - -// StreamBlockEvents mocks base method. -func (m *MockEventProviderAPIServer) StreamBlockEvents(arg0 *StreamBlockEventsRequest, arg1 EventProviderAPI_StreamBlockEventsServer) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StreamBlockEvents", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// StreamBlockEvents indicates an expected call of StreamBlockEvents. -func (mr *MockEventProviderAPIServerMockRecorder) StreamBlockEvents(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamBlockEvents", reflect.TypeOf((*MockEventProviderAPIServer)(nil).StreamBlockEvents), arg0, arg1) -} - -// mustEmbedUnimplementedEventProviderAPIServer mocks base method. -func (m *MockEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") -} - -// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. -func (mr *MockEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) -} - -// MockUnsafeEventProviderAPIServer is a mock of UnsafeEventProviderAPIServer interface. -type MockUnsafeEventProviderAPIServer struct { - ctrl *gomock.Controller - recorder *MockUnsafeEventProviderAPIServerMockRecorder -} - -// MockUnsafeEventProviderAPIServerMockRecorder is the mock recorder for MockUnsafeEventProviderAPIServer. -type MockUnsafeEventProviderAPIServerMockRecorder struct { - mock *MockUnsafeEventProviderAPIServer -} - -// NewMockUnsafeEventProviderAPIServer creates a new mock instance. -func NewMockUnsafeEventProviderAPIServer(ctrl *gomock.Controller) *MockUnsafeEventProviderAPIServer { - mock := &MockUnsafeEventProviderAPIServer{ctrl: ctrl} - mock.recorder = &MockUnsafeEventProviderAPIServerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockUnsafeEventProviderAPIServer) EXPECT() *MockUnsafeEventProviderAPIServerMockRecorder { - return m.recorder -} - -// mustEmbedUnimplementedEventProviderAPIServer mocks base method. -func (m *MockUnsafeEventProviderAPIServer) mustEmbedUnimplementedEventProviderAPIServer() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "mustEmbedUnimplementedEventProviderAPIServer") -} - -// mustEmbedUnimplementedEventProviderAPIServer indicates an expected call of mustEmbedUnimplementedEventProviderAPIServer. -func (mr *MockUnsafeEventProviderAPIServerMockRecorder) mustEmbedUnimplementedEventProviderAPIServer() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedEventProviderAPIServer", reflect.TypeOf((*MockUnsafeEventProviderAPIServer)(nil).mustEmbedUnimplementedEventProviderAPIServer)) -} - -// MockEventProviderAPI_StreamBlockEventsServer is a mock of EventProviderAPI_StreamBlockEventsServer interface. -type MockEventProviderAPI_StreamBlockEventsServer struct { - ctrl *gomock.Controller - recorder *MockEventProviderAPI_StreamBlockEventsServerMockRecorder -} - -// MockEventProviderAPI_StreamBlockEventsServerMockRecorder is the mock recorder for MockEventProviderAPI_StreamBlockEventsServer. -type MockEventProviderAPI_StreamBlockEventsServerMockRecorder struct { - mock *MockEventProviderAPI_StreamBlockEventsServer -} - -// NewMockEventProviderAPI_StreamBlockEventsServer creates a new mock instance. -func NewMockEventProviderAPI_StreamBlockEventsServer(ctrl *gomock.Controller) *MockEventProviderAPI_StreamBlockEventsServer { - mock := &MockEventProviderAPI_StreamBlockEventsServer{ctrl: ctrl} - mock.recorder = &MockEventProviderAPI_StreamBlockEventsServerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockEventProviderAPI_StreamBlockEventsServer) EXPECT() *MockEventProviderAPI_StreamBlockEventsServerMockRecorder { - return m.recorder -} - -// Context mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsServer) Context() context.Context { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Context") - ret0, _ := ret[0].(context.Context) - return ret0 -} - -// Context indicates an expected call of Context. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Context() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Context)) -} - -// RecvMsg mocks base method. -func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) RecvMsg(m any) error { - m_2.ctrl.T.Helper() - ret := m_2.ctrl.Call(m_2, "RecvMsg", m) - ret0, _ := ret[0].(error) - return ret0 -} - -// RecvMsg indicates an expected call of RecvMsg. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) RecvMsg(m any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).RecvMsg), m) -} - -// Send mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsServer) Send(arg0 *StreamBlockEventsResponse) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Send", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// Send indicates an expected call of Send. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) Send(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).Send), arg0) -} - -// SendHeader mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsServer) SendHeader(arg0 metadata.MD) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SendHeader", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendHeader indicates an expected call of SendHeader. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendHeader(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendHeader), arg0) -} - -// SendMsg mocks base method. -func (m_2 *MockEventProviderAPI_StreamBlockEventsServer) SendMsg(m any) error { - m_2.ctrl.T.Helper() - ret := m_2.ctrl.Call(m_2, "SendMsg", m) - ret0, _ := ret[0].(error) - return ret0 -} - -// SendMsg indicates an expected call of SendMsg. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SendMsg(m any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SendMsg), m) -} - -// SetHeader mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsServer) SetHeader(arg0 metadata.MD) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SetHeader", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// SetHeader indicates an expected call of SetHeader. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetHeader(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetHeader), arg0) -} - -// SetTrailer mocks base method. -func (m *MockEventProviderAPI_StreamBlockEventsServer) SetTrailer(arg0 metadata.MD) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "SetTrailer", arg0) -} - -// SetTrailer indicates an expected call of SetTrailer. -func (mr *MockEventProviderAPI_StreamBlockEventsServerMockRecorder) SetTrailer(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockEventProviderAPI_StreamBlockEventsServer)(nil).SetTrailer), arg0) -} diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go index 1389f949..16313fa9 100644 --- a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_event_provider_api.proto package event_provider_apipb @@ -146,6 +146,7 @@ type LatestBlockHeight struct { unknownFields protoimpl.UnknownFields Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Time int64 `protobuf:"zigzag64,2,opt,name=time,proto3" json:"time,omitempty"` } func (x *LatestBlockHeight) Reset() { @@ -187,6 +188,13 @@ func (x *LatestBlockHeight) GetHeight() uint64 { return 0 } +func (x *LatestBlockHeight) GetTime() int64 { + if x != nil { + return x.Time + } + return 0 +} + type StreamBlockEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1350,198 +1358,200 @@ var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{ 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x11, 0x4c, 0x61, 0x74, + 0x67, 0x68, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3f, 0x0a, 0x11, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4c, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, - 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, - 0x63, 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, - 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, - 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, - 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x18, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, - 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 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, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, + 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x22, 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0b, - 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, 0x69, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, - 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf9, - 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, - 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, + 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, + 0x81, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, + 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x4a, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, + 0x52, 0x0a, 0x74, 0x78, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, + 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, + 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, + 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, + 0x6e, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, + 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, + 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, + 0x0a, 0x09, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x41, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 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, 0x22, 0x3b, 0x0a, 0x21, 0x47, + 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, + 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, + 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0xdc, 0x05, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, 0x42, - 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x37, - 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x42, - 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, - 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x32, 0xdc, 0x05, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, + 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, - 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, + 0x43, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, + 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, + 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, + 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go index d83f56c5..7d333c20 100644 --- a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_event_provider_api.proto package event_provider_apipb diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go index 9b02dbe9..28783f45 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb diff --git a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go index 721f4ef7..ae02f00f 100644 --- a/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go deleted file mode 100644 index 11748a98..00000000 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go +++ /dev/null @@ -1,681 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_exchange_rpc.proto - -/* -Package injective_exchange_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_exchange_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveExchangeRPC_GetTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetTx(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_GetTx_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetTx(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_PrepareTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.PrepareTx(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_PrepareTx_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.PrepareTx(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareEip712Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.PrepareEip712(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_PrepareEip712_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareEip712Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.PrepareEip712(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_BroadcastTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BroadcastTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.BroadcastTx(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_BroadcastTx_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BroadcastTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.BroadcastTx(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_PrepareCosmosTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareCosmosTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.PrepareCosmosTx(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_PrepareCosmosTx_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PrepareCosmosTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.PrepareCosmosTx(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_BroadcastCosmosTx_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BroadcastCosmosTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.BroadcastCosmosTx(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_BroadcastCosmosTx_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq BroadcastCosmosTxRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.BroadcastCosmosTx(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExchangeRPC_GetFeePayer_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetFeePayerRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetFeePayer(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExchangeRPC_GetFeePayer_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetFeePayerRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetFeePayer(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveExchangeRPCHandlerServer registers the http handlers for service InjectiveExchangeRPC to "mux". -// UnaryRPC :call InjectiveExchangeRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveExchangeRPCHandlerFromEndpoint instead. -func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveExchangeRPCServer) error { - - mux.Handle("POST", pattern_InjectiveExchangeRPC_GetTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_GetTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_GetTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareCosmosTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastCosmosTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_GetFeePayer_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveExchangeRPCHandlerFromEndpoint is same as RegisterInjectiveExchangeRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveExchangeRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveExchangeRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveExchangeRPCHandler registers the http handlers for service InjectiveExchangeRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveExchangeRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveExchangeRPCHandlerClient(ctx, mux, NewInjectiveExchangeRPCClient(conn)) -} - -// RegisterInjectiveExchangeRPCHandlerClient registers the http handlers for service InjectiveExchangeRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveExchangeRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveExchangeRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveExchangeRPCClient" to call the correct interceptors. -func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveExchangeRPCClient) error { - - mux.Handle("POST", pattern_InjectiveExchangeRPC_GetTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_GetTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_GetTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareEip712_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareEip712")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareEip712_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_PrepareCosmosTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_BroadcastCosmosTx_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExchangeRPC_GetFeePayer_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveExchangeRPC_GetTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "GetTx"}, "")) - - pattern_InjectiveExchangeRPC_PrepareTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareTx"}, "")) - - pattern_InjectiveExchangeRPC_PrepareEip712_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareEip712"}, "")) - - pattern_InjectiveExchangeRPC_BroadcastTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "BroadcastTx"}, "")) - - pattern_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "PrepareCosmosTx"}, "")) - - pattern_InjectiveExchangeRPC_BroadcastCosmosTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "BroadcastCosmosTx"}, "")) - - pattern_InjectiveExchangeRPC_GetFeePayer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_exchange_rpc.InjectiveExchangeRPC", "GetFeePayer"}, "")) -) - -var ( - forward_InjectiveExchangeRPC_GetTx_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_PrepareTx_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_PrepareEip712_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_BroadcastTx_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_PrepareCosmosTx_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_BroadcastCosmosTx_0 = runtime.ForwardResponseMessage - - forward_InjectiveExchangeRPC_GetFeePayer_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto deleted file mode 100644 index 5c6a877d..00000000 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto +++ /dev/null @@ -1,249 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveExchangeRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_exchange_rpc; - -option go_package = "/injective_exchange_rpcpb"; - -// InjectiveExchangeRPC defines gRPC API of an Injective Exchange service. -service InjectiveExchangeRPC { - // GetTx gets transaction details by hash. - rpc GetTx (GetTxRequest) returns (GetTxResponse); - // PrepareTx generates a Web3-signable body for a Cosmos transaction - rpc PrepareTx (PrepareTxRequest) returns (PrepareTxResponse); - // prepareEip712 generates EIP712 for an Injective Message - rpc PrepareEip712 (PrepareEip712Request) returns (PrepareEip712Response); - // BroadcastTx broadcasts a signed Web3 transaction - rpc BroadcastTx (BroadcastTxRequest) returns (BroadcastTxResponse); - // PrepareCosmosTx generates a Web3-signable body for a Cosmos transaction - rpc PrepareCosmosTx (PrepareCosmosTxRequest) returns (PrepareCosmosTxResponse); - // BroadcastCosmosTx broadcasts a signed Web3 transaction - rpc BroadcastCosmosTx (BroadcastCosmosTxRequest) returns (BroadcastCosmosTxResponse); - // Return fee payer information's - rpc GetFeePayer (GetFeePayerRequest) returns (GetFeePayerResponse); -} - -message GetTxRequest { - // Transaction hash in hex without 0x prefix (Cosmos-like). - string hash = 1; -} - -message GetTxResponse { - // Hex-encoded Tendermint transaction hash - string tx_hash = 1; - // The block height - sint64 height = 2; - // Tx index in the block - uint32 index = 3; - // Namespace for the resp code - string codespace = 4; - // Response code - uint32 code = 5; - // Result bytes, if any - bytes data = 6; - // The output of the application's logger (raw string). May be -// non-deterministic. - string raw_log = 7; - // Time of the previous block. - string timestamp = 8; -} - -message PrepareTxRequest { - // Specify chainID for the target tx - uint64 chain_id = 1; - // Specify Ethereum address of a signer - string signer_address = 2; - // Deprecated: this field is ignored - uint64 sequence = 3; - // Textual memo information to attach with tx - string memo = 4; - // Block height until which the transaction is valid. - uint64 timeout_height = 5; - // Transaction fee details. - CosmosTxFee fee = 6; - // List of Cosmos proto3-encoded Msgs to include in a single tx - repeated bytes msgs = 7; - // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' - string eip712_wrapper = 8; -} - -message CosmosTxFee { - // Transaction gas price - repeated CosmosCoin price = 1; - // Transaction gas limit - uint64 gas = 2; - // Explicitly require fee delegation when set to true. Or don't care = false. -// Will be replaced by other flag in the next version. - bool delegate_fee = 3; -} - -message CosmosCoin { - // Coin denominator - string denom = 1; - // Coin amount (big int) - string amount = 2; -} - -message PrepareTxResponse { - // EIP712-compatible message suitable for signing with eth_signTypedData_v4 - string data = 1; - // Account tx sequence (nonce) - uint64 sequence = 2; - // Sign mode for the resulting tx - string sign_mode = 3; - // Specify proto-URL of a public key, which defines the signature format - string pub_key_type = 4; - // Fee payer address provided by service - string fee_payer = 5; - // Hex-encoded ethsecp256k1 signature bytes from fee payer - string fee_payer_sig = 6; -} - -message PrepareEip712Request { - // Specify chainID for the target tx - uint64 chain_id = 1; - // Specify Ethereum address of a signer - string signer_address = 2; - // Sequence number of the transaction signer - uint64 sequence = 3; - // Account number of the transaction signer - uint64 account_number = 4; - // Textual memo information to attach with tx - string memo = 5; - // Block height until which the transaction is valid. - uint64 timeout_height = 6; - // Transaction fee details. - CosmosTxFee fee = 7; - // List of Cosmos proto3-encoded Msgs to include in a single tx - repeated bytes msgs = 8; - // The wrapper of the EIP712 message, 'v1'/'v2' or 'V1'/'V2' - string eip712_wrapper = 9; -} - -message PrepareEip712Response { - // EIP712-compatible message suitable for signing with eth_signTypedData_v4 - string data = 1; -} - -message BroadcastTxRequest { - // Specify Web3 chainID (from prepateTx) for the target Tx - uint64 chain_id = 1; - // Amino-encoded Tx JSON data (except Msgs) - bytes tx = 2; - // List of Cosmos proto3-encoded Msgs from tx - repeated bytes msgs = 3; - // Specify ethsecp256k1 pubkey of the signer - CosmosPubKey pub_key = 4; - // Hex-encoded ethsecp256k1 signature bytes - string signature = 5; - // Fee payer address provided by service - string fee_payer = 6; - // Hex-encoded ethsecp256k1 signature bytes from fee payer - string fee_payer_sig = 7; - // Broadcast mode - string mode = 8; -} - -message CosmosPubKey { - // Pubkey type URL - string type = 1; - // Hex-encoded string of the public key - string key = 2; -} - -message BroadcastTxResponse { - // Hex-encoded Tendermint transaction hash - string tx_hash = 1; - // The block height - sint64 height = 2; - // Tx index in the block - uint32 index = 3; - // Namespace for the resp code - string codespace = 4; - // Response code - uint32 code = 5; - // Result bytes, if any - bytes data = 6; - // The output of the application's logger (raw string). May be -// non-deterministic. - string raw_log = 7; - // Time of the previous block. - string timestamp = 8; -} - -message PrepareCosmosTxRequest { - // Specify chainID for the target tx - uint64 chain_id = 1; - // sender address provided - string sender_address = 2; - // Textual memo information to attach with tx - string memo = 3; - // Block height until which the transaction is valid. - uint64 timeout_height = 4; - // Transaction fee details. - CosmosTxFee fee = 5; - // List of Cosmos proto3-encoded Msgs to include in a single tx - repeated bytes msgs = 6; -} - -message PrepareCosmosTxResponse { - // proto encoded tx - bytes tx = 1; - // Sign mode for the resulting tx - string sign_mode = 2; - // Specify proto-URL of a public key, which defines the signature format - string pub_key_type = 3; - // Fee payer address provided by service - string fee_payer = 4; - // Hex-encoded ethsecp256k1 signature bytes from fee payer - string fee_payer_sig = 5; - // ethsecp256k1 feePayer pubkey - CosmosPubKey fee_payer_pub_key = 6; -} - -message BroadcastCosmosTxRequest { - // proto encoded tx - bytes tx = 1; - // Specify ethsecp256k1 sender pubkey - CosmosPubKey pub_key = 2; - // Hex-encoded ethsecp256k1 sender signature bytes - string signature = 3; - // sender address - string sender_address = 4; -} - -message BroadcastCosmosTxResponse { - // Hex-encoded Tendermint transaction hash - string tx_hash = 1; - // The block height - sint64 height = 2; - // Tx index in the block - uint32 index = 3; - // Namespace for the resp code - string codespace = 4; - // Response code - uint32 code = 5; - // Result bytes, if any - bytes data = 6; - // The output of the application's logger (raw string). May be -// non-deterministic. - string raw_log = 7; - // Time of the previous block. - string timestamp = 8; -} - -message GetFeePayerRequest { -} - -message GetFeePayerResponse { - // Fee payer address provided by service - string fee_payer = 1; - // ethsecp256k1 feePayer pubkey - CosmosPubKey fee_payer_pub_key = 2; -} diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index c63dc9a5..7731ea3e 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -2783,6 +2783,212 @@ func (x *GetTxsResponse) GetData() []*TxData { return nil } +type GetTxsV2Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // The starting timestamp in UNIX milliseconds that the txs must be equal or + // older than + StartTime int64 `protobuf:"zigzag64,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The ending timestamp in UNIX milliseconds that the txs must be equal or + // younger than + EndTime int64 `protobuf:"zigzag64,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + PerPage int32 `protobuf:"zigzag32,4,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"` + Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *GetTxsV2Request) Reset() { + *x = GetTxsV2Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTxsV2Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTxsV2Request) ProtoMessage() {} + +func (x *GetTxsV2Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_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 GetTxsV2Request.ProtoReflect.Descriptor instead. +func (*GetTxsV2Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} +} + +func (x *GetTxsV2Request) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *GetTxsV2Request) GetStartTime() int64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *GetTxsV2Request) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *GetTxsV2Request) GetPerPage() int32 { + if x != nil { + return x.PerPage + } + return 0 +} + +func (x *GetTxsV2Request) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type GetTxsV2Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Paging *Cursor `protobuf:"bytes,1,opt,name=paging,proto3" json:"paging,omitempty"` + Data []*TxData `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetTxsV2Response) Reset() { + *x = GetTxsV2Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTxsV2Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTxsV2Response) ProtoMessage() {} + +func (x *GetTxsV2Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_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 GetTxsV2Response.ProtoReflect.Descriptor instead. +func (*GetTxsV2Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} +} + +func (x *GetTxsV2Response) GetPaging() *Cursor { + if x != nil { + return x.Paging + } + return nil +} + +func (x *GetTxsV2Response) GetData() []*TxData { + if x != nil { + return x.Data + } + return nil +} + +// Cursor Pagination defines the structure for required params for handling +// pagination +type Cursor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // can be either block height or index num + From int32 `protobuf:"zigzag32,1,opt,name=from,proto3" json:"from,omitempty"` + // can be either block height or index num + To int32 `protobuf:"zigzag32,2,opt,name=to,proto3" json:"to,omitempty"` + // array of tokens to navigate to the next pages + Next []string `protobuf:"bytes,3,rep,name=next,proto3" json:"next,omitempty"` +} + +func (x *Cursor) Reset() { + *x = Cursor{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cursor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cursor) ProtoMessage() {} + +func (x *Cursor) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_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 Cursor.ProtoReflect.Descriptor instead. +func (*Cursor) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} +} + +func (x *Cursor) GetFrom() int32 { + if x != nil { + return x.From + } + return 0 +} + +func (x *Cursor) GetTo() int32 { + if x != nil { + return x.To + } + return 0 +} + +func (x *Cursor) GetNext() []string { + if x != nil { + return x.Next + } + return nil +} + type GetTxByTxHashRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2794,7 +3000,7 @@ type GetTxByTxHashRequest struct { func (x *GetTxByTxHashRequest) Reset() { *x = GetTxByTxHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2807,7 +3013,7 @@ func (x *GetTxByTxHashRequest) String() string { func (*GetTxByTxHashRequest) ProtoMessage() {} func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2820,7 +3026,7 @@ func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashRequest.ProtoReflect.Descriptor instead. func (*GetTxByTxHashRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} } func (x *GetTxByTxHashRequest) GetHash() string { @@ -2845,7 +3051,7 @@ type GetTxByTxHashResponse struct { func (x *GetTxByTxHashResponse) Reset() { *x = GetTxByTxHashResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2858,7 +3064,7 @@ func (x *GetTxByTxHashResponse) String() string { func (*GetTxByTxHashResponse) ProtoMessage() {} func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2871,7 +3077,7 @@ func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashResponse.ProtoReflect.Descriptor instead. func (*GetTxByTxHashResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} } func (x *GetTxByTxHashResponse) GetS() string { @@ -2911,7 +3117,7 @@ type GetPeggyDepositTxsRequest struct { func (x *GetPeggyDepositTxsRequest) Reset() { *x = GetPeggyDepositTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2924,7 +3130,7 @@ func (x *GetPeggyDepositTxsRequest) String() string { func (*GetPeggyDepositTxsRequest) ProtoMessage() {} func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2937,7 +3143,7 @@ func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} } func (x *GetPeggyDepositTxsRequest) GetSender() string { @@ -2979,7 +3185,7 @@ type GetPeggyDepositTxsResponse struct { func (x *GetPeggyDepositTxsResponse) Reset() { *x = GetPeggyDepositTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2992,7 +3198,7 @@ func (x *GetPeggyDepositTxsResponse) String() string { func (*GetPeggyDepositTxsResponse) ProtoMessage() {} func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3005,7 +3211,7 @@ func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} } func (x *GetPeggyDepositTxsResponse) GetField() []*PeggyDepositTx { @@ -3048,7 +3254,7 @@ type PeggyDepositTx struct { func (x *PeggyDepositTx) Reset() { *x = PeggyDepositTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3061,7 +3267,7 @@ func (x *PeggyDepositTx) String() string { func (*PeggyDepositTx) ProtoMessage() {} func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3074,7 +3280,7 @@ func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyDepositTx.ProtoReflect.Descriptor instead. func (*PeggyDepositTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} } func (x *PeggyDepositTx) GetSender() string { @@ -3177,7 +3383,7 @@ type GetPeggyWithdrawalTxsRequest struct { func (x *GetPeggyWithdrawalTxsRequest) Reset() { *x = GetPeggyWithdrawalTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3190,7 +3396,7 @@ func (x *GetPeggyWithdrawalTxsRequest) String() string { func (*GetPeggyWithdrawalTxsRequest) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3203,7 +3409,7 @@ func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} } func (x *GetPeggyWithdrawalTxsRequest) GetSender() string { @@ -3245,7 +3451,7 @@ type GetPeggyWithdrawalTxsResponse struct { func (x *GetPeggyWithdrawalTxsResponse) Reset() { *x = GetPeggyWithdrawalTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3258,7 +3464,7 @@ func (x *GetPeggyWithdrawalTxsResponse) String() string { func (*GetPeggyWithdrawalTxsResponse) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3271,7 +3477,7 @@ func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} } func (x *GetPeggyWithdrawalTxsResponse) GetField() []*PeggyWithdrawalTx { @@ -3324,7 +3530,7 @@ type PeggyWithdrawalTx struct { func (x *PeggyWithdrawalTx) Reset() { *x = PeggyWithdrawalTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3337,7 +3543,7 @@ func (x *PeggyWithdrawalTx) String() string { func (*PeggyWithdrawalTx) ProtoMessage() {} func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3350,7 +3556,7 @@ func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyWithdrawalTx.ProtoReflect.Descriptor instead. func (*PeggyWithdrawalTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} } func (x *PeggyWithdrawalTx) GetSender() string { @@ -3483,7 +3689,7 @@ type GetIBCTransferTxsRequest struct { func (x *GetIBCTransferTxsRequest) Reset() { *x = GetIBCTransferTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3496,7 +3702,7 @@ func (x *GetIBCTransferTxsRequest) String() string { func (*GetIBCTransferTxsRequest) ProtoMessage() {} func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3509,7 +3715,7 @@ func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsRequest.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} } func (x *GetIBCTransferTxsRequest) GetSender() string { @@ -3579,7 +3785,7 @@ type GetIBCTransferTxsResponse struct { func (x *GetIBCTransferTxsResponse) Reset() { *x = GetIBCTransferTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3592,7 +3798,7 @@ func (x *GetIBCTransferTxsResponse) String() string { func (*GetIBCTransferTxsResponse) ProtoMessage() {} func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3605,7 +3811,7 @@ func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsResponse.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} } func (x *GetIBCTransferTxsResponse) GetField() []*IBCTransferTx { @@ -3657,7 +3863,7 @@ type IBCTransferTx struct { func (x *IBCTransferTx) Reset() { *x = IBCTransferTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3670,7 +3876,7 @@ func (x *IBCTransferTx) String() string { func (*IBCTransferTx) ProtoMessage() {} func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3683,7 +3889,7 @@ func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { // Deprecated: Use IBCTransferTx.ProtoReflect.Descriptor instead. func (*IBCTransferTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} } func (x *IBCTransferTx) GetSender() string { @@ -3811,7 +4017,7 @@ type GetWasmCodesRequest struct { func (x *GetWasmCodesRequest) Reset() { *x = GetWasmCodesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3824,7 +4030,7 @@ func (x *GetWasmCodesRequest) String() string { func (*GetWasmCodesRequest) ProtoMessage() {} func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3837,7 +4043,7 @@ func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} } func (x *GetWasmCodesRequest) GetLimit() int32 { @@ -3873,7 +4079,7 @@ type GetWasmCodesResponse struct { func (x *GetWasmCodesResponse) Reset() { *x = GetWasmCodesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3886,7 +4092,7 @@ func (x *GetWasmCodesResponse) String() string { func (*GetWasmCodesResponse) ProtoMessage() {} func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3899,7 +4105,7 @@ func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} } func (x *GetWasmCodesResponse) GetPaging() *Paging { @@ -3953,7 +4159,7 @@ type WasmCode struct { func (x *WasmCode) Reset() { *x = WasmCode{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3966,7 +4172,7 @@ func (x *WasmCode) String() string { func (*WasmCode) ProtoMessage() {} func (x *WasmCode) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3979,7 +4185,7 @@ func (x *WasmCode) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCode.ProtoReflect.Descriptor instead. func (*WasmCode) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} } func (x *WasmCode) GetCodeId() uint64 { @@ -4087,7 +4293,7 @@ type Checksum struct { func (x *Checksum) Reset() { *x = Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4100,7 +4306,7 @@ func (x *Checksum) String() string { func (*Checksum) ProtoMessage() {} func (x *Checksum) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4113,7 +4319,7 @@ func (x *Checksum) ProtoReflect() protoreflect.Message { // Deprecated: Use Checksum.ProtoReflect.Descriptor instead. func (*Checksum) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} } func (x *Checksum) GetAlgorithm() string { @@ -4144,7 +4350,7 @@ type ContractPermission struct { func (x *ContractPermission) Reset() { *x = ContractPermission{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4157,7 +4363,7 @@ func (x *ContractPermission) String() string { func (*ContractPermission) ProtoMessage() {} func (x *ContractPermission) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4170,7 +4376,7 @@ func (x *ContractPermission) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractPermission.ProtoReflect.Descriptor instead. func (*ContractPermission) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} } func (x *ContractPermission) GetAccessType() int32 { @@ -4199,7 +4405,7 @@ type GetWasmCodeByIDRequest struct { func (x *GetWasmCodeByIDRequest) Reset() { *x = GetWasmCodeByIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4212,7 +4418,7 @@ func (x *GetWasmCodeByIDRequest) String() string { func (*GetWasmCodeByIDRequest) ProtoMessage() {} func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4225,7 +4431,7 @@ func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} } func (x *GetWasmCodeByIDRequest) GetCodeId() int64 { @@ -4271,7 +4477,7 @@ type GetWasmCodeByIDResponse struct { func (x *GetWasmCodeByIDResponse) Reset() { *x = GetWasmCodeByIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4284,7 +4490,7 @@ func (x *GetWasmCodeByIDResponse) String() string { func (*GetWasmCodeByIDResponse) ProtoMessage() {} func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4297,7 +4503,7 @@ func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} } func (x *GetWasmCodeByIDResponse) GetCodeId() uint64 { @@ -4409,7 +4615,7 @@ type GetWasmContractsRequest struct { func (x *GetWasmContractsRequest) Reset() { *x = GetWasmContractsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4422,7 +4628,7 @@ func (x *GetWasmContractsRequest) String() string { func (*GetWasmContractsRequest) ProtoMessage() {} func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4435,7 +4641,7 @@ func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} } func (x *GetWasmContractsRequest) GetLimit() int32 { @@ -4499,7 +4705,7 @@ type GetWasmContractsResponse struct { func (x *GetWasmContractsResponse) Reset() { *x = GetWasmContractsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4512,7 +4718,7 @@ func (x *GetWasmContractsResponse) String() string { func (*GetWasmContractsResponse) ProtoMessage() {} func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4525,7 +4731,7 @@ func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} } func (x *GetWasmContractsResponse) GetPaging() *Paging { @@ -4586,7 +4792,7 @@ type WasmContract struct { func (x *WasmContract) Reset() { *x = WasmContract{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4599,7 +4805,7 @@ func (x *WasmContract) String() string { func (*WasmContract) ProtoMessage() {} func (x *WasmContract) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4612,7 +4818,7 @@ func (x *WasmContract) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmContract.ProtoReflect.Descriptor instead. func (*WasmContract) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} } func (x *WasmContract) GetLabel() string { @@ -4748,7 +4954,7 @@ type ContractFund struct { func (x *ContractFund) Reset() { *x = ContractFund{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4761,7 +4967,7 @@ func (x *ContractFund) String() string { func (*ContractFund) ProtoMessage() {} func (x *ContractFund) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4774,7 +4980,7 @@ func (x *ContractFund) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractFund.ProtoReflect.Descriptor instead. func (*ContractFund) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} } func (x *ContractFund) GetDenom() string { @@ -4804,7 +5010,7 @@ type Cw20Metadata struct { func (x *Cw20Metadata) Reset() { *x = Cw20Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4817,7 +5023,7 @@ func (x *Cw20Metadata) String() string { func (*Cw20Metadata) ProtoMessage() {} func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4830,7 +5036,7 @@ func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20Metadata.ProtoReflect.Descriptor instead. func (*Cw20Metadata) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} } func (x *Cw20Metadata) GetTokenInfo() *Cw20TokenInfo { @@ -4866,7 +5072,7 @@ type Cw20TokenInfo struct { func (x *Cw20TokenInfo) Reset() { *x = Cw20TokenInfo{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4879,7 +5085,7 @@ func (x *Cw20TokenInfo) String() string { func (*Cw20TokenInfo) ProtoMessage() {} func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4892,7 +5098,7 @@ func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20TokenInfo.ProtoReflect.Descriptor instead. func (*Cw20TokenInfo) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} } func (x *Cw20TokenInfo) GetName() string { @@ -4942,7 +5148,7 @@ type Cw20MarketingInfo struct { func (x *Cw20MarketingInfo) Reset() { *x = Cw20MarketingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4955,7 +5161,7 @@ func (x *Cw20MarketingInfo) String() string { func (*Cw20MarketingInfo) ProtoMessage() {} func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4968,7 +5174,7 @@ func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20MarketingInfo.ProtoReflect.Descriptor instead. func (*Cw20MarketingInfo) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} } func (x *Cw20MarketingInfo) GetProject() string { @@ -5011,7 +5217,7 @@ type GetWasmContractByAddressRequest struct { func (x *GetWasmContractByAddressRequest) Reset() { *x = GetWasmContractByAddressRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5024,7 +5230,7 @@ func (x *GetWasmContractByAddressRequest) String() string { func (*GetWasmContractByAddressRequest) ProtoMessage() {} func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5037,7 +5243,7 @@ func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} } func (x *GetWasmContractByAddressRequest) GetContractAddress() string { @@ -5090,7 +5296,7 @@ type GetWasmContractByAddressResponse struct { func (x *GetWasmContractByAddressResponse) Reset() { *x = GetWasmContractByAddressResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5103,7 +5309,7 @@ func (x *GetWasmContractByAddressResponse) String() string { func (*GetWasmContractByAddressResponse) ProtoMessage() {} func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5116,7 +5322,7 @@ func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} } func (x *GetWasmContractByAddressResponse) GetLabel() string { @@ -5251,7 +5457,7 @@ type GetCw20BalanceRequest struct { func (x *GetCw20BalanceRequest) Reset() { *x = GetCw20BalanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5264,7 +5470,7 @@ func (x *GetCw20BalanceRequest) String() string { func (*GetCw20BalanceRequest) ProtoMessage() {} func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5277,7 +5483,7 @@ func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceRequest.ProtoReflect.Descriptor instead. func (*GetCw20BalanceRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} } func (x *GetCw20BalanceRequest) GetAddress() string { @@ -5305,7 +5511,7 @@ type GetCw20BalanceResponse struct { func (x *GetCw20BalanceResponse) Reset() { *x = GetCw20BalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5318,7 +5524,7 @@ func (x *GetCw20BalanceResponse) String() string { func (*GetCw20BalanceResponse) ProtoMessage() {} func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5331,7 +5537,7 @@ func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceResponse.ProtoReflect.Descriptor instead. func (*GetCw20BalanceResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} } func (x *GetCw20BalanceResponse) GetField() []*WasmCw20Balance { @@ -5360,7 +5566,7 @@ type WasmCw20Balance struct { func (x *WasmCw20Balance) Reset() { *x = WasmCw20Balance{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5373,7 +5579,7 @@ func (x *WasmCw20Balance) String() string { func (*WasmCw20Balance) ProtoMessage() {} func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5386,7 +5592,7 @@ func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCw20Balance.ProtoReflect.Descriptor instead. func (*WasmCw20Balance) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} } func (x *WasmCw20Balance) GetContractAddress() string { @@ -5436,7 +5642,7 @@ type RelayersRequest struct { func (x *RelayersRequest) Reset() { *x = RelayersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5449,7 +5655,7 @@ func (x *RelayersRequest) String() string { func (*RelayersRequest) ProtoMessage() {} func (x *RelayersRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5462,7 +5668,7 @@ func (x *RelayersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersRequest.ProtoReflect.Descriptor instead. func (*RelayersRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} } func (x *RelayersRequest) GetMarketIDs() []string { @@ -5483,7 +5689,7 @@ type RelayersResponse struct { func (x *RelayersResponse) Reset() { *x = RelayersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5496,7 +5702,7 @@ func (x *RelayersResponse) String() string { func (*RelayersResponse) ProtoMessage() {} func (x *RelayersResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5509,7 +5715,7 @@ func (x *RelayersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersResponse.ProtoReflect.Descriptor instead. func (*RelayersResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} } func (x *RelayersResponse) GetField() []*RelayerMarkets { @@ -5533,7 +5739,7 @@ type RelayerMarkets struct { func (x *RelayerMarkets) Reset() { *x = RelayerMarkets{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5546,7 +5752,7 @@ func (x *RelayerMarkets) String() string { func (*RelayerMarkets) ProtoMessage() {} func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5559,7 +5765,7 @@ func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayerMarkets.ProtoReflect.Descriptor instead. func (*RelayerMarkets) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} } func (x *RelayerMarkets) GetMarketId() string { @@ -5590,7 +5796,7 @@ type Relayer struct { func (x *Relayer) Reset() { *x = Relayer{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5603,7 +5809,7 @@ func (x *Relayer) String() string { func (*Relayer) ProtoMessage() {} func (x *Relayer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5616,7 +5822,7 @@ func (x *Relayer) ProtoReflect() protoreflect.Message { // Deprecated: Use Relayer.ProtoReflect.Descriptor instead. func (*Relayer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} } func (x *Relayer) GetName() string { @@ -5662,7 +5868,7 @@ type GetBankTransfersRequest struct { func (x *GetBankTransfersRequest) Reset() { *x = GetBankTransfersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5675,7 +5881,7 @@ func (x *GetBankTransfersRequest) String() string { func (*GetBankTransfersRequest) ProtoMessage() {} func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5688,7 +5894,7 @@ func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersRequest.ProtoReflect.Descriptor instead. func (*GetBankTransfersRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} } func (x *GetBankTransfersRequest) GetSenders() []string { @@ -5773,7 +5979,7 @@ type GetBankTransfersResponse struct { func (x *GetBankTransfersResponse) Reset() { *x = GetBankTransfersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5786,7 +5992,7 @@ func (x *GetBankTransfersResponse) String() string { func (*GetBankTransfersResponse) ProtoMessage() {} func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5799,7 +6005,7 @@ func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersResponse.ProtoReflect.Descriptor instead. func (*GetBankTransfersResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} } func (x *GetBankTransfersResponse) GetPaging() *Paging { @@ -5833,7 +6039,7 @@ type BankTransfer struct { func (x *BankTransfer) Reset() { *x = BankTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5846,7 +6052,7 @@ func (x *BankTransfer) String() string { func (*BankTransfer) ProtoMessage() {} func (x *BankTransfer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5859,7 +6065,7 @@ func (x *BankTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use BankTransfer.ProtoReflect.Descriptor instead. func (*BankTransfer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} } func (x *BankTransfer) GetSender() string { @@ -5910,7 +6116,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5923,7 +6129,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5936,7 +6142,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{72} } func (x *Coin) GetDenom() string { @@ -5962,7 +6168,7 @@ type StreamTxsRequest struct { func (x *StreamTxsRequest) Reset() { *x = StreamTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5975,7 +6181,7 @@ func (x *StreamTxsRequest) String() string { func (*StreamTxsRequest) ProtoMessage() {} func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5988,7 +6194,7 @@ func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsRequest.ProtoReflect.Descriptor instead. func (*StreamTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{73} } type StreamTxsResponse struct { @@ -6013,7 +6219,7 @@ type StreamTxsResponse struct { func (x *StreamTxsResponse) Reset() { *x = StreamTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6026,7 +6232,7 @@ func (x *StreamTxsResponse) String() string { func (*StreamTxsResponse) ProtoMessage() {} func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6039,7 +6245,7 @@ func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsResponse.ProtoReflect.Descriptor instead. func (*StreamTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} } func (x *StreamTxsResponse) GetId() string { @@ -6121,7 +6327,7 @@ type StreamBlocksRequest struct { func (x *StreamBlocksRequest) Reset() { *x = StreamBlocksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6134,7 +6340,7 @@ func (x *StreamBlocksRequest) String() string { func (*StreamBlocksRequest) ProtoMessage() {} func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6147,7 +6353,7 @@ func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksRequest.ProtoReflect.Descriptor instead. func (*StreamBlocksRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{72} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} } type StreamBlocksResponse struct { @@ -6169,7 +6375,7 @@ type StreamBlocksResponse struct { func (x *StreamBlocksResponse) Reset() { *x = StreamBlocksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6182,7 +6388,7 @@ func (x *StreamBlocksResponse) String() string { func (*StreamBlocksResponse) ProtoMessage() {} func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6195,7 +6401,7 @@ func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksResponse.ProtoReflect.Descriptor instead. func (*StreamBlocksResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{73} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{76} } func (x *StreamBlocksResponse) GetHeight() uint64 { @@ -6270,7 +6476,7 @@ type GetStatsRequest struct { func (x *GetStatsRequest) Reset() { *x = GetStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6283,7 +6489,7 @@ func (x *GetStatsRequest) String() string { func (*GetStatsRequest) ProtoMessage() {} func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6296,7 +6502,7 @@ func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead. func (*GetStatsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{77} } type GetStatsResponse struct { @@ -6327,7 +6533,7 @@ type GetStatsResponse struct { func (x *GetStatsResponse) Reset() { *x = GetStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6340,7 +6546,7 @@ func (x *GetStatsResponse) String() string { func (*GetStatsResponse) ProtoMessage() {} func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6353,7 +6559,7 @@ func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead. func (*GetStatsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{78} } func (x *GetStatsResponse) GetAddresses() uint64 { @@ -6831,343 +7037,289 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 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, 0x77, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, - 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, - 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, - 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x61, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x40, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x02, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, + 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 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, 0x77, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, + 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, + 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, + 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, + 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, + 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, + 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, + 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, - 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, - 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, - 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, - 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, - 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, - 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, - 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, - 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, + 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, + 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, + 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, + 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, + 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, + 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, + 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, - 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, - 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, - 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, - 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, - 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, - 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, - 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, - 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, - 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, - 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, - 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, - 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, - 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, - 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, - 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, @@ -7205,319 +7357,400 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, - 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, - 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, - 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, - 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, - 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, - 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, - 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, - 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, - 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, - 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, - 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, - 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, - 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, - 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x6a, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x6a, - 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, - 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x50, - 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, 0x31, 0x30, - 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x78, 0x73, 0x50, 0x73, - 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, - 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, - 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, 0x32, 0xa5, 0x14, 0x0a, 0x14, - 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, + 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, + 0x0a, 0x0d, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, + 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, + 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, + 0x20, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, + 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, + 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, - 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, + 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, + 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, + 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, + 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, + 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, + 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, + 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, + 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, + 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, + 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, + 0x78, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, + 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x6a, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x69, 0x6e, 0x6a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, + 0x78, 0x73, 0x5f, 0x70, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x78, 0x73, 0x50, 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, + 0x5f, 0x70, 0x73, 0x31, 0x30, 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x74, 0x78, 0x73, 0x50, 0x73, 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, + 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x74, 0x78, 0x73, 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, + 0x32, 0x84, 0x15, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, + 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, - 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, - 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, + 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, + 0x78, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, - 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, - 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x54, 0x78, 0x73, 0x12, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, - 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x54, 0x78, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, - 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, + 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, - 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, - 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, - 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, - 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, + 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x54, 0x78, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7532,7 +7765,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 77) +var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 80) var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetAccountTxsRequest)(nil), // 0: injective_explorer_rpc.GetAccountTxsRequest (*GetAccountTxsResponse)(nil), // 1: injective_explorer_rpc.GetAccountTxsResponse @@ -7566,51 +7799,54 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetValidatorUptimeResponse)(nil), // 29: injective_explorer_rpc.GetValidatorUptimeResponse (*GetTxsRequest)(nil), // 30: injective_explorer_rpc.GetTxsRequest (*GetTxsResponse)(nil), // 31: injective_explorer_rpc.GetTxsResponse - (*GetTxByTxHashRequest)(nil), // 32: injective_explorer_rpc.GetTxByTxHashRequest - (*GetTxByTxHashResponse)(nil), // 33: injective_explorer_rpc.GetTxByTxHashResponse - (*GetPeggyDepositTxsRequest)(nil), // 34: injective_explorer_rpc.GetPeggyDepositTxsRequest - (*GetPeggyDepositTxsResponse)(nil), // 35: injective_explorer_rpc.GetPeggyDepositTxsResponse - (*PeggyDepositTx)(nil), // 36: injective_explorer_rpc.PeggyDepositTx - (*GetPeggyWithdrawalTxsRequest)(nil), // 37: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - (*GetPeggyWithdrawalTxsResponse)(nil), // 38: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - (*PeggyWithdrawalTx)(nil), // 39: injective_explorer_rpc.PeggyWithdrawalTx - (*GetIBCTransferTxsRequest)(nil), // 40: injective_explorer_rpc.GetIBCTransferTxsRequest - (*GetIBCTransferTxsResponse)(nil), // 41: injective_explorer_rpc.GetIBCTransferTxsResponse - (*IBCTransferTx)(nil), // 42: injective_explorer_rpc.IBCTransferTx - (*GetWasmCodesRequest)(nil), // 43: injective_explorer_rpc.GetWasmCodesRequest - (*GetWasmCodesResponse)(nil), // 44: injective_explorer_rpc.GetWasmCodesResponse - (*WasmCode)(nil), // 45: injective_explorer_rpc.WasmCode - (*Checksum)(nil), // 46: injective_explorer_rpc.Checksum - (*ContractPermission)(nil), // 47: injective_explorer_rpc.ContractPermission - (*GetWasmCodeByIDRequest)(nil), // 48: injective_explorer_rpc.GetWasmCodeByIDRequest - (*GetWasmCodeByIDResponse)(nil), // 49: injective_explorer_rpc.GetWasmCodeByIDResponse - (*GetWasmContractsRequest)(nil), // 50: injective_explorer_rpc.GetWasmContractsRequest - (*GetWasmContractsResponse)(nil), // 51: injective_explorer_rpc.GetWasmContractsResponse - (*WasmContract)(nil), // 52: injective_explorer_rpc.WasmContract - (*ContractFund)(nil), // 53: injective_explorer_rpc.ContractFund - (*Cw20Metadata)(nil), // 54: injective_explorer_rpc.Cw20Metadata - (*Cw20TokenInfo)(nil), // 55: injective_explorer_rpc.Cw20TokenInfo - (*Cw20MarketingInfo)(nil), // 56: injective_explorer_rpc.Cw20MarketingInfo - (*GetWasmContractByAddressRequest)(nil), // 57: injective_explorer_rpc.GetWasmContractByAddressRequest - (*GetWasmContractByAddressResponse)(nil), // 58: injective_explorer_rpc.GetWasmContractByAddressResponse - (*GetCw20BalanceRequest)(nil), // 59: injective_explorer_rpc.GetCw20BalanceRequest - (*GetCw20BalanceResponse)(nil), // 60: injective_explorer_rpc.GetCw20BalanceResponse - (*WasmCw20Balance)(nil), // 61: injective_explorer_rpc.WasmCw20Balance - (*RelayersRequest)(nil), // 62: injective_explorer_rpc.RelayersRequest - (*RelayersResponse)(nil), // 63: injective_explorer_rpc.RelayersResponse - (*RelayerMarkets)(nil), // 64: injective_explorer_rpc.RelayerMarkets - (*Relayer)(nil), // 65: injective_explorer_rpc.Relayer - (*GetBankTransfersRequest)(nil), // 66: injective_explorer_rpc.GetBankTransfersRequest - (*GetBankTransfersResponse)(nil), // 67: injective_explorer_rpc.GetBankTransfersResponse - (*BankTransfer)(nil), // 68: injective_explorer_rpc.BankTransfer - (*Coin)(nil), // 69: injective_explorer_rpc.Coin - (*StreamTxsRequest)(nil), // 70: injective_explorer_rpc.StreamTxsRequest - (*StreamTxsResponse)(nil), // 71: injective_explorer_rpc.StreamTxsResponse - (*StreamBlocksRequest)(nil), // 72: injective_explorer_rpc.StreamBlocksRequest - (*StreamBlocksResponse)(nil), // 73: injective_explorer_rpc.StreamBlocksResponse - (*GetStatsRequest)(nil), // 74: injective_explorer_rpc.GetStatsRequest - (*GetStatsResponse)(nil), // 75: injective_explorer_rpc.GetStatsResponse - nil, // 76: injective_explorer_rpc.Event.AttributesEntry + (*GetTxsV2Request)(nil), // 32: injective_explorer_rpc.GetTxsV2Request + (*GetTxsV2Response)(nil), // 33: injective_explorer_rpc.GetTxsV2Response + (*Cursor)(nil), // 34: injective_explorer_rpc.Cursor + (*GetTxByTxHashRequest)(nil), // 35: injective_explorer_rpc.GetTxByTxHashRequest + (*GetTxByTxHashResponse)(nil), // 36: injective_explorer_rpc.GetTxByTxHashResponse + (*GetPeggyDepositTxsRequest)(nil), // 37: injective_explorer_rpc.GetPeggyDepositTxsRequest + (*GetPeggyDepositTxsResponse)(nil), // 38: injective_explorer_rpc.GetPeggyDepositTxsResponse + (*PeggyDepositTx)(nil), // 39: injective_explorer_rpc.PeggyDepositTx + (*GetPeggyWithdrawalTxsRequest)(nil), // 40: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + (*GetPeggyWithdrawalTxsResponse)(nil), // 41: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + (*PeggyWithdrawalTx)(nil), // 42: injective_explorer_rpc.PeggyWithdrawalTx + (*GetIBCTransferTxsRequest)(nil), // 43: injective_explorer_rpc.GetIBCTransferTxsRequest + (*GetIBCTransferTxsResponse)(nil), // 44: injective_explorer_rpc.GetIBCTransferTxsResponse + (*IBCTransferTx)(nil), // 45: injective_explorer_rpc.IBCTransferTx + (*GetWasmCodesRequest)(nil), // 46: injective_explorer_rpc.GetWasmCodesRequest + (*GetWasmCodesResponse)(nil), // 47: injective_explorer_rpc.GetWasmCodesResponse + (*WasmCode)(nil), // 48: injective_explorer_rpc.WasmCode + (*Checksum)(nil), // 49: injective_explorer_rpc.Checksum + (*ContractPermission)(nil), // 50: injective_explorer_rpc.ContractPermission + (*GetWasmCodeByIDRequest)(nil), // 51: injective_explorer_rpc.GetWasmCodeByIDRequest + (*GetWasmCodeByIDResponse)(nil), // 52: injective_explorer_rpc.GetWasmCodeByIDResponse + (*GetWasmContractsRequest)(nil), // 53: injective_explorer_rpc.GetWasmContractsRequest + (*GetWasmContractsResponse)(nil), // 54: injective_explorer_rpc.GetWasmContractsResponse + (*WasmContract)(nil), // 55: injective_explorer_rpc.WasmContract + (*ContractFund)(nil), // 56: injective_explorer_rpc.ContractFund + (*Cw20Metadata)(nil), // 57: injective_explorer_rpc.Cw20Metadata + (*Cw20TokenInfo)(nil), // 58: injective_explorer_rpc.Cw20TokenInfo + (*Cw20MarketingInfo)(nil), // 59: injective_explorer_rpc.Cw20MarketingInfo + (*GetWasmContractByAddressRequest)(nil), // 60: injective_explorer_rpc.GetWasmContractByAddressRequest + (*GetWasmContractByAddressResponse)(nil), // 61: injective_explorer_rpc.GetWasmContractByAddressResponse + (*GetCw20BalanceRequest)(nil), // 62: injective_explorer_rpc.GetCw20BalanceRequest + (*GetCw20BalanceResponse)(nil), // 63: injective_explorer_rpc.GetCw20BalanceResponse + (*WasmCw20Balance)(nil), // 64: injective_explorer_rpc.WasmCw20Balance + (*RelayersRequest)(nil), // 65: injective_explorer_rpc.RelayersRequest + (*RelayersResponse)(nil), // 66: injective_explorer_rpc.RelayersResponse + (*RelayerMarkets)(nil), // 67: injective_explorer_rpc.RelayerMarkets + (*Relayer)(nil), // 68: injective_explorer_rpc.Relayer + (*GetBankTransfersRequest)(nil), // 69: injective_explorer_rpc.GetBankTransfersRequest + (*GetBankTransfersResponse)(nil), // 70: injective_explorer_rpc.GetBankTransfersResponse + (*BankTransfer)(nil), // 71: injective_explorer_rpc.BankTransfer + (*Coin)(nil), // 72: injective_explorer_rpc.Coin + (*StreamTxsRequest)(nil), // 73: injective_explorer_rpc.StreamTxsRequest + (*StreamTxsResponse)(nil), // 74: injective_explorer_rpc.StreamTxsResponse + (*StreamBlocksRequest)(nil), // 75: injective_explorer_rpc.StreamBlocksRequest + (*StreamBlocksResponse)(nil), // 76: injective_explorer_rpc.StreamBlocksResponse + (*GetStatsRequest)(nil), // 77: injective_explorer_rpc.GetStatsRequest + (*GetStatsResponse)(nil), // 78: injective_explorer_rpc.GetStatsResponse + nil, // 79: injective_explorer_rpc.Event.AttributesEntry } var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 2, // 0: injective_explorer_rpc.GetAccountTxsResponse.paging:type_name -> injective_explorer_rpc.Paging @@ -7619,7 +7855,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 6, // 3: injective_explorer_rpc.TxDetailData.events:type_name -> injective_explorer_rpc.Event 7, // 4: injective_explorer_rpc.TxDetailData.signatures:type_name -> injective_explorer_rpc.Signature 5, // 5: injective_explorer_rpc.GasFee.amount:type_name -> injective_explorer_rpc.CosmosCoin - 76, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry + 79, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry 2, // 7: injective_explorer_rpc.GetContractTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 8: injective_explorer_rpc.GetContractTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData 3, // 9: injective_explorer_rpc.GetContractTxsV2Response.data:type_name -> injective_explorer_rpc.TxDetailData @@ -7637,83 +7873,87 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 24, // 21: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime 2, // 22: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 19, // 23: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData - 3, // 24: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 36, // 25: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx - 39, // 26: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx - 42, // 27: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx - 2, // 28: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging - 45, // 29: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode - 46, // 30: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 31: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission - 46, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum - 47, // 33: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission - 2, // 34: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging - 52, // 35: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract - 53, // 36: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 37: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 55, // 38: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo - 56, // 39: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo - 53, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund - 54, // 41: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 61, // 42: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance - 54, // 43: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 64, // 44: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets - 65, // 45: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer - 2, // 46: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging - 68, // 47: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer - 69, // 48: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin - 15, // 49: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC - 0, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest - 8, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest - 10, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request - 12, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest - 16, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest - 20, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest - 26, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest - 28, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest - 30, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest - 32, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest - 34, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest - 37, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - 40, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest - 43, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest - 48, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest - 50, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest - 57, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest - 59, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest - 62, // 68: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest - 66, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest - 70, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest - 72, // 71: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest - 74, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest - 1, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse - 9, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse - 11, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response - 13, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse - 17, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse - 21, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse - 27, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse - 29, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse - 31, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse - 33, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse - 35, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse - 38, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - 41, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse - 44, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse - 49, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse - 51, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse - 58, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse - 60, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse - 63, // 91: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse - 67, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse - 71, // 93: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse - 73, // 94: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse - 75, // 95: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse - 73, // [73:96] is the sub-list for method output_type - 50, // [50:73] is the sub-list for method input_type - 50, // [50:50] is the sub-list for extension type_name - 50, // [50:50] is the sub-list for extension extendee - 0, // [0:50] is the sub-list for field type_name + 34, // 24: injective_explorer_rpc.GetTxsV2Response.paging:type_name -> injective_explorer_rpc.Cursor + 19, // 25: injective_explorer_rpc.GetTxsV2Response.data:type_name -> injective_explorer_rpc.TxData + 3, // 26: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData + 39, // 27: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx + 42, // 28: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx + 45, // 29: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx + 2, // 30: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging + 48, // 31: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode + 49, // 32: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum + 50, // 33: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission + 49, // 34: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum + 50, // 35: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission + 2, // 36: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging + 55, // 37: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract + 56, // 38: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund + 57, // 39: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 58, // 40: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo + 59, // 41: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo + 56, // 42: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund + 57, // 43: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 64, // 44: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance + 57, // 45: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 67, // 46: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets + 68, // 47: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer + 2, // 48: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging + 71, // 49: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer + 72, // 50: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin + 15, // 51: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC + 0, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest + 8, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest + 10, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request + 12, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest + 16, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest + 20, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest + 26, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest + 28, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest + 30, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest + 32, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetTxsV2:input_type -> injective_explorer_rpc.GetTxsV2Request + 35, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest + 37, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest + 40, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + 43, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest + 46, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest + 51, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest + 53, // 68: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest + 60, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest + 62, // 70: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest + 65, // 71: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest + 69, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest + 73, // 73: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest + 75, // 74: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest + 77, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest + 1, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse + 9, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse + 11, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response + 13, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse + 17, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse + 21, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse + 27, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse + 29, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse + 31, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse + 33, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetTxsV2:output_type -> injective_explorer_rpc.GetTxsV2Response + 36, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse + 38, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse + 41, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + 44, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse + 47, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse + 52, // 91: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse + 54, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse + 61, // 93: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse + 63, // 94: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse + 66, // 95: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse + 70, // 96: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse + 74, // 97: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse + 76, // 98: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse + 78, // 99: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse + 76, // [76:100] is the sub-list for method output_type + 52, // [52:76] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_explorer_rpc_proto_init() } @@ -8107,7 +8347,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTxByTxHashRequest); i { + switch v := v.(*GetTxsV2Request); i { case 0: return &v.state case 1: @@ -8119,7 +8359,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTxByTxHashResponse); i { + switch v := v.(*GetTxsV2Response); i { case 0: return &v.state case 1: @@ -8131,7 +8371,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPeggyDepositTxsRequest); i { + switch v := v.(*Cursor); i { case 0: return &v.state case 1: @@ -8143,7 +8383,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPeggyDepositTxsResponse); i { + switch v := v.(*GetTxByTxHashRequest); i { case 0: return &v.state case 1: @@ -8155,7 +8395,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeggyDepositTx); i { + switch v := v.(*GetTxByTxHashResponse); i { case 0: return &v.state case 1: @@ -8167,7 +8407,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPeggyWithdrawalTxsRequest); i { + switch v := v.(*GetPeggyDepositTxsRequest); i { case 0: return &v.state case 1: @@ -8179,7 +8419,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPeggyWithdrawalTxsResponse); i { + switch v := v.(*GetPeggyDepositTxsResponse); i { case 0: return &v.state case 1: @@ -8191,7 +8431,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeggyWithdrawalTx); i { + switch v := v.(*PeggyDepositTx); i { case 0: return &v.state case 1: @@ -8203,7 +8443,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetIBCTransferTxsRequest); i { + switch v := v.(*GetPeggyWithdrawalTxsRequest); i { case 0: return &v.state case 1: @@ -8215,7 +8455,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetIBCTransferTxsResponse); i { + switch v := v.(*GetPeggyWithdrawalTxsResponse); i { case 0: return &v.state case 1: @@ -8227,7 +8467,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IBCTransferTx); i { + switch v := v.(*PeggyWithdrawalTx); i { case 0: return &v.state case 1: @@ -8239,7 +8479,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmCodesRequest); i { + switch v := v.(*GetIBCTransferTxsRequest); i { case 0: return &v.state case 1: @@ -8251,7 +8491,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmCodesResponse); i { + switch v := v.(*GetIBCTransferTxsResponse); i { case 0: return &v.state case 1: @@ -8263,7 +8503,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WasmCode); i { + switch v := v.(*IBCTransferTx); i { case 0: return &v.state case 1: @@ -8275,7 +8515,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Checksum); i { + switch v := v.(*GetWasmCodesRequest); i { case 0: return &v.state case 1: @@ -8287,7 +8527,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractPermission); i { + switch v := v.(*GetWasmCodesResponse); i { case 0: return &v.state case 1: @@ -8299,7 +8539,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmCodeByIDRequest); i { + switch v := v.(*WasmCode); i { case 0: return &v.state case 1: @@ -8311,7 +8551,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmCodeByIDResponse); i { + switch v := v.(*Checksum); i { case 0: return &v.state case 1: @@ -8323,7 +8563,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmContractsRequest); i { + switch v := v.(*ContractPermission); i { case 0: return &v.state case 1: @@ -8335,7 +8575,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmContractsResponse); i { + switch v := v.(*GetWasmCodeByIDRequest); i { case 0: return &v.state case 1: @@ -8347,7 +8587,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WasmContract); i { + switch v := v.(*GetWasmCodeByIDResponse); i { case 0: return &v.state case 1: @@ -8359,7 +8599,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContractFund); i { + switch v := v.(*GetWasmContractsRequest); i { case 0: return &v.state case 1: @@ -8371,7 +8611,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cw20Metadata); i { + switch v := v.(*GetWasmContractsResponse); i { case 0: return &v.state case 1: @@ -8383,7 +8623,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cw20TokenInfo); i { + switch v := v.(*WasmContract); i { case 0: return &v.state case 1: @@ -8395,7 +8635,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cw20MarketingInfo); i { + switch v := v.(*ContractFund); i { case 0: return &v.state case 1: @@ -8407,7 +8647,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmContractByAddressRequest); i { + switch v := v.(*Cw20Metadata); i { case 0: return &v.state case 1: @@ -8419,7 +8659,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetWasmContractByAddressResponse); i { + switch v := v.(*Cw20TokenInfo); i { case 0: return &v.state case 1: @@ -8431,7 +8671,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCw20BalanceRequest); i { + switch v := v.(*Cw20MarketingInfo); i { case 0: return &v.state case 1: @@ -8443,7 +8683,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCw20BalanceResponse); i { + switch v := v.(*GetWasmContractByAddressRequest); i { case 0: return &v.state case 1: @@ -8455,7 +8695,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WasmCw20Balance); i { + switch v := v.(*GetWasmContractByAddressResponse); i { case 0: return &v.state case 1: @@ -8467,7 +8707,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelayersRequest); i { + switch v := v.(*GetCw20BalanceRequest); i { case 0: return &v.state case 1: @@ -8479,7 +8719,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelayersResponse); i { + switch v := v.(*GetCw20BalanceResponse); i { case 0: return &v.state case 1: @@ -8491,7 +8731,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RelayerMarkets); i { + switch v := v.(*WasmCw20Balance); i { case 0: return &v.state case 1: @@ -8503,7 +8743,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Relayer); i { + switch v := v.(*RelayersRequest); i { case 0: return &v.state case 1: @@ -8515,7 +8755,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBankTransfersRequest); i { + switch v := v.(*RelayersResponse); i { case 0: return &v.state case 1: @@ -8527,7 +8767,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBankTransfersResponse); i { + switch v := v.(*RelayerMarkets); i { case 0: return &v.state case 1: @@ -8539,7 +8779,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BankTransfer); i { + switch v := v.(*Relayer); i { case 0: return &v.state case 1: @@ -8551,7 +8791,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Coin); i { + switch v := v.(*GetBankTransfersRequest); i { case 0: return &v.state case 1: @@ -8563,7 +8803,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTxsRequest); i { + switch v := v.(*GetBankTransfersResponse); i { case 0: return &v.state case 1: @@ -8575,7 +8815,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamTxsResponse); i { + switch v := v.(*BankTransfer); i { case 0: return &v.state case 1: @@ -8587,7 +8827,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamBlocksRequest); i { + switch v := v.(*Coin); i { case 0: return &v.state case 1: @@ -8599,7 +8839,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamBlocksResponse); i { + switch v := v.(*StreamTxsRequest); i { case 0: return &v.state case 1: @@ -8611,7 +8851,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatsRequest); i { + switch v := v.(*StreamTxsResponse); i { case 0: return &v.state case 1: @@ -8623,6 +8863,42 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlocksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamBlocksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatsResponse); i { case 0: return &v.state @@ -8641,7 +8917,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 77, + NumMessages: 80, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go index 933865b7..ef090dc0 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -40,6 +40,8 @@ type InjectiveExplorerRPCClient interface { GetValidatorUptime(ctx context.Context, in *GetValidatorUptimeRequest, opts ...grpc.CallOption) (*GetValidatorUptimeResponse, error) // GetTxs returns transactions based upon the request params GetTxs(ctx context.Context, in *GetTxsRequest, opts ...grpc.CallOption) (*GetTxsResponse, error) + // GetTxs returns transactions based upon the request params + GetTxsV2(ctx context.Context, in *GetTxsV2Request, opts ...grpc.CallOption) (*GetTxsV2Response, error) // GetTxByTxHash returns certain transaction information by its tx hash. GetTxByTxHash(ctx context.Context, in *GetTxByTxHashRequest, opts ...grpc.CallOption) (*GetTxByTxHashResponse, error) // GetPeggyDepositTxs returns the peggy deposit transactions based upon the @@ -163,6 +165,15 @@ func (c *injectiveExplorerRPCClient) GetTxs(ctx context.Context, in *GetTxsReque return out, nil } +func (c *injectiveExplorerRPCClient) GetTxsV2(ctx context.Context, in *GetTxsV2Request, opts ...grpc.CallOption) (*GetTxsV2Response, error) { + out := new(GetTxsV2Response) + err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveExplorerRPCClient) GetTxByTxHash(ctx context.Context, in *GetTxByTxHashRequest, opts ...grpc.CallOption) (*GetTxByTxHashResponse, error) { out := new(GetTxByTxHashResponse) err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", in, out, opts...) @@ -357,6 +368,8 @@ type InjectiveExplorerRPCServer interface { GetValidatorUptime(context.Context, *GetValidatorUptimeRequest) (*GetValidatorUptimeResponse, error) // GetTxs returns transactions based upon the request params GetTxs(context.Context, *GetTxsRequest) (*GetTxsResponse, error) + // GetTxs returns transactions based upon the request params + GetTxsV2(context.Context, *GetTxsV2Request) (*GetTxsV2Response, error) // GetTxByTxHash returns certain transaction information by its tx hash. GetTxByTxHash(context.Context, *GetTxByTxHashRequest) (*GetTxByTxHashResponse, error) // GetPeggyDepositTxs returns the peggy deposit transactions based upon the @@ -423,6 +436,9 @@ func (UnimplementedInjectiveExplorerRPCServer) GetValidatorUptime(context.Contex func (UnimplementedInjectiveExplorerRPCServer) GetTxs(context.Context, *GetTxsRequest) (*GetTxsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTxs not implemented") } +func (UnimplementedInjectiveExplorerRPCServer) GetTxsV2(context.Context, *GetTxsV2Request) (*GetTxsV2Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTxsV2 not implemented") +} func (UnimplementedInjectiveExplorerRPCServer) GetTxByTxHash(context.Context, *GetTxByTxHashRequest) (*GetTxByTxHashResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTxByTxHash not implemented") } @@ -640,6 +656,24 @@ func _InjectiveExplorerRPC_GetTxs_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _InjectiveExplorerRPC_GetTxsV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTxsV2Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExplorerRPCServer).GetTxsV2(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExplorerRPCServer).GetTxsV2(ctx, req.(*GetTxsV2Request)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveExplorerRPC_GetTxByTxHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTxByTxHashRequest) if err := dec(in); err != nil { @@ -941,6 +975,10 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTxs", Handler: _InjectiveExplorerRPC_GetTxs_Handler, }, + { + MethodName: "GetTxsV2", + Handler: _InjectiveExplorerRPC_GetTxsV2_Handler, + }, { MethodName: "GetTxByTxHash", Handler: _InjectiveExplorerRPC_GetTxByTxHash_Handler, diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go deleted file mode 100644 index 86e23918..00000000 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go +++ /dev/null @@ -1,1987 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_explorer_rpc.proto - -/* -Package injective_explorer_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_explorer_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveExplorerRPC_GetAccountTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetAccountTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetAccountTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetAccountTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetAccountTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetAccountTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetContractTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetContractTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetContractTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetContractTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetContractTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetContractTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetContractTxsV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetContractTxsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetContractTxsV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetContractTxsV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetContractTxsV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetContractTxsV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetBlocks_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlocksRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetBlocks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetBlocks_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlocksRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetBlocks(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetBlock_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlockRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetBlock(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetBlock_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBlockRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetBlock(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetValidators_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetValidators(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetValidators_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetValidators(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetValidator_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetValidator(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetValidator_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetValidator(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetValidatorUptime_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorUptimeRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetValidatorUptime(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetValidatorUptime_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetValidatorUptimeRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetValidatorUptime(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetTxByTxHash_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxByTxHashRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetTxByTxHash(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetTxByTxHash_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTxByTxHashRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetTxByTxHash(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPeggyDepositTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetPeggyDepositTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPeggyDepositTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetPeggyDepositTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPeggyWithdrawalTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetPeggyWithdrawalTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetPeggyWithdrawalTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetPeggyWithdrawalTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetIBCTransferTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetIBCTransferTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetIBCTransferTxs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetIBCTransferTxs_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetIBCTransferTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetIBCTransferTxs(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetWasmCodes_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmCodesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetWasmCodes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetWasmCodes_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmCodesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetWasmCodes(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetWasmCodeByID_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmCodeByIDRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetWasmCodeByID(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetWasmCodeByID_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmCodeByIDRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetWasmCodeByID(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetWasmContracts_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmContractsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetWasmContracts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetWasmContracts_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmContractsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetWasmContracts(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetWasmContractByAddress_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmContractByAddressRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetWasmContractByAddress(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetWasmContractByAddress_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetWasmContractByAddressRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetWasmContractByAddress(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetCw20Balance_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetCw20BalanceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetCw20Balance(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetCw20Balance_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetCw20BalanceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetCw20Balance(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_Relayers_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RelayersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Relayers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_Relayers_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RelayersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Relayers(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_GetBankTransfers_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBankTransfersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetBankTransfers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetBankTransfers_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetBankTransfersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetBankTransfers(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveExplorerRPC_StreamTxs_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (InjectiveExplorerRPC_StreamTxsClient, runtime.ServerMetadata, error) { - var protoReq StreamTxsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamTxs(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveExplorerRPC_StreamBlocks_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (InjectiveExplorerRPC_StreamBlocksClient, runtime.ServerMetadata, error) { - var protoReq StreamBlocksRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamBlocks(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetStatsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveExplorerRPC_GetStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetStatsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetStats(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveExplorerRPCHandlerServer registers the http handlers for service InjectiveExplorerRPC to "mux". -// UnaryRPC :call InjectiveExplorerRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveExplorerRPCHandlerFromEndpoint instead. -func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveExplorerRPCServer) error { - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetAccountTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBlocks_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBlock_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetBlock_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBlock_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidators_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidators_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidators_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidator_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidator_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidator_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidatorUptime_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetTxByTxHash_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetPeggyDepositTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetIBCTransferTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmCodes_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmCodeByID_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmContracts_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmContractByAddress_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetCw20Balance_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_Relayers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_Relayers_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_Relayers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBankTransfers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_StreamTxs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_StreamBlocks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveExplorerRPCHandlerFromEndpoint is same as RegisterInjectiveExplorerRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveExplorerRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveExplorerRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveExplorerRPCHandler registers the http handlers for service InjectiveExplorerRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveExplorerRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveExplorerRPCHandlerClient(ctx, mux, NewInjectiveExplorerRPCClient(conn)) -} - -// RegisterInjectiveExplorerRPCHandlerClient registers the http handlers for service InjectiveExplorerRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveExplorerRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveExplorerRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveExplorerRPCClient" to call the correct interceptors. -func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveExplorerRPCClient) error { - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetAccountTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxsV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBlocks_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBlock_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetBlock_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBlock_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidators_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetValidators_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidators_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidator_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetValidator_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidator_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetValidatorUptime_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetTxByTxHash_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetPeggyDepositTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetIBCTransferTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmCodes_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmCodeByID_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmContracts_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetWasmContractByAddress_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetCw20Balance_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_Relayers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_Relayers_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_Relayers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetBankTransfers_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_StreamTxs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_StreamTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_StreamTxs_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_StreamBlocks_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_StreamBlocks_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_StreamBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveExplorerRPC_GetStats_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetStats", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetStats")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveExplorerRPC_GetStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveExplorerRPC_GetStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveExplorerRPC_GetAccountTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetAccountTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetContractTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetContractTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetContractTxsV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetContractTxsV2"}, "")) - - pattern_InjectiveExplorerRPC_GetBlocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetBlocks"}, "")) - - pattern_InjectiveExplorerRPC_GetBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetBlock"}, "")) - - pattern_InjectiveExplorerRPC_GetValidators_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetValidators"}, "")) - - pattern_InjectiveExplorerRPC_GetValidator_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetValidator"}, "")) - - pattern_InjectiveExplorerRPC_GetValidatorUptime_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetValidatorUptime"}, "")) - - pattern_InjectiveExplorerRPC_GetTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetTxByTxHash_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetTxByTxHash"}, "")) - - pattern_InjectiveExplorerRPC_GetPeggyDepositTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetPeggyDepositTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetPeggyWithdrawalTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetIBCTransferTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetIBCTransferTxs"}, "")) - - pattern_InjectiveExplorerRPC_GetWasmCodes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetWasmCodes"}, "")) - - pattern_InjectiveExplorerRPC_GetWasmCodeByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetWasmCodeByID"}, "")) - - pattern_InjectiveExplorerRPC_GetWasmContracts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetWasmContracts"}, "")) - - pattern_InjectiveExplorerRPC_GetWasmContractByAddress_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetWasmContractByAddress"}, "")) - - pattern_InjectiveExplorerRPC_GetCw20Balance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetCw20Balance"}, "")) - - pattern_InjectiveExplorerRPC_Relayers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "Relayers"}, "")) - - pattern_InjectiveExplorerRPC_GetBankTransfers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetBankTransfers"}, "")) - - pattern_InjectiveExplorerRPC_StreamTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamTxs"}, "")) - - pattern_InjectiveExplorerRPC_StreamBlocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "StreamBlocks"}, "")) - - pattern_InjectiveExplorerRPC_GetStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetStats"}, "")) -) - -var ( - forward_InjectiveExplorerRPC_GetAccountTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetContractTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetContractTxsV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetBlocks_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetBlock_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetValidators_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetValidator_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetValidatorUptime_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetTxByTxHash_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetIBCTransferTxs_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetWasmCodes_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetWasmCodeByID_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetWasmContracts_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetWasmContractByAddress_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetCw20Balance_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_Relayers_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_GetBankTransfers_0 = runtime.ForwardResponseMessage - - forward_InjectiveExplorerRPC_StreamTxs_0 = runtime.ForwardResponseStream - - forward_InjectiveExplorerRPC_StreamBlocks_0 = runtime.ForwardResponseStream - - forward_InjectiveExplorerRPC_GetStats_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto deleted file mode 100644 index 72446b66..00000000 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto +++ /dev/null @@ -1,897 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveExplorerRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_explorer_rpc; - -option go_package = "/injective_explorer_rpcpb"; - -// ExplorerAPI implements explorer data API for e.g. Blockchain Explorer -service InjectiveExplorerRPC { - // GetAccountTxs returns tranctions involving in an account based upon params. - rpc GetAccountTxs (GetAccountTxsRequest) returns (GetAccountTxsResponse); - // GetContractTxs returns contract-related transactions - rpc GetContractTxs (GetContractTxsRequest) returns (GetContractTxsResponse); - // GetContractTxs returns contract-related transactions - rpc GetContractTxsV2 (GetContractTxsV2Request) returns (GetContractTxsV2Response); - // GetBlocks returns blocks based upon the request params - rpc GetBlocks (GetBlocksRequest) returns (GetBlocksResponse); - // GetBlock returns block based upon the height or hash - rpc GetBlock (GetBlockRequest) returns (GetBlockResponse); - // GetValidators returns validators on the active chain - rpc GetValidators (GetValidatorsRequest) returns (GetValidatorsResponse); - // GetValidator returns validator information on the active chain - rpc GetValidator (GetValidatorRequest) returns (GetValidatorResponse); - // GetValidatorUptime returns validator uptime information on the active chain - rpc GetValidatorUptime (GetValidatorUptimeRequest) returns (GetValidatorUptimeResponse); - // GetTxs returns transactions based upon the request params - rpc GetTxs (GetTxsRequest) returns (GetTxsResponse); - // GetTxByTxHash returns certain transaction information by its tx hash. - rpc GetTxByTxHash (GetTxByTxHashRequest) returns (GetTxByTxHashResponse); - // GetPeggyDepositTxs returns the peggy deposit transactions based upon the -// request params - rpc GetPeggyDepositTxs (GetPeggyDepositTxsRequest) returns (GetPeggyDepositTxsResponse); - // GetPeggyWithdrawalTxs returns the peggy withdrawal transactions based upon -// the request params - rpc GetPeggyWithdrawalTxs (GetPeggyWithdrawalTxsRequest) returns (GetPeggyWithdrawalTxsResponse); - // GetIBCTransferTxs returns the ibc transfer transactions based upon the -// request params - rpc GetIBCTransferTxs (GetIBCTransferTxsRequest) returns (GetIBCTransferTxsResponse); - // GetWasmCodes lists all stored code - rpc GetWasmCodes (GetWasmCodesRequest) returns (GetWasmCodesResponse); - // GetWasmCodeById list cosmwasm code infor by ID - rpc GetWasmCodeByID (GetWasmCodeByIDRequest) returns (GetWasmCodeByIDResponse); - // GetWasmContracts lists all contracts - rpc GetWasmContracts (GetWasmContractsRequest) returns (GetWasmContractsResponse); - // GetWasmContractByAddress list cosmwasm contract info by its address - rpc GetWasmContractByAddress (GetWasmContractByAddressRequest) returns (GetWasmContractByAddressResponse); - // GetCw20Balance lists all cw20 balances of an injective account - rpc GetCw20Balance (GetCw20BalanceRequest) returns (GetCw20BalanceResponse); - // Request relayers infos by marketIDs. If no ids are provided, all market with -// associated relayers are returned - rpc Relayers (RelayersRequest) returns (RelayersResponse); - // GetBankTransfers returns bank transfers. - rpc GetBankTransfers (GetBankTransfersRequest) returns (GetBankTransfersResponse); - // StreamTxs returns transactions based upon the request params - rpc StreamTxs (StreamTxsRequest) returns (stream StreamTxsResponse); - // StreamBlocks returns the latest blocks - rpc StreamBlocks (StreamBlocksRequest) returns (stream StreamBlocksResponse); - // GetStats returns global exchange statistics in the last 24hs - rpc GetStats (GetStatsRequest) returns (GetStatsResponse); -} - -message GetAccountTxsRequest { - // Address of account - string address = 1; - // Return transactions before this block number - uint64 before = 2; - // Return transactions after this block number - uint64 after = 3; - sint32 limit = 4; - uint64 skip = 5; - string type = 6; - string module = 7; - sint64 from_number = 8; - sint64 to_number = 9; - // The starting timestamp in UNIX milliseconds that the txs must be equal or -// older than - sint64 start_time = 10; - // The ending timestamp in UNIX milliseconds that the txs must be equal or -// younger than - sint64 end_time = 11; - // The status of the txs to be returned - string status = 12; -} - -message GetAccountTxsResponse { - Paging paging = 1; - repeated TxDetailData data = 2; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} -// TxDetailData wraps tx data includes details information -message TxDetailData { - string id = 1; - uint64 block_number = 2; - string block_timestamp = 3; - string hash = 4; - uint32 code = 5; - bytes data = 6; - string info = 8; - sint64 gas_wanted = 9; - sint64 gas_used = 10; - GasFee gas_fee = 11; - string codespace = 12; - repeated Event events = 13; - string tx_type = 14; - bytes messages = 15; - repeated Signature signatures = 16; - string memo = 17; - uint64 tx_number = 18; - // Block timestamp in unix milli - uint64 block_unix_timestamp = 19; - // Transaction log indicating errors - string error_log = 20; - // transaction event logs - bytes logs = 21; - // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - repeated sint64 claim_ids = 22; -} - -message GasFee { - repeated CosmosCoin amount = 1; - uint64 gas_limit = 2; - string payer = 3; - string granter = 4; -} - -message CosmosCoin { - // Coin denominator - string denom = 1; - // Coin amount (big int) - string amount = 2; -} - -message Event { - string type = 1; - map attributes = 2; -} -// Signature wraps tx signature -message Signature { - string pubkey = 1; - string address = 2; - uint64 sequence = 3; - string signature = 4; -} - -message GetContractTxsRequest { - // Address of contract - string address = 1; - sint32 limit = 2; - uint64 skip = 3; - sint64 from_number = 4; - sint64 to_number = 5; -} - -message GetContractTxsResponse { - Paging paging = 1; - repeated TxDetailData data = 2; -} - -message GetContractTxsV2Request { - // Address of contract - string address = 1; - // Height of the block - uint64 height = 2; - // Unix timestamp (UTC) in milliseconds - sint64 from = 3; - // Unix timestamp (UTC) in milliseconds - sint64 to = 4; - sint32 limit = 5; - // Pagination token - string token = 6; -} - -message GetContractTxsV2Response { - repeated string next = 1; - repeated TxDetailData data = 2; -} - -message GetBlocksRequest { - uint64 before = 1; - uint64 after = 2; - sint32 limit = 3; - // Unix timestamp (UTC) in milliseconds - uint64 from = 4; - // Unix timestamp (UTC) in milliseconds - uint64 to = 5; -} - -message GetBlocksResponse { - Paging paging = 1; - repeated BlockInfo data = 2; -} - -message BlockInfo { - uint64 height = 1; - string proposer = 2; - string moniker = 3; - string block_hash = 4; - string parent_hash = 5; - sint64 num_pre_commits = 6; - sint64 num_txs = 7; - repeated TxDataRPC txs = 8; - string timestamp = 9; -} -// TxData wraps tx data -message TxDataRPC { - string id = 1; - uint64 block_number = 2; - string block_timestamp = 3; - string hash = 4; - string codespace = 5; - string messages = 6; - uint64 tx_number = 7; - // Transaction log indicating errors - string error_log = 8; - uint32 code = 9; - // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - repeated sint64 claim_ids = 10; -} - -message GetBlockRequest { - string id = 1; -} - -message GetBlockResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - BlockDetailInfo data = 3; -} - -message BlockDetailInfo { - uint64 height = 1; - string proposer = 2; - string moniker = 3; - string block_hash = 4; - string parent_hash = 5; - sint64 num_pre_commits = 6; - sint64 num_txs = 7; - sint64 total_txs = 8; - repeated TxData txs = 9; - string timestamp = 10; -} -// TxData wraps tx data -message TxData { - string id = 1; - uint64 block_number = 2; - string block_timestamp = 3; - string hash = 4; - string codespace = 5; - bytes messages = 6; - uint64 tx_number = 7; - // Transaction log indicating errors - string error_log = 8; - uint32 code = 9; - bytes tx_msg_types = 10; - // transaction event logs - bytes logs = 11; - // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - repeated sint64 claim_ids = 12; - repeated Signature signatures = 13; -} - -message GetValidatorsRequest { -} - -message GetValidatorsResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - repeated Validator data = 3; -} -// Validator defines the structure for validator information. -message Validator { - string id = 1; - string moniker = 2; - string operator_address = 3; - string consensus_address = 4; - bool jailed = 5; - sint32 status = 6; - string tokens = 7; - string delegator_shares = 8; - ValidatorDescription description = 9; - sint64 unbonding_height = 10; - string unbonding_time = 11; - string commission_rate = 12; - string commission_max_rate = 13; - string commission_max_change_rate = 14; - string commission_update_time = 15; - uint64 proposed = 16; - uint64 signed = 17; - uint64 missed = 18; - string timestamp = 19; - repeated ValidatorUptime uptimes = 20; - repeated SlashingEvent slashing_events = 21; - // uptime percentage base on latest 10k block - double uptime_percentage = 22; - // URL of the validator logo - string image_url = 23; -} - -message ValidatorDescription { - string moniker = 1; - string identity = 2; - string website = 3; - string security_contact = 4; - string details = 5; - string image_url = 6; -} - -message ValidatorUptime { - uint64 block_number = 1; - string status = 2; -} - -message SlashingEvent { - uint64 block_number = 1; - string block_timestamp = 2; - string address = 3; - uint64 power = 4; - string reason = 5; - string jailed = 6; - uint64 missed_blocks = 7; -} - -message GetValidatorRequest { - string address = 1; -} - -message GetValidatorResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - Validator data = 3; -} - -message GetValidatorUptimeRequest { - string address = 1; -} - -message GetValidatorUptimeResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - repeated ValidatorUptime data = 3; -} - -message GetTxsRequest { - uint64 before = 1; - uint64 after = 2; - sint32 limit = 3; - uint64 skip = 4; - string type = 5; - string module = 6; - sint64 from_number = 7; - sint64 to_number = 8; - // The starting timestamp in UNIX milliseconds that the txs must be equal or -// older than - sint64 start_time = 9; - // The ending timestamp in UNIX milliseconds that the txs must be equal or -// younger than - sint64 end_time = 10; - // The status of the txs to be returned - string status = 11; -} - -message GetTxsResponse { - Paging paging = 1; - repeated TxData data = 2; -} - -message GetTxByTxHashRequest { - string hash = 1; -} - -message GetTxByTxHashResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - TxDetailData data = 3; -} - -message GetPeggyDepositTxsRequest { - // Sender address of deposit request - string sender = 1; - // Address of receiveer upon deposit - string receiver = 2; - sint32 limit = 3; - uint64 skip = 4; -} - -message GetPeggyDepositTxsResponse { - repeated PeggyDepositTx field = 1; -} -// PeggyDepositTx wraps tx data includes peggy deposit tx details information -message PeggyDepositTx { - // Sender address of deposit request - string sender = 1; - // Address of receiveer upon deposit - string receiver = 2; - // The event nonce of WithdrawalClaim event emitted by Ethereum chain upon -// deposit - uint64 event_nonce = 3; - // The block height of WithdrawalClaim event emitted by Ethereum chain upon -// deposit - uint64 event_height = 4; - // Amount of tokens being deposited - string amount = 5; - // Denom of tokens being deposited - string denom = 6; - // orchestratorAddress who created batch request - string orchestrator_address = 7; - string state = 8; - // The claimType will be DepoistClaim for Deposits - sint32 claim_type = 9; - repeated string tx_hashes = 10; - string created_at = 11; - string updated_at = 12; -} - -message GetPeggyWithdrawalTxsRequest { - // Sender address of withdrawal request - string sender = 1; - // Address of receiveer upon withdrawal - string receiver = 2; - sint32 limit = 3; - uint64 skip = 4; -} - -message GetPeggyWithdrawalTxsResponse { - repeated PeggyWithdrawalTx field = 1; -} -// PeggyWithdrawalTx wraps tx data includes peggy withdrawal tx details -// information -message PeggyWithdrawalTx { - // Sender address of withdrawal request - string sender = 1; - // Address of receiveer upon withdrawal - string receiver = 2; - // Amount of tokens being withdrawan - string amount = 3; - // Denom of tokens being withdrawan - string denom = 4; - // The bridge fee paid by sender for withdrawal - string bridge_fee = 5; - // A auto incremented unique ID representing the withdrawal request - uint64 outgoing_tx_id = 6; - // The timestamp after which Batch request will be discarded if not processed -// already - uint64 batch_timeout = 7; - // A auto incremented unique ID representing the Withdrawal Batches - uint64 batch_nonce = 8; - // orchestratorAddress who created batch request - string orchestrator_address = 9; - // The event nonce of WithdrawalClaim event emitted by Ethereum chain upon -// batch withdrawal - uint64 event_nonce = 10; - // The block height of WithdrawalClaim event emitted by Ethereum chain upon -// batch withdrawal - uint64 event_height = 11; - string state = 12; - // The claimType will be WithdrawalClaim for Batch Withdrawals - sint32 claim_type = 13; - repeated string tx_hashes = 14; - string created_at = 15; - string updated_at = 16; -} - -message GetIBCTransferTxsRequest { - string sender = 1; - string receiver = 2; - string src_channel = 3; - string src_port = 4; - string dest_channel = 5; - string dest_port = 6; - sint32 limit = 7; - uint64 skip = 8; -} - -message GetIBCTransferTxsResponse { - repeated IBCTransferTx field = 1; -} -// IBCTransferTx wraps tx data includes ibc transfer tx details information -message IBCTransferTx { - // the sender address - string sender = 1; - // the recipient address on the destination chain - string receiver = 2; - // the port on which the packet will be sent - string source_port = 3; - // the channel by which the packet will be sent - string source_channel = 4; - // identifies the port on the receiving chain - string destination_port = 5; - // identifies the channel end on the receiving chain - string destination_channel = 6; - // transfer amount - string amount = 7; - // transafer denom - string denom = 8; - // Timeout height relative to the current block height. The timeout is disabled -// when set to 0 - string timeout_height = 9; - // Timeout timestamp (in nanoseconds) relative to the current block timestamp - uint64 timeout_timestamp = 10; - // number corresponds to the order of sends and receives, where a Packet with -// an earlier sequence number must be sent and received before a Packet with a -// later sequence number - uint64 packet_sequence = 11; - bytes data_hex = 12; - string state = 13; - // it's injective chain tx hash array - repeated string tx_hashes = 14; - string created_at = 15; - string updated_at = 16; -} - -message GetWasmCodesRequest { - sint32 limit = 1; - sint64 from_number = 2; - sint64 to_number = 3; -} - -message GetWasmCodesResponse { - Paging paging = 1; - repeated WasmCode data = 2; -} -// Detail of cosmwasm stored code -message WasmCode { - // ID of stored wasmcode, sorted in descending order - uint64 code_id = 1; - // Tx hash of store code transaction - string tx_hash = 2; - // Checksum of the cosmwasm code - Checksum checksum = 3; - // Block time when the code is stored, in millisecond - uint64 created_at = 4; - // Contract type of the wasm code - string contract_type = 5; - // version string of the wasm code - string version = 6; - // describe instantiate permission - ContractPermission permission = 7; - // code schema preview - string code_schema = 8; - // code repo preview, may contain schema folder - string code_view = 9; - // count number of contract instantiation from this code - uint64 instantiates = 10; - // creator of this code - string creator = 11; - // monotonic order of the code stored - sint64 code_number = 12; - // id of the proposal that store this code - sint64 proposal_id = 13; -} - -message Checksum { - // Algorithm of hash function - string algorithm = 1; - // Hash if apply algorithm to the cosmwasm bytecode - string hash = 2; -} - -message ContractPermission { - // Access type of instantiation - sint32 access_type = 1; - // Account address - string address = 2; -} - -message GetWasmCodeByIDRequest { - // Code ID of the code - sint64 code_id = 1; -} - -message GetWasmCodeByIDResponse { - // ID of stored wasmcode, sorted in descending order - uint64 code_id = 1; - // Tx hash of store code transaction - string tx_hash = 2; - // Checksum of the cosmwasm code - Checksum checksum = 3; - // Block time when the code is stored, in millisecond - uint64 created_at = 4; - // Contract type of the wasm code - string contract_type = 5; - // version string of the wasm code - string version = 6; - // describe instantiate permission - ContractPermission permission = 7; - // code schema preview - string code_schema = 8; - // code repo preview, may contain schema folder - string code_view = 9; - // count number of contract instantiation from this code - uint64 instantiates = 10; - // creator of this code - string creator = 11; - // monotonic order of the code stored - sint64 code_number = 12; - // id of the proposal that store this code - sint64 proposal_id = 13; -} - -message GetWasmContractsRequest { - sint32 limit = 1; - sint64 code_id = 2; - sint64 from_number = 3; - sint64 to_number = 4; - bool assets_only = 5; - sint64 skip = 6; - // Label of the contract - string label = 7; -} - -message GetWasmContractsResponse { - Paging paging = 1; - repeated WasmContract data = 2; -} -// Detail of cosmwasm instantiated contract -message WasmContract { - // General name of the contract - string label = 1; - // Address of the contract - string address = 2; - // hash of the instantiate transaction - string tx_hash = 3; - // Address of the contract creator - string creator = 4; - // Number of times call to execute contract - uint64 executes = 5; - // Block timestamp that contract was instantiated, in millisecond - uint64 instantiated_at = 6; - // init message when this contract was instantiated - string init_message = 7; - // Block timestamp that contract was called, in millisecond - uint64 last_executed_at = 8; - // Contract funds - repeated ContractFund funds = 9; - // Code id of the contract - uint64 code_id = 10; - // Admin of the contract - string admin = 11; - // Latest migrate message of the contract - string current_migrate_message = 12; - // Monotonic contract number in database - sint64 contract_number = 13; - // Contract version string - string version = 14; - // Contract type - string type = 15; - Cw20Metadata cw20_metadata = 16; - // id of the proposal that instantiate this contract - sint64 proposal_id = 17; -} - -message ContractFund { - // Denominator - string denom = 1; - // Amount of denom - string amount = 2; -} -// General cw20 metadata -message Cw20Metadata { - Cw20TokenInfo token_info = 1; - Cw20MarketingInfo marketing_info = 2; -} -// Token name, symbol, decimal and so on -message Cw20TokenInfo { - // General name of the token - string name = 1; - // Symbol of then token - string symbol = 2; - // Decimal places of token - sint64 decimals = 3; - // Token's total supply - string total_supply = 4; -} -// Marketing info -message Cw20MarketingInfo { - // Project information - string project = 1; - // Token's description - string description = 2; - // logo (url/embedded) - string logo = 3; - // A random field for additional marketing info - bytes marketing = 4; -} - -message GetWasmContractByAddressRequest { - // Contract address - string contract_address = 1; -} - -message GetWasmContractByAddressResponse { - // General name of the contract - string label = 1; - // Address of the contract - string address = 2; - // hash of the instantiate transaction - string tx_hash = 3; - // Address of the contract creator - string creator = 4; - // Number of times call to execute contract - uint64 executes = 5; - // Block timestamp that contract was instantiated, in millisecond - uint64 instantiated_at = 6; - // init message when this contract was instantiated - string init_message = 7; - // Block timestamp that contract was called, in millisecond - uint64 last_executed_at = 8; - // Contract funds - repeated ContractFund funds = 9; - // Code id of the contract - uint64 code_id = 10; - // Admin of the contract - string admin = 11; - // Latest migrate message of the contract - string current_migrate_message = 12; - // Monotonic contract number in database - sint64 contract_number = 13; - // Contract version string - string version = 14; - // Contract type - string type = 15; - Cw20Metadata cw20_metadata = 16; - // id of the proposal that instantiate this contract - sint64 proposal_id = 17; -} - -message GetCw20BalanceRequest { - // address to list balance of - string address = 1; - sint32 limit = 2; -} - -message GetCw20BalanceResponse { - repeated WasmCw20Balance field = 1; -} - -message WasmCw20Balance { - // Address of CW20 contract - string contract_address = 1; - // Account address - string account = 2; - // Account balance - string balance = 3; - // update timestamp in milisecond - sint64 updated_at = 4; - Cw20Metadata cw20_metadata = 5; -} - -message RelayersRequest { - // Specify multiple marketIDs to search. - repeated string market_i_ds = 1; -} - -message RelayersResponse { - repeated RelayerMarkets field = 1; -} - -message RelayerMarkets { - // Market ID of the market - string market_id = 1; - // Relayers list for specified market - repeated Relayer relayers = 2; -} - -message Relayer { - // Relayer identifier - string name = 1; - // Call to action. A link to the relayer - string cta = 2; -} - -message GetBankTransfersRequest { - // Transfer sender address - repeated string senders = 1; - // Transfer recipient address - repeated string recipients = 2; - // Returns transfers with the community pool address as either sender or -// recipient - bool is_community_pool_related = 3; - sint32 limit = 4; - uint64 skip = 5; - // The starting timestamp in UNIX milliseconds that the transfers must be equal -// or older than - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds that the transfers must be equal -// or younger than - sint64 end_time = 7; - // Transfers where either the sender or the recipient is one of the addresses - repeated string address = 8; - sint32 per_page = 9; - string token = 10; -} - -message GetBankTransfersResponse { - Paging paging = 1; - repeated BankTransfer data = 2; -} -// Bank transfer represents a transfer -message BankTransfer { - string sender = 1; - string recipient = 2; - // Amounts transferred - repeated Coin amounts = 3; - uint64 block_number = 4; - string block_timestamp = 5; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message StreamTxsRequest { -} - -message StreamTxsResponse { - string id = 1; - uint64 block_number = 2; - string block_timestamp = 3; - string hash = 4; - string codespace = 5; - string messages = 6; - uint64 tx_number = 7; - // Transaction log indicating errors - string error_log = 8; - uint32 code = 9; - // peggy bridge claim id, non-zero if tx contains MsgDepositClaim - repeated sint64 claim_ids = 10; -} - -message StreamBlocksRequest { -} - -message StreamBlocksResponse { - uint64 height = 1; - string proposer = 2; - string moniker = 3; - string block_hash = 4; - string parent_hash = 5; - sint64 num_pre_commits = 6; - sint64 num_txs = 7; - repeated TxDataRPC txs = 8; - string timestamp = 9; -} - -message GetStatsRequest { -} - -message GetStatsResponse { - // Total of unique addresses - uint64 addresses = 1; - // Total number of assets - uint64 assets = 2; - // Total circulating supply of INJ - uint64 inj_supply = 3; - // Avg of TX per second in the past 24hs - uint64 txs_ps24_h = 4; - // Avg of TX per second in the 100 blocks - uint64 txs_ps100_b = 5; - // Total number of TXs - uint64 txs_total = 6; - // Total number of TXs in the past 24hs - uint64 txs24_h = 7; - // Total number of TXs in the past 30 days - uint64 txs30_d = 8; - // Number of blocks produced in the past 24hs - uint64 block_count24_h = 9; -} diff --git a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go index 9b896f97..6882cdf7 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_health.proto package api_v1pb @@ -154,6 +154,10 @@ type HealthStatus struct { HoracleTimestamp int32 `protobuf:"zigzag32,4,opt,name=horacle_timestamp,json=horacleTimestamp,proto3" json:"horacle_timestamp,omitempty"` // Migration version of the database. MigrationLastVersion int32 `protobuf:"zigzag32,5,opt,name=migration_last_version,json=migrationLastVersion,proto3" json:"migration_last_version,omitempty"` + // Block height from event provider service. + EpHeight int32 `protobuf:"zigzag32,6,opt,name=ep_height,json=epHeight,proto3" json:"ep_height,omitempty"` + // Block UNIX timestamp from event provider service. + EpTimestamp int32 `protobuf:"zigzag32,7,opt,name=ep_timestamp,json=epTimestamp,proto3" json:"ep_timestamp,omitempty"` } func (x *HealthStatus) Reset() { @@ -223,6 +227,20 @@ func (x *HealthStatus) GetMigrationLastVersion() int32 { return 0 } +func (x *HealthStatus) GetEpHeight() int32 { + if x != nil { + return x.EpHeight + } + return 0 +} + +func (x *HealthStatus) GetEpTimestamp() int32 { + if x != nil { + return x.EpTimestamp + } + return 0 +} + var File_goadesign_goagen_health_proto protoreflect.FileDescriptor var file_goadesign_goagen_health_proto_rawDesc = []byte{ @@ -237,7 +255,7 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0f, @@ -251,7 +269,11 @@ var file_goadesign_goagen_health_proto_rawDesc = []byte{ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x14, 0x6d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x65, 0x70, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x08, 0x65, 0x70, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x65, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x0b, 0x65, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, diff --git a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go index aaf42a53..9749a415 100644 --- a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go +++ b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_health.proto package api_v1pb diff --git a/exchange/health_rpc/pb/health.pb.gw.go b/exchange/health_rpc/pb/health.pb.gw.go deleted file mode 100644 index e52ca0e3..00000000 --- a/exchange/health_rpc/pb/health.pb.gw.go +++ /dev/null @@ -1,171 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: health.proto - -/* -Package api_v1pb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package api_v1pb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_Health_GetStatus_0(ctx context.Context, marshaler runtime.Marshaler, client HealthClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetStatusRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Health_GetStatus_0(ctx context.Context, marshaler runtime.Marshaler, server HealthServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetStatusRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetStatus(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterHealthHandlerServer registers the http handlers for service Health to "mux". -// UnaryRPC :call HealthServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterHealthHandlerFromEndpoint instead. -func RegisterHealthHandlerServer(ctx context.Context, mux *runtime.ServeMux, server HealthServer) error { - - mux.Handle("POST", pattern_Health_GetStatus_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/api.v1.Health/GetStatus", runtime.WithHTTPPathPattern("/api.v1.Health/GetStatus")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Health_GetStatus_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_Health_GetStatus_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterHealthHandlerFromEndpoint is same as RegisterHealthHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterHealthHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterHealthHandler(ctx, mux, conn) -} - -// RegisterHealthHandler registers the http handlers for service Health to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterHealthHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterHealthHandlerClient(ctx, mux, NewHealthClient(conn)) -} - -// RegisterHealthHandlerClient registers the http handlers for service Health -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "HealthClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "HealthClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "HealthClient" to call the correct interceptors. -func RegisterHealthHandlerClient(ctx context.Context, mux *runtime.ServeMux, client HealthClient) error { - - mux.Handle("POST", pattern_Health_GetStatus_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/api.v1.Health/GetStatus", runtime.WithHTTPPathPattern("/api.v1.Health/GetStatus")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Health_GetStatus_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_Health_GetStatus_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_Health_GetStatus_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api.v1.Health", "GetStatus"}, "")) -) - -var ( - forward_Health_GetStatus_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/health_rpc/pb/health.proto b/exchange/health_rpc/pb/health.proto deleted file mode 100644 index cc5a190d..00000000 --- a/exchange/health_rpc/pb/health.proto +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// health protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package api.v1; - -option go_package = "/api.v1pb"; - -// HealthAPI allows to check if backend data is up-to-date and reliable or not. -service Health { - // Get current backend health status - rpc GetStatus (GetStatusRequest) returns (GetStatusResponse); -} - -message GetStatusRequest { -} - -message GetStatusResponse { - // Status of the response. - string s = 1; - // Error message. - string errmsg = 2; - HealthStatus data = 3; - string status = 4; -} -// Status defines the structure for health information -message HealthStatus { - // Block height from local mongo exchange db. - sint32 local_height = 1; - // block timestamp from local mongo exchange db. - sint32 local_timestamp = 2; - // block height from Horacle service. - sint32 horacle_height = 3; - // block timestamp from Horacle service. - sint32 horacle_timestamp = 4; - // Migration version of the database. - sint32 migration_last_version = 5; -} diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go index 99aa0d6a..4f0273f6 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go index ba318673..66379be5 100644 --- a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go b/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go deleted file mode 100644 index eab9eda7..00000000 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go +++ /dev/null @@ -1,341 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_insurance_rpc.proto - -/* -Package injective_insurance_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_insurance_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveInsuranceRPC_Funds_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveInsuranceRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Funds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveInsuranceRPC_Funds_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveInsuranceRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Funds(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveInsuranceRPC_Fund_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveInsuranceRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Fund(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveInsuranceRPC_Fund_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveInsuranceRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FundRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Fund(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveInsuranceRPC_Redemptions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveInsuranceRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RedemptionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Redemptions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveInsuranceRPC_Redemptions_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveInsuranceRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RedemptionsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Redemptions(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveInsuranceRPCHandlerServer registers the http handlers for service InjectiveInsuranceRPC to "mux". -// UnaryRPC :call InjectiveInsuranceRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveInsuranceRPCHandlerFromEndpoint instead. -func RegisterInjectiveInsuranceRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveInsuranceRPCServer) error { - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Funds_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveInsuranceRPC_Funds_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Funds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Fund_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Fund")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveInsuranceRPC_Fund_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Fund_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Redemptions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveInsuranceRPCHandlerFromEndpoint is same as RegisterInjectiveInsuranceRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveInsuranceRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveInsuranceRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveInsuranceRPCHandler registers the http handlers for service InjectiveInsuranceRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveInsuranceRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveInsuranceRPCHandlerClient(ctx, mux, NewInjectiveInsuranceRPCClient(conn)) -} - -// RegisterInjectiveInsuranceRPCHandlerClient registers the http handlers for service InjectiveInsuranceRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveInsuranceRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveInsuranceRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveInsuranceRPCClient" to call the correct interceptors. -func RegisterInjectiveInsuranceRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveInsuranceRPCClient) error { - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Funds_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveInsuranceRPC_Funds_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Funds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Fund_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Fund")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveInsuranceRPC_Fund_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Fund_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveInsuranceRPC_Redemptions_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveInsuranceRPC_Funds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Funds"}, "")) - - pattern_InjectiveInsuranceRPC_Fund_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Fund"}, "")) - - pattern_InjectiveInsuranceRPC_Redemptions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Redemptions"}, "")) -) - -var ( - forward_InjectiveInsuranceRPC_Funds_0 = runtime.ForwardResponseMessage - - forward_InjectiveInsuranceRPC_Fund_0 = runtime.ForwardResponseMessage - - forward_InjectiveInsuranceRPC_Redemptions_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto deleted file mode 100644 index 29726fb6..00000000 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto +++ /dev/null @@ -1,115 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveInsuranceRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_insurance_rpc; - -option go_package = "/injective_insurance_rpcpb"; - -// InjectiveInsuranceRPC defines gRPC API of Insurance provider. -service InjectiveInsuranceRPC { - // Funds lists all insurance funds. - rpc Funds (FundsRequest) returns (FundsResponse); - // Funds returns an insurance fund for a given insurance fund token denom. - rpc Fund (FundRequest) returns (FundResponse); - // PendingRedemptions lists all pending redemptions according to a filter - rpc Redemptions (RedemptionsRequest) returns (RedemptionsResponse); -} - -message FundsRequest { -} - -message FundsResponse { - repeated InsuranceFund funds = 1; -} - -message InsuranceFund { - // Ticker of the derivative market. - string market_ticker = 1; - // Derivative Market ID - string market_id = 2; - // Coin denom used for the underwriting of the insurance fund. - string deposit_denom = 3; - // Pool token denom - string pool_token_denom = 4; - // Redemption notice period duration in seconds. - sint64 redemption_notice_period_duration = 5; - string balance = 6; - string total_share = 7; - // Oracle base currency - string oracle_base = 8; - // Oracle quote currency - string oracle_quote = 9; - // Oracle Type - string oracle_type = 10; - // Defines the expiry, if any - sint64 expiry = 11; - // Token metadata for the deposit asset - TokenMeta deposit_token_meta = 12; -} - -message TokenMeta { - // Token full name - string name = 1; - // Token contract address (native or not) - string address = 2; - // Token symbol short name - string symbol = 3; - // URL to the logo image - string logo = 4; - // Token decimals - sint32 decimals = 5; - // Token metadata fetched timestamp in UNIX millis. - sint64 updated_at = 6; -} - -message FundRequest { - // denom of insurance fund - string denom = 1; -} - -message FundResponse { - // The insurance fund corresponding to the provided token denom - InsuranceFund fund = 1; -} - -message RedemptionsRequest { - // Account address of the redemption owner - string redeemer = 1; - // Denom of the insurance pool token. - string redemption_denom = 2; - // Status of the redemption. Either pending or disbursed. - string status = 3; -} - -message RedemptionsResponse { - repeated RedemptionSchedule redemption_schedules = 1; -} - -message RedemptionSchedule { - // Redemption ID. - uint64 redemption_id = 1; - // Status of the redemption. Either pending or disbursed. - string status = 2; - // Account address of the redemption owner - string redeemer = 3; - // Claimable redemption time in seconds - sint64 claimable_redemption_time = 4; - // Amount of pool tokens being redeemed. - string redemption_amount = 5; - // Pool token denom being redeemed. - string redemption_denom = 6; - // Redemption request time in unix milliseconds. - sint64 requested_at = 7; - // Amount of quote tokens disbursed - string disbursed_amount = 8; - // Denom of the quote tokens disbursed - string disbursed_denom = 9; - // Redemption disbursement time in unix milliseconds. - sint64 disbursed_at = 10; -} diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go index 3ddf3838..57db5f1a 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go index 53281e05..10da6d73 100644 --- a/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb diff --git a/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go b/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go deleted file mode 100644 index 00df0503..00000000 --- a/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go +++ /dev/null @@ -1,484 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_meta_rpc.proto - -/* -Package injective_meta_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_meta_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveMetaRPC_Ping_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveMetaRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PingRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Ping(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveMetaRPC_Ping_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveMetaRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PingRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Ping(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveMetaRPC_Version_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveMetaRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq VersionRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Version(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveMetaRPC_Version_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveMetaRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq VersionRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Version(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveMetaRPC_Info_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveMetaRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq InfoRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Info(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveMetaRPC_Info_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveMetaRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq InfoRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Info(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveMetaRPC_StreamKeepalive_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveMetaRPCClient, req *http.Request, pathParams map[string]string) (InjectiveMetaRPC_StreamKeepaliveClient, runtime.ServerMetadata, error) { - var protoReq StreamKeepaliveRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamKeepalive(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveMetaRPC_TokenMetadata_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveMetaRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TokenMetadataRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.TokenMetadata(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveMetaRPC_TokenMetadata_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveMetaRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TokenMetadataRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.TokenMetadata(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveMetaRPCHandlerServer registers the http handlers for service InjectiveMetaRPC to "mux". -// UnaryRPC :call InjectiveMetaRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveMetaRPCHandlerFromEndpoint instead. -func RegisterInjectiveMetaRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveMetaRPCServer) error { - - mux.Handle("POST", pattern_InjectiveMetaRPC_Ping_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveMetaRPC_Ping_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Ping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_Version_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveMetaRPC_Version_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Version_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_Info_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveMetaRPC_Info_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Info_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_StreamKeepalive_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_TokenMetadata_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveMetaRPCHandlerFromEndpoint is same as RegisterInjectiveMetaRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveMetaRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveMetaRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveMetaRPCHandler registers the http handlers for service InjectiveMetaRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveMetaRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveMetaRPCHandlerClient(ctx, mux, NewInjectiveMetaRPCClient(conn)) -} - -// RegisterInjectiveMetaRPCHandlerClient registers the http handlers for service InjectiveMetaRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveMetaRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveMetaRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveMetaRPCClient" to call the correct interceptors. -func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveMetaRPCClient) error { - - mux.Handle("POST", pattern_InjectiveMetaRPC_Ping_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveMetaRPC_Ping_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Ping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_Version_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveMetaRPC_Version_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Version_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_Info_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveMetaRPC_Info_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_Info_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_StreamKeepalive_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveMetaRPC_StreamKeepalive_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_StreamKeepalive_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveMetaRPC_TokenMetadata_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveMetaRPC_Ping_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_meta_rpc.InjectiveMetaRPC", "Ping"}, "")) - - pattern_InjectiveMetaRPC_Version_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_meta_rpc.InjectiveMetaRPC", "Version"}, "")) - - pattern_InjectiveMetaRPC_Info_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_meta_rpc.InjectiveMetaRPC", "Info"}, "")) - - pattern_InjectiveMetaRPC_StreamKeepalive_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_meta_rpc.InjectiveMetaRPC", "StreamKeepalive"}, "")) - - pattern_InjectiveMetaRPC_TokenMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_meta_rpc.InjectiveMetaRPC", "TokenMetadata"}, "")) -) - -var ( - forward_InjectiveMetaRPC_Ping_0 = runtime.ForwardResponseMessage - - forward_InjectiveMetaRPC_Version_0 = runtime.ForwardResponseMessage - - forward_InjectiveMetaRPC_Info_0 = runtime.ForwardResponseMessage - - forward_InjectiveMetaRPC_StreamKeepalive_0 = runtime.ForwardResponseStream - - forward_InjectiveMetaRPC_TokenMetadata_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/meta_rpc/pb/injective_meta_rpc.proto b/exchange/meta_rpc/pb/injective_meta_rpc.proto deleted file mode 100644 index 87f2e718..00000000 --- a/exchange/meta_rpc/pb/injective_meta_rpc.proto +++ /dev/null @@ -1,99 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveMetaRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_meta_rpc; - -option go_package = "/injective_meta_rpcpb"; - -// InjectiveMetaRPC is a special API subset to get info about server. -service InjectiveMetaRPC { - // Endpoint for checking server health. - rpc Ping (PingRequest) returns (PingResponse); - // Returns injective-exchange version. - rpc Version (VersionRequest) returns (VersionResponse); - // Gets connection info - rpc Info (InfoRequest) returns (InfoResponse); - // Stream keepalive, if server exits, a shutdown event will be sent over this -// channel. - rpc StreamKeepalive (StreamKeepaliveRequest) returns (stream StreamKeepaliveResponse); - // Get tokens metadata. Can be filtered by denom - rpc TokenMetadata (TokenMetadataRequest) returns (TokenMetadataResponse); -} - -message PingRequest { -} - -message PingResponse { -} - -message VersionRequest { -} - -message VersionResponse { - // injective-exchange code version. - string version = 1; - // Additional build meta info. - map build = 2; -} - -message InfoRequest { - // Provide current system UNIX timestamp in millis - sint64 timestamp = 1; -} - -message InfoResponse { - // The original timestamp value in millis. - sint64 timestamp = 1; - // UNIX time on the server in millis. - sint64 server_time = 2; - // injective-exchange code version. - string version = 3; - // Additional build meta info. - map build = 4; - // Server's location region - string region = 5; -} - -message StreamKeepaliveRequest { -} - -message StreamKeepaliveResponse { - // Server event - string event = 1; - // New conection endpoint for the gRPC API - string new_endpoint = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message TokenMetadataRequest { - repeated string denoms = 1; -} - -message TokenMetadataResponse { - // tokens and their metadata list - repeated TokenMetadataElement tokens = 1; -} - -message TokenMetadataElement { - // Token's Ethereum address, not all token have this information - string ethereum_address = 1; - // Token's CoinGecko id for price references - string coingecko_id = 2; - // Token's denom on injective chain - string denom = 3; - // Token name - string name = 4; - // Token symbol - string symbol = 5; - // Number of decimal places used to represent the token's smallest unit - sint32 decimals = 6; - // Token logo URL - string logo = 7; -} diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go index 23d0f553..a7f3e411 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go index e3b84c89..ccbb00b4 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go b/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go deleted file mode 100644 index 6880d0ca..00000000 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go +++ /dev/null @@ -1,372 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_oracle_rpc.proto - -/* -Package injective_oracle_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_oracle_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveOracleRPC_OracleList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveOracleRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OracleListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OracleList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveOracleRPC_OracleList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveOracleRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OracleListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OracleList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveOracleRPC_Price_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveOracleRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PriceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Price(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveOracleRPC_Price_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveOracleRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PriceRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Price(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveOracleRPC_StreamPrices_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveOracleRPCClient, req *http.Request, pathParams map[string]string) (InjectiveOracleRPC_StreamPricesClient, runtime.ServerMetadata, error) { - var protoReq StreamPricesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamPrices(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveOracleRPC_StreamPricesByMarkets_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveOracleRPCClient, req *http.Request, pathParams map[string]string) (InjectiveOracleRPC_StreamPricesByMarketsClient, runtime.ServerMetadata, error) { - var protoReq StreamPricesByMarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamPricesByMarkets(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectiveOracleRPCHandlerServer registers the http handlers for service InjectiveOracleRPC to "mux". -// UnaryRPC :call InjectiveOracleRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveOracleRPCHandlerFromEndpoint instead. -func RegisterInjectiveOracleRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveOracleRPCServer) error { - - mux.Handle("POST", pattern_InjectiveOracleRPC_OracleList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveOracleRPC_OracleList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_OracleList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_Price_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveOracleRPC_Price_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_Price_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_StreamPrices_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_StreamPricesByMarkets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectiveOracleRPCHandlerFromEndpoint is same as RegisterInjectiveOracleRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveOracleRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveOracleRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveOracleRPCHandler registers the http handlers for service InjectiveOracleRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveOracleRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveOracleRPCHandlerClient(ctx, mux, NewInjectiveOracleRPCClient(conn)) -} - -// RegisterInjectiveOracleRPCHandlerClient registers the http handlers for service InjectiveOracleRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveOracleRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveOracleRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveOracleRPCClient" to call the correct interceptors. -func RegisterInjectiveOracleRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveOracleRPCClient) error { - - mux.Handle("POST", pattern_InjectiveOracleRPC_OracleList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveOracleRPC_OracleList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_OracleList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_Price_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveOracleRPC_Price_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_Price_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_StreamPrices_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveOracleRPC_StreamPrices_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_StreamPrices_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveOracleRPC_StreamPricesByMarkets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveOracleRPC_StreamPricesByMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveOracleRPC_StreamPricesByMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveOracleRPC_OracleList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_oracle_rpc.InjectiveOracleRPC", "OracleList"}, "")) - - pattern_InjectiveOracleRPC_Price_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_oracle_rpc.InjectiveOracleRPC", "Price"}, "")) - - pattern_InjectiveOracleRPC_StreamPrices_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_oracle_rpc.InjectiveOracleRPC", "StreamPrices"}, "")) - - pattern_InjectiveOracleRPC_StreamPricesByMarkets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_oracle_rpc.InjectiveOracleRPC", "StreamPricesByMarkets"}, "")) -) - -var ( - forward_InjectiveOracleRPC_OracleList_0 = runtime.ForwardResponseMessage - - forward_InjectiveOracleRPC_Price_0 = runtime.ForwardResponseMessage - - forward_InjectiveOracleRPC_StreamPrices_0 = runtime.ForwardResponseStream - - forward_InjectiveOracleRPC_StreamPricesByMarkets_0 = runtime.ForwardResponseStream -) diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc.proto b/exchange/oracle_rpc/pb/injective_oracle_rpc.proto deleted file mode 100644 index 7185b66e..00000000 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc.proto +++ /dev/null @@ -1,91 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveOracleRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_oracle_rpc; - -option go_package = "/injective_oracle_rpcpb"; - -// InjectiveOracleRPC defines gRPC API of Exchange Oracle provider. -service InjectiveOracleRPC { - // List all oracles - rpc OracleList (OracleListRequest) returns (OracleListResponse); - // Gets the price of the oracle - rpc Price (PriceRequest) returns (PriceResponse); - // StreamPrices streams new price changes for a specified oracle. If no oracles -// are provided, all price changes are streamed. - rpc StreamPrices (StreamPricesRequest) returns (stream StreamPricesResponse); - // StreamPrices streams new price changes markets - rpc StreamPricesByMarkets (StreamPricesByMarketsRequest) returns (stream StreamPricesByMarketsResponse); -} - -message OracleListRequest { -} - -message OracleListResponse { - repeated Oracle oracles = 1; -} - -message Oracle { - // The symbol of the oracle asset. - string symbol = 1; - // Oracle base currency - string base_symbol = 2; - // Oracle quote currency - string quote_symbol = 3; - // Oracle Type - string oracle_type = 4; - // The price of the oracle asset - string price = 5; -} - -message PriceRequest { - // Oracle base currency - string base_symbol = 1; - // Oracle quote currency - string quote_symbol = 2; - // Oracle Type - string oracle_type = 3; - // OracleScaleFactor - uint32 oracle_scale_factor = 4; -} - -message PriceResponse { - // The price of the oracle asset - string price = 1; -} - -message StreamPricesRequest { - // Oracle base currency - string base_symbol = 1; - // Oracle quote currency - string quote_symbol = 2; - // Oracle Type - string oracle_type = 3; -} - -message StreamPricesResponse { - // The price of the oracle asset - string price = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; -} - -message StreamPricesByMarketsRequest { - // marketIDs to stream price for, empty to listen for all prices - repeated string market_ids = 1; -} - -message StreamPricesByMarketsResponse { - // The price of the oracle asset - string price = 1; - // Operation timestamp in UNIX millis. - sint64 timestamp = 2; - // marketID that the price has been updated - string market_id = 3; -} diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go index 12ee3ba2..596096f2 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go index f109be41..383bff17 100644 --- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go deleted file mode 100644 index 4277c8ee..00000000 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go +++ /dev/null @@ -1,399 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_portfolio_rpc.proto - -/* -Package injective_portfolio_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_portfolio_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectivePortfolioRPC_TokenHolders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TokenHoldersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.TokenHolders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectivePortfolioRPC_TokenHolders_0(ctx context.Context, marshaler runtime.Marshaler, server InjectivePortfolioRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TokenHoldersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.TokenHolders(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectivePortfolioRPC_AccountPortfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AccountPortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AccountPortfolio(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectivePortfolioRPC_AccountPortfolio_0(ctx context.Context, marshaler runtime.Marshaler, server InjectivePortfolioRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AccountPortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AccountPortfolio(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectivePortfolioRPC_AccountPortfolioBalances_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AccountPortfolioBalancesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AccountPortfolioBalances(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectivePortfolioRPC_AccountPortfolioBalances_0(ctx context.Context, marshaler runtime.Marshaler, server InjectivePortfolioRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AccountPortfolioBalancesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AccountPortfolioBalances(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectivePortfolioRPC_StreamAccountPortfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (InjectivePortfolioRPC_StreamAccountPortfolioClient, runtime.ServerMetadata, error) { - var protoReq StreamAccountPortfolioRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamAccountPortfolio(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -// RegisterInjectivePortfolioRPCHandlerServer registers the http handlers for service InjectivePortfolioRPC to "mux". -// UnaryRPC :call InjectivePortfolioRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectivePortfolioRPCHandlerFromEndpoint instead. -func RegisterInjectivePortfolioRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectivePortfolioRPCServer) error { - - mux.Handle("POST", pattern_InjectivePortfolioRPC_TokenHolders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolioBalances_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_StreamAccountPortfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - return nil -} - -// RegisterInjectivePortfolioRPCHandlerFromEndpoint is same as RegisterInjectivePortfolioRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectivePortfolioRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectivePortfolioRPCHandler(ctx, mux, conn) -} - -// RegisterInjectivePortfolioRPCHandler registers the http handlers for service InjectivePortfolioRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectivePortfolioRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectivePortfolioRPCHandlerClient(ctx, mux, NewInjectivePortfolioRPCClient(conn)) -} - -// RegisterInjectivePortfolioRPCHandlerClient registers the http handlers for service InjectivePortfolioRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectivePortfolioRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectivePortfolioRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectivePortfolioRPCClient" to call the correct interceptors. -func RegisterInjectivePortfolioRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectivePortfolioRPCClient) error { - - mux.Handle("POST", pattern_InjectivePortfolioRPC_TokenHolders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolioBalances_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectivePortfolioRPC_StreamAccountPortfolio_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectivePortfolioRPC_StreamAccountPortfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectivePortfolioRPC_StreamAccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectivePortfolioRPC_TokenHolders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "TokenHolders"}, "")) - - pattern_InjectivePortfolioRPC_AccountPortfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "AccountPortfolio"}, "")) - - pattern_InjectivePortfolioRPC_AccountPortfolioBalances_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "AccountPortfolioBalances"}, "")) - - pattern_InjectivePortfolioRPC_StreamAccountPortfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "StreamAccountPortfolio"}, "")) -) - -var ( - forward_InjectivePortfolioRPC_TokenHolders_0 = runtime.ForwardResponseMessage - - forward_InjectivePortfolioRPC_AccountPortfolio_0 = runtime.ForwardResponseMessage - - forward_InjectivePortfolioRPC_AccountPortfolioBalances_0 = runtime.ForwardResponseMessage - - forward_InjectivePortfolioRPC_StreamAccountPortfolio_0 = runtime.ForwardResponseStream -) diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto deleted file mode 100644 index df98146b..00000000 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto +++ /dev/null @@ -1,158 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectivePortfolioRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_portfolio_rpc; - -option go_package = "/injective_portfolio_rpcpb"; - -// InjectivePortfolioRPC defines gRPC API of Exchange Portfolio provider. -service InjectivePortfolioRPC { - // Provide a list of addresses holding a specific token - rpc TokenHolders (TokenHoldersRequest) returns (TokenHoldersResponse); - // Provide the account's portfolio - rpc AccountPortfolio (AccountPortfolioRequest) returns (AccountPortfolioResponse); - // Provide the account's portfolio balances - rpc AccountPortfolioBalances (AccountPortfolioBalancesRequest) returns (AccountPortfolioBalancesResponse); - // Stream the account's portfolio - rpc StreamAccountPortfolio (StreamAccountPortfolioRequest) returns (stream StreamAccountPortfolioResponse); -} - -message TokenHoldersRequest { - // Denom of the token - string denom = 1; - // Cursor for pagination - string cursor = 2; - sint32 limit = 3; -} - -message TokenHoldersResponse { - repeated Holder holders = 1; - // Next cursors for pagination - repeated string next_cursors = 2; -} - -message Holder { - // Account address for the holder - string account_address = 1; - // The balance of the holder - string balance = 2; -} - -message AccountPortfolioRequest { - // Account address - string account_address = 1; -} - -message AccountPortfolioResponse { - // The portfolio of this account - Portfolio portfolio = 1; -} - -message Portfolio { - // The account's portfolio address - string account_address = 1; - // Account available bank balances - repeated Coin bank_balances = 2; - // Subaccounts list - repeated SubaccountBalanceV2 subaccounts = 3; - // All positions for all subaccounts, with unrealized PNL - repeated PositionsWithUPNL positions_with_upnl = 4; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} - -message SubaccountBalanceV2 { - // Related subaccount ID - string subaccount_id = 1; - // Coin denom on the chain. - string denom = 2; - SubaccountDeposit deposit = 3; -} - -message SubaccountDeposit { - string total_balance = 1; - string available_balance = 2; -} - -message PositionsWithUPNL { - DerivativePosition position = 1; - // Unrealized PNL - string unrealized_pnl = 2; -} - -message DerivativePosition { - // Ticker of the derivative market - string ticker = 1; - // Derivative Market ID - string market_id = 2; - // The subaccountId that the position belongs to - string subaccount_id = 3; - // Direction of the position - string direction = 4; - // Quantity of the position - string quantity = 5; - // Price of the position - string entry_price = 6; - // Margin of the position - string margin = 7; - // LiquidationPrice of the position - string liquidation_price = 8; - // MarkPrice of the position - string mark_price = 9; - // Aggregate Quantity of the Reduce Only orders associated with the position - string aggregate_reduce_only_quantity = 11; - // Position updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Position created timestamp in UNIX millis. - sint64 created_at = 13; -} - -message AccountPortfolioBalancesRequest { - // Account address - string account_address = 1; -} - -message AccountPortfolioBalancesResponse { - // The portfolio balances of this account - PortfolioBalances portfolio = 1; -} - -message PortfolioBalances { - // The account's portfolio address - string account_address = 1; - // Account available bank balances - repeated Coin bank_balances = 2; - // Subaccounts list - repeated SubaccountBalanceV2 subaccounts = 3; -} - -message StreamAccountPortfolioRequest { - // The account's portfolio address - string account_address = 1; - // Related subaccount ID - string subaccount_id = 2; - string type = 3; -} - -message StreamAccountPortfolioResponse { - // type of portfolio entry - string type = 1; - // denom of portfolio entry - string denom = 2; - // amount of portfolio entry - string amount = 3; - // subaccount id of portfolio entry - string subaccount_id = 4; - // Operation timestamp in UNIX millis. - sint64 timestamp = 5; -} diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go index 34363beb..b9246062 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go index 12b1c14e..d7c11241 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go deleted file mode 100644 index 4abea1de..00000000 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go +++ /dev/null @@ -1,1427 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_spot_exchange_rpc.proto - -/* -Package injective_spot_exchange_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_spot_exchange_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveSpotExchangeRPC_Markets_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Markets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_Markets_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Markets(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_Market_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Market(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_Market_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MarketRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Market(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamMarkets_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamMarketsClient, runtime.ServerMetadata, error) { - var protoReq StreamMarketsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamMarkets(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_OrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderbookV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_OrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderbookV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_OrderbooksV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbooksV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrderbooksV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_OrderbooksV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrderbooksV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrderbooksV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamOrderbookV2Client, runtime.ServerMetadata, error) { - var protoReq StreamOrderbookV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrderbookV2(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, runtime.ServerMetadata, error) { - var protoReq StreamOrderbookUpdateRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrderbookUpdate(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_Orders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Orders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_Orders_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Orders(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamOrders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamOrdersClient, runtime.ServerMetadata, error) { - var protoReq StreamOrdersRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrders(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_Trades_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Trades(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_Trades_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Trades(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamTrades_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamTradesClient, runtime.ServerMetadata, error) { - var protoReq StreamTradesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamTrades(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_TradesV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.TradesV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_TradesV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq TradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.TradesV2(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamTradesV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamTradesV2Client, runtime.ServerMetadata, error) { - var protoReq StreamTradesV2Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamTradesV2(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrdersListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountOrdersList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountOrdersListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountOrdersList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountTradesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.SubaccountTradesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SubaccountTradesListRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.SubaccountTradesList(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_OrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.OrdersHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_OrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq OrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.OrdersHistory(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (InjectiveSpotExchangeRPC_StreamOrdersHistoryClient, runtime.ServerMetadata, error) { - var protoReq StreamOrdersHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.StreamOrdersHistory(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - -func request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveSpotExchangeRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AtomicSwapHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AtomicSwapHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveSpotExchangeRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AtomicSwapHistoryRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AtomicSwapHistory(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveSpotExchangeRPCHandlerServer registers the http handlers for service InjectiveSpotExchangeRPC to "mux". -// UnaryRPC :call InjectiveSpotExchangeRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveSpotExchangeRPCHandlerFromEndpoint instead. -func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveSpotExchangeRPCServer) error { - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Markets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Market_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Market_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamMarkets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrderbooksV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrderbookV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Orders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Trades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamTrades_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_TradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamTradesV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_SubaccountOrdersList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_SubaccountTradesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrdersHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_AtomicSwapHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveSpotExchangeRPCHandlerFromEndpoint is same as RegisterInjectiveSpotExchangeRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveSpotExchangeRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveSpotExchangeRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveSpotExchangeRPCHandler registers the http handlers for service InjectiveSpotExchangeRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveSpotExchangeRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveSpotExchangeRPCHandlerClient(ctx, mux, NewInjectiveSpotExchangeRPCClient(conn)) -} - -// RegisterInjectiveSpotExchangeRPCHandlerClient registers the http handlers for service InjectiveSpotExchangeRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveSpotExchangeRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveSpotExchangeRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveSpotExchangeRPCClient" to call the correct interceptors. -func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveSpotExchangeRPCClient) error { - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Markets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Market_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_Market_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamMarkets_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrderbooksV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrderbookV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Orders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrders_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrders_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamOrders_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_Trades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamTrades_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamTrades_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamTrades_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_TradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamTradesV2_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamTradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamTradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_SubaccountOrdersList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_SubaccountTradesList_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_OrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_StreamOrdersHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveSpotExchangeRPC_AtomicSwapHistory_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveSpotExchangeRPC_Markets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "Markets"}, "")) - - pattern_InjectiveSpotExchangeRPC_Market_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "Market"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamMarkets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamMarkets"}, "")) - - pattern_InjectiveSpotExchangeRPC_OrderbookV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "OrderbookV2"}, "")) - - pattern_InjectiveSpotExchangeRPC_OrderbooksV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "OrderbooksV2"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamOrderbookV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamOrderbookV2"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamOrderbookUpdate"}, "")) - - pattern_InjectiveSpotExchangeRPC_Orders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "Orders"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamOrders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamOrders"}, "")) - - pattern_InjectiveSpotExchangeRPC_Trades_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "Trades"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamTrades_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamTrades"}, "")) - - pattern_InjectiveSpotExchangeRPC_TradesV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "TradesV2"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamTradesV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamTradesV2"}, "")) - - pattern_InjectiveSpotExchangeRPC_SubaccountOrdersList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "SubaccountOrdersList"}, "")) - - pattern_InjectiveSpotExchangeRPC_SubaccountTradesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "SubaccountTradesList"}, "")) - - pattern_InjectiveSpotExchangeRPC_OrdersHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "OrdersHistory"}, "")) - - pattern_InjectiveSpotExchangeRPC_StreamOrdersHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "StreamOrdersHistory"}, "")) - - pattern_InjectiveSpotExchangeRPC_AtomicSwapHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_spot_exchange_rpc.InjectiveSpotExchangeRPC", "AtomicSwapHistory"}, "")) -) - -var ( - forward_InjectiveSpotExchangeRPC_Markets_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_Market_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamMarkets_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_OrderbookV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_OrderbooksV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamOrderbookV2_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_Orders_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamOrders_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_Trades_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamTrades_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_TradesV2_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamTradesV2_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_OrdersHistory_0 = runtime.ForwardResponseMessage - - forward_InjectiveSpotExchangeRPC_StreamOrdersHistory_0 = runtime.ForwardResponseStream - - forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto deleted file mode 100644 index feba38c6..00000000 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto +++ /dev/null @@ -1,733 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveSpotExchangeRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_spot_exchange_rpc; - -option go_package = "/injective_spot_exchange_rpcpb"; - -// InjectiveSpotExchangeRPC defines gRPC API of Spot Exchange provider. -service InjectiveSpotExchangeRPC { - // Get a list of Spot Markets - rpc Markets (MarketsRequest) returns (MarketsResponse); - // Get details of a single spot market - rpc Market (MarketRequest) returns (MarketResponse); - // Stream live updates of selected spot markets - rpc StreamMarkets (StreamMarketsRequest) returns (stream StreamMarketsResponse); - // Orderbook of a Spot Market - rpc OrderbookV2 (OrderbookV2Request) returns (OrderbookV2Response); - // Orderbook of Spot Markets - rpc OrderbooksV2 (OrderbooksV2Request) returns (OrderbooksV2Response); - // Stream live snapshot updates of selected spot market orderbook - rpc StreamOrderbookV2 (StreamOrderbookV2Request) returns (stream StreamOrderbookV2Response); - // Stream live level updates of selected spot market orderbook - rpc StreamOrderbookUpdate (StreamOrderbookUpdateRequest) returns (stream StreamOrderbookUpdateResponse); - // Orders of a Spot Market - rpc Orders (OrdersRequest) returns (OrdersResponse); - // Stream updates to individual orders of a Spot Market - rpc StreamOrders (StreamOrdersRequest) returns (stream StreamOrdersResponse); - // Trades of a Spot Market - rpc Trades (TradesRequest) returns (TradesResponse); - // Stream newly executed trades from Spot Market - rpc StreamTrades (StreamTradesRequest) returns (stream StreamTradesResponse); - // Trades of a Spot Market - rpc TradesV2 (TradesV2Request) returns (TradesV2Response); - // Stream newly executed trades from Spot Market - rpc StreamTradesV2 (StreamTradesV2Request) returns (stream StreamTradesV2Response); - // List orders posted from this subaccount - rpc SubaccountOrdersList (SubaccountOrdersListRequest) returns (SubaccountOrdersListResponse); - // List trades executed by this subaccount - rpc SubaccountTradesList (SubaccountTradesListRequest) returns (SubaccountTradesListResponse); - // Lists history orders posted from this subaccount - rpc OrdersHistory (OrdersHistoryRequest) returns (OrdersHistoryResponse); - // Stream updates to historical orders of a spot Market - rpc StreamOrdersHistory (StreamOrdersHistoryRequest) returns (stream StreamOrdersHistoryResponse); - // Get historical atomic swaps - rpc AtomicSwapHistory (AtomicSwapHistoryRequest) returns (AtomicSwapHistoryResponse); -} - -message MarketsRequest { - // Filter by market status - string market_status = 1; - // Filter by the Coin denomination of the base currency - string base_denom = 2; - // Filter by the Coin denomination of the quote currency - string quote_denom = 3; - repeated string market_statuses = 4; -} - -message MarketsResponse { - // Spot Markets list - repeated SpotMarketInfo markets = 1; -} - -message SpotMarketInfo { - // SpotMarket ID is keccak265(baseDenom || quoteDenom) - string market_id = 1; - // The status of the market - string market_status = 2; - // A name of the pair in format AAA/BBB, where AAA is base asset, BBB is quote -// asset. - string ticker = 3; - // Coin denom used for the base asset. - string base_denom = 4; - // Token metadata for base asset - TokenMeta base_token_meta = 5; - // Coin denom used for the quote asset. - string quote_denom = 6; - // Token metadata for quote asset - TokenMeta quote_token_meta = 7; - // Defines the fee percentage makers pay when trading (in quote asset) - string maker_fee_rate = 8; - // Defines the fee percentage takers pay when trading (in quote asset) - string taker_fee_rate = 9; - // Percentage of the transaction fee shared with the service provider - string service_provider_fee = 10; - // Defines the minimum required tick size for the order's price - string min_price_tick_size = 11; - // Defines the minimum required tick size for the order's quantity - string min_quantity_tick_size = 12; - // Minimum notional value for the market - string min_notional = 13; -} - -message TokenMeta { - // Token full name - string name = 1; - // Token contract address (native or not) - string address = 2; - // Token symbol short name - string symbol = 3; - // URL to the logo image - string logo = 4; - // Token decimals - sint32 decimals = 5; - // Token metadata fetched timestamp in UNIX millis. - sint64 updated_at = 6; -} - -message MarketRequest { - // MarketId of the market we want to fetch - string market_id = 1; -} - -message MarketResponse { - // Info about particular spot market - SpotMarketInfo market = 1; -} - -message StreamMarketsRequest { - // List of market IDs for updates streaming, empty means 'ALL' spot markets - repeated string market_ids = 1; -} - -message StreamMarketsResponse { - // Info about particular spot market - SpotMarketInfo market = 1; - // Update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message OrderbookV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; -} - -message OrderbookV2Response { - // Orderbook of a particular spot market - SpotLimitOrderbookV2 orderbook = 1; -} - -message SpotLimitOrderbookV2 { - // Array of price levels for buys - repeated PriceLevel buys = 1; - // Array of price levels for sells - repeated PriceLevel sells = 2; - // market orderbook sequence - uint64 sequence = 3; - // Last update timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message PriceLevel { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message OrderbooksV2Request { - // MarketIds of the markets - repeated string market_ids = 1; -} - -message OrderbooksV2Response { - repeated SingleSpotLimitOrderbookV2 orderbooks = 1; -} - -message SingleSpotLimitOrderbookV2 { - // market's ID - string market_id = 1; - // Orderbook of the market - SpotLimitOrderbookV2 orderbook = 2; -} - -message StreamOrderbookV2Request { - // List of market IDs for orderbook streaming, empty means 'ALL' spot markets - repeated string market_ids = 1; -} - -message StreamOrderbookV2Response { - // Orderbook of a Spot Market - SpotLimitOrderbookV2 orderbook = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; - // MarketId of the market's orderbook - string market_id = 4; -} - -message StreamOrderbookUpdateRequest { - // List of market IDs for orderbook streaming, empty means 'ALL' spot markets - repeated string market_ids = 1; -} - -message StreamOrderbookUpdateResponse { - // Orderbook level updates of a Spot Market - OrderbookLevelUpdates orderbook_level_updates = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; - // MarketId of the market's orderbook - string market_id = 4; -} - -message OrderbookLevelUpdates { - // market's ID - string market_id = 1; - // orderbook update sequence - uint64 sequence = 2; - // buy levels - repeated PriceLevelUpdate buys = 3; - // sell levels - repeated PriceLevelUpdate sells = 4; - // updates timestamp - sint64 updated_at = 5; -} - -message PriceLevelUpdate { - // Price number of the price level. - string price = 1; - // Quantity of the price level. - string quantity = 2; - // Price level status. - bool is_active = 3; - // Price level last updated timestamp in UNIX millis. - sint64 timestamp = 4; -} - -message OrdersRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Look for specific order side - string order_side = 2; - // Look for specific subaccountId of an order - string subaccount_id = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 5; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 7; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 8; - // Should include inactive orders - bool include_inactive = 9; - // Choose to return subaccount total orders - bool subaccount_total_orders = 10; - // TradeId of the order we want to fetch - string trade_id = 11; - // Client order ID - string cid = 12; -} - -message OrdersResponse { - repeated SpotLimitOrder orders = 1; - Paging paging = 2; -} - -message SpotLimitOrder { - // Hash of the order - string order_hash = 1; - // The side of the order - string order_side = 2; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // Price of the order - string price = 5; - // Quantity of the order - string quantity = 6; - // The amount of the quantity remaining unfilled - string unfilled_quantity = 7; - // Trigger price is the trigger price used by stop/take orders. 0 if the -// trigger price is not set. - string trigger_price = 8; - // Fee recipient address - string fee_recipient = 9; - // Order state - string state = 10; - // Order committed timestamp in UNIX millis. - sint64 created_at = 11; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 12; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 13; - // Custom client order ID - string cid = 14; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message StreamOrdersRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Look for specific order side - string order_side = 2; - // Look for specific subaccountId of an order - string subaccount_id = 3; - // Skip will skip the first n item from the result - uint64 skip = 4; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 5; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 7; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 8; - // Should include inactive orders - bool include_inactive = 9; - // Choose to return subaccount total orders - bool subaccount_total_orders = 10; - // TradeId of the order we want to fetch - string trade_id = 11; - // Client order ID - string cid = 12; -} - -message StreamOrdersResponse { - // Updated market order - SpotLimitOrder order = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message TradesRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the item result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Fee recipient address - string fee_recipient = 15; -} - -message TradesResponse { - // Trades of a Spot Market - repeated SpotTrade trades = 1; - // Paging indicates pages response is on - Paging paging = 2; -} - -message SpotTrade { - // Maker order hash. - string order_hash = 1; - // The subaccountId that executed the trade - string subaccount_id = 2; - // The ID of the market that this trade is in - string market_id = 3; - // The execution type of the trade - string trade_execution_type = 4; - // The direction the trade - string trade_direction = 5; - // Price level at which trade has been executed - PriceLevel price = 6; - // The fee associated with the trade (quote asset denom) - string fee = 7; - // Timestamp of trade execution in UNIX millis - sint64 executed_at = 8; - // Fee recipient address - string fee_recipient = 9; - // A unique string that helps differentiate between trades - string trade_id = 10; - // Trade's execution side, marker/taker - string execution_side = 11; - // Custom client order ID - string cid = 12; -} - -message StreamTradesRequest { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the item result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Fee recipient address - string fee_recipient = 15; -} - -message StreamTradesResponse { - // New spot market trade - SpotTrade trade = 1; - // Executed trades update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message TradesV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the item result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Fee recipient address - string fee_recipient = 15; -} - -message TradesV2Response { - // Trades of a Spot Market - repeated SpotTrade trades = 1; - // Paging indicates pages response is on - Paging paging = 2; -} - -message StreamTradesV2Request { - // MarketId of the market's orderbook we want to fetch - string market_id = 1; - // Filter by execution side of the trade - string execution_side = 2; - // Filter by direction the trade - string direction = 3; - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 4; - // Skip will skip the first n item from the item result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned. - sint32 limit = 6; - // The starting timestamp in UNIX milliseconds that the trades must be equal or -// older than - sint64 start_time = 7; - // The ending timestamp in UNIX milliseconds that the trades must be equal or -// younger than - sint64 end_time = 8; - // MarketIds of the markets of which we want to get trades - repeated string market_ids = 9; - // Subaccount ids of traders we want to get trades - repeated string subaccount_ids = 10; - repeated string execution_types = 11; - // Filter by the tradeId of the trade - string trade_id = 12; - // Account address - string account_address = 13; - // Client order ID - string cid = 14; - // Fee recipient address - string fee_recipient = 15; -} - -message StreamTradesV2Response { - // New spot market trade - SpotTrade trade = 1; - // Executed trades update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message SubaccountOrdersListRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; -} - -message SubaccountOrdersListResponse { - repeated SpotLimitOrder orders = 1; - Paging paging = 2; -} - -message SubaccountTradesListRequest { - // SubaccountId of the trader we want to get the trades from - string subaccount_id = 1; - // Filter trades by market ID - string market_id = 2; - // Filter by execution type of trades - string execution_type = 3; - // Filter by direction trades - string direction = 4; - // Skip will skip the first n item from the result - uint64 skip = 5; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 6; -} - -message SubaccountTradesListResponse { - // List of spot market trades - repeated SpotTrade trades = 1; -} - -message OrdersHistoryRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // Skip will skip the first n item from the result - uint64 skip = 3; - // Limit is used to specify the maximum number of items to be returned - sint32 limit = 4; - // filter by order types - repeated string order_types = 5; - // order side filter - string direction = 6; - // Search for orders which createdAt >= startTime, time in millisecond - sint64 start_time = 7; - // Search for orders which createdAt <= endTime, time in millisecond - sint64 end_time = 8; - // Filter by order state - string state = 9; - repeated string execution_types = 10; - repeated string market_ids = 11; - // TradeId of the order we want to fetch - string trade_id = 12; - // Return only orders for active markets - bool active_markets_only = 13; - // Client order ID - string cid = 14; -} - -message OrdersHistoryResponse { - // List of history spot orders - repeated SpotOrderHistory orders = 1; - Paging paging = 2; -} - -message SpotOrderHistory { - // Hash of the order - string order_hash = 1; - // Spot Market ID is keccak265(baseDenom + quoteDenom) - string market_id = 2; - // active state of the order - bool is_active = 3; - // The subaccountId that this order belongs to - string subaccount_id = 4; - // The execution type - string execution_type = 5; - // The side of the order - string order_type = 6; - // Price of the order - string price = 7; - // Trigger price - string trigger_price = 8; - // Quantity of the order - string quantity = 9; - // Filled amount - string filled_quantity = 10; - // Order state - string state = 11; - // Order committed timestamp in UNIX millis. - sint64 created_at = 12; - // Order updated timestamp in UNIX millis. - sint64 updated_at = 13; - // Order direction (order side) - string direction = 14; - // Transaction Hash where order is created. Not all orders have this field - string tx_hash = 15; - // Custom client order ID - string cid = 16; -} - -message StreamOrdersHistoryRequest { - // subaccount ID to filter orders for specific subaccount - string subaccount_id = 1; - // Market ID to filter orders for specific market - string market_id = 2; - // filter by order types - repeated string order_types = 3; - // order side filter - string direction = 4; - // Filter by order state - string state = 5; - repeated string execution_types = 6; -} - -message StreamOrdersHistoryResponse { - // Updated order - SpotOrderHistory order = 1; - // Order update type - string operation_type = 2; - // Operation timestamp in UNIX millis. - sint64 timestamp = 3; -} - -message AtomicSwapHistoryRequest { - // sender of the atomic swap - string address = 1; - // atomic swap contract address to filter - string contract_address = 2; - // skip some swaps - sint32 skip = 3; - // limit number of swaps returned by this API - sint32 limit = 4; - // lowerbound of atomic swap index - sint32 from_number = 5; - // upperbound of atomic swap index - sint32 to_number = 6; -} - -message AtomicSwapHistoryResponse { - // Paging indicates total number of records with this filter - Paging paging = 1; - // swap data - repeated AtomicSwap data = 2; -} - -message AtomicSwap { - // executor of the swap - string sender = 1; - // swap route - string route = 2; - // source coin - Coin source_coin = 3; - // destination received coin - Coin dest_coin = 4; - // fees of each steps in route - repeated Coin fees = 5; - // contract address that executes to make this swap - string contract_address = 6; - // Numerical index by sender to use in pagination from_number and to_number - sint32 index_by_sender = 7; - // Numerical index by sender + acontract to use in pagination from_number and -// to_number, that support contract filter - sint32 index_by_sender_contract = 8; - // transaction hash of the swap - string tx_hash = 9; - // transaction timestamp of the swap - sint64 executed_at = 10; - // Refunded amount of the swap - string refund_amount = 11; -} - -message Coin { - // Denom of the coin - string denom = 1; - string amount = 2; -} diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go index 1c19aa31..f3726468 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -351,6 +351,18 @@ type TradingStrategy struct { Performance string `protobuf:"bytes,43,opt,name=performance,proto3" json:"performance,omitempty"` // Return on investment of the trading strategy Roi string `protobuf:"bytes,44,opt,name=roi,proto3" json:"roi,omitempty"` + // Initial base price of the trading strategy + InitialBasePrice string `protobuf:"bytes,45,opt,name=initial_base_price,json=initialBasePrice,proto3" json:"initial_base_price,omitempty"` + // Initial quote price of the trading strategy + InitialQuotePrice string `protobuf:"bytes,46,opt,name=initial_quote_price,json=initialQuotePrice,proto3" json:"initial_quote_price,omitempty"` + // Current base price of the trading strategy + CurrentBasePrice string `protobuf:"bytes,47,opt,name=current_base_price,json=currentBasePrice,proto3" json:"current_base_price,omitempty"` + // Current quote price of the trading strategy + CurrentQuotePrice string `protobuf:"bytes,48,opt,name=current_quote_price,json=currentQuotePrice,proto3" json:"current_quote_price,omitempty"` + // Final base price of the trading strategy + FinalBasePrice string `protobuf:"bytes,49,opt,name=final_base_price,json=finalBasePrice,proto3" json:"final_base_price,omitempty"` + // Final quote price of the trading strategy + FinalQuotePrice string `protobuf:"bytes,50,opt,name=final_quote_price,json=finalQuotePrice,proto3" json:"final_quote_price,omitempty"` } func (x *TradingStrategy) Reset() { @@ -693,6 +705,48 @@ func (x *TradingStrategy) GetRoi() string { return "" } +func (x *TradingStrategy) GetInitialBasePrice() string { + if x != nil { + return x.InitialBasePrice + } + return "" +} + +func (x *TradingStrategy) GetInitialQuotePrice() string { + if x != nil { + return x.InitialQuotePrice + } + return "" +} + +func (x *TradingStrategy) GetCurrentBasePrice() string { + if x != nil { + return x.CurrentBasePrice + } + return "" +} + +func (x *TradingStrategy) GetCurrentQuotePrice() string { + if x != nil { + return x.CurrentQuotePrice + } + return "" +} + +func (x *TradingStrategy) GetFinalBasePrice() string { + if x != nil { + return x.FinalBasePrice + } + return "" +} + +func (x *TradingStrategy) GetFinalQuotePrice() string { + if x != nil { + return x.FinalQuotePrice + } + return "" +} + type ExitConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1056,7 +1110,7 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xc4, 0x0d, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xd6, 0x0f, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, @@ -1164,63 +1218,80 @@ var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, - 0x69, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x6f, 0x69, 0x22, 0x48, 0x0a, 0x0a, - 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, - 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, - 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, - 0x73, 0x12, 0x47, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, - 0x22, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x6f, 0x69, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x42, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, + 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x31, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x48, + 0x0a, 0x0a, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x65, 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, + 0x78, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, + 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, + 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, + 0x74, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x67, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x65, 0x73, 0x32, 0x8c, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, + 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1d, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x76, 0x6c, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x70, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x22, 0x61, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x65, 0x73, 0x32, 0x8c, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go index db5c53ae..3f34c2e6 100644 --- a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v4.24.4 // source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go deleted file mode 100644 index cbd4dcd2..00000000 --- a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go +++ /dev/null @@ -1,256 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: injective_trading_rpc.proto - -/* -Package injective_trading_rpcpb is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package injective_trading_rpcpb - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -func request_InjectiveTradingRPC_ListTradingStrategies_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveTradingRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListTradingStrategiesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ListTradingStrategies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveTradingRPC_ListTradingStrategies_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveTradingRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ListTradingStrategiesRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ListTradingStrategies(ctx, &protoReq) - return msg, metadata, err - -} - -func request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveTradingRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTradingStatsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetTradingStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_InjectiveTradingRPC_GetTradingStats_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveTradingRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetTradingStatsRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetTradingStats(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterInjectiveTradingRPCHandlerServer registers the http handlers for service InjectiveTradingRPC to "mux". -// UnaryRPC :call InjectiveTradingRPCServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveTradingRPCHandlerFromEndpoint instead. -func RegisterInjectiveTradingRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveTradingRPCServer) error { - - mux.Handle("POST", pattern_InjectiveTradingRPC_ListTradingStrategies_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterInjectiveTradingRPCHandlerFromEndpoint is same as RegisterInjectiveTradingRPCHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInjectiveTradingRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterInjectiveTradingRPCHandler(ctx, mux, conn) -} - -// RegisterInjectiveTradingRPCHandler registers the http handlers for service InjectiveTradingRPC to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterInjectiveTradingRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInjectiveTradingRPCHandlerClient(ctx, mux, NewInjectiveTradingRPCClient(conn)) -} - -// RegisterInjectiveTradingRPCHandlerClient registers the http handlers for service InjectiveTradingRPC -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveTradingRPCClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveTradingRPCClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InjectiveTradingRPCClient" to call the correct interceptors. -func RegisterInjectiveTradingRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveTradingRPCClient) error { - - mux.Handle("POST", pattern_InjectiveTradingRPC_ListTradingStrategies_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_InjectiveTradingRPC_GetTradingStats_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/GetTradingStats")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_InjectiveTradingRPC_GetTradingStats_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "ListTradingStrategies"}, "")) - - pattern_InjectiveTradingRPC_GetTradingStats_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_trading_rpc.InjectiveTradingRPC", "GetTradingStats"}, "")) -) - -var ( - forward_InjectiveTradingRPC_ListTradingStrategies_0 = runtime.ForwardResponseMessage - - forward_InjectiveTradingRPC_GetTradingStats_0 = runtime.ForwardResponseMessage -) diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.proto b/exchange/trading_rpc/pb/injective_trading_rpc.proto deleted file mode 100644 index 681ff769..00000000 --- a/exchange/trading_rpc/pb/injective_trading_rpc.proto +++ /dev/null @@ -1,193 +0,0 @@ -// Code generated with goa v3.7.0, DO NOT EDIT. -// -// InjectiveTradingRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -syntax = "proto3"; - -package injective_trading_rpc; - -option go_package = "/injective_trading_rpcpb"; - -// InjectiveTradingStrategiesRPC defined a gRPC service for Injective Trading -// Strategies. -service InjectiveTradingRPC { - // Lists all trading strategies - rpc ListTradingStrategies (ListTradingStrategiesRequest) returns (ListTradingStrategiesResponse); - // GetStats returns global statistics in the last 24hs - rpc GetTradingStats (GetTradingStatsRequest) returns (GetTradingStatsResponse); -} - -message ListTradingStrategiesRequest { - string state = 1; - // MarketId of the trading strategy - string market_id = 2; - // subaccount ID to filter by - string subaccount_id = 3; - // Account address - string account_address = 4; - // Indicates whether the trading strategy is pending execution - bool pending_execution = 5; - // The starting timestamp in UNIX milliseconds for the creation time of the -// trading strategy - sint64 start_time = 6; - // The ending timestamp in UNIX milliseconds for the creation time of the -// trading strategy - sint64 end_time = 7; - sint32 limit = 8; - uint64 skip = 9; - // Filter by strategy type - repeated string strategy_type = 10; - // Filter by market type - string market_type = 11; - // The last executed timestamp in UNIX milliseconds for the last executed time -// of the trading strategy - sint64 last_executed_time = 12; - // Include TVL in the response - bool with_tvl = 13; - // Indicates whether the trading strategy is a trailing strategy - bool is_trailing_strategy = 14; - // Indicates whether the trading strategy performance should be included in the -// response - bool with_performance = 15; -} - -message ListTradingStrategiesResponse { - // The trading strategies - repeated TradingStrategy strategies = 1; - Paging paging = 2; -} - -message TradingStrategy { - string state = 1; - // MarketId of the trading strategy - string market_id = 2; - // subaccount ID of the trading strategy - string subaccount_id = 3; - // Account address - string account_address = 4; - // Contract address - string contract_address = 5; - // Execution price of the trading strategy - string execution_price = 6; - // Base quantity of the trading strategy - string base_quantity = 7; - // Quote quantity of the trading strategy - string quote_quantity = 20; - // Lower bound of the trading strategy - string lower_bound = 8; - // Upper bound of the trading strategy - string upper_bound = 9; - // Stop loss limit of the trading strategy - string stop_loss = 10; - // Take profit limit of the trading strategy - string take_profit = 11; - // Swap fee of the trading strategy - string swap_fee = 12; - // Base deposit at the time of closing the trading strategy - string base_deposit = 17; - // Quote deposit at the time of closing the trading strategy - string quote_deposit = 18; - // Market mid price at the time of closing the trading strategy - string market_mid_price = 19; - // Subscription quote quantity of the trading strategy - string subscription_quote_quantity = 21; - // Subscription base quantity of the trading strategy - string subscription_base_quantity = 22; - // Number of grid levels of the trading strategy - string number_of_grid_levels = 23; - // Indicates whether the trading strategy should exit with quote only - bool should_exit_with_quote_only = 24; - // Indicates the reason for stopping the trading strategy - string stop_reason = 25; - // Indicates whether the trading strategy is pending execution - bool pending_execution = 26; - // Block height when the strategy was created. - sint64 created_height = 13; - // Block height when the strategy was removed. - sint64 removed_height = 14; - // UpdatedAt timestamp in UNIX millis. - sint64 created_at = 15; - // UpdatedAt timestamp in UNIX millis. - sint64 updated_at = 16; - // Indicate how bot will convert funds (into base or quote or keep as is) after -// strategy ended - string exit_type = 27; - // Exit config for stop loss - ExitConfig stop_loss_config = 28; - // Exit config for take profit - ExitConfig take_profit_config = 29; - // Strategy type: arithmetic, geometric... - string strategy_type = 30; - // Version of the contract - string contract_version = 31; - // Name of the contract - string contract_name = 32; - // Type of the market - string market_type = 33; - // lastExecutedAt timestamp in UNIX millis. - sint64 last_executed_at = 34; - // trailing up price - string trail_up_price = 35; - // trailing down price - string trail_down_price = 36; - // trailing up counter - sint64 trail_up_counter = 37; - // trailing down counter - sint64 trail_down_counter = 38; - // TVL of the trading strategy - string tvl = 39; - // PnL of the trading strategy - string pnl = 40; - // PnL percentage of the trading strategy - string pnl_perc = 41; - // pnlUpdatedAt timestamp in UNIX millis. - sint64 pnl_updated_at = 42; - // Indicates the performance of the trading strategy - string performance = 43; - // Return on investment of the trading strategy - string roi = 44; -} - -message ExitConfig { - // strategy exit type (stopLoss/takeProfit) - string exit_type = 1; - // strategy stopLoss/takeProfit price - string exit_price = 2; -} -// Paging defines the structure for required params for handling pagination -message Paging { - // total number of txs saved in database - sint64 total = 1; - // can be either block height or index num - sint32 from = 2; - // can be either block height or index num - sint32 to = 3; - // count entries by subaccount, serving some places on helix - sint64 count_by_subaccount = 4; - // array of tokens to navigate to the next pages - repeated string next = 5; -} - -message GetTradingStatsRequest { -} - -message GetTradingStatsResponse { - // Total of unique active trading strategies - uint64 active_trading_strategies = 1; - // Total number of created trading strategies - uint64 total_trading_strategies_created = 2; - // Total TVL of all active trading strategies - string total_tvl = 3; - // Market stats - repeated Market markets = 4; -} - -message Market { - // MarketId of the trading strategy - string market_id = 1; - // Total of unique active trading strategies - uint64 active_trading_strategies = 2; -} diff --git a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go deleted file mode 100644 index 1a3cc73b..00000000 --- a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go +++ /dev/null @@ -1,181 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go -// -// Generated by this command: -// -// mockgen -source=api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go -destination=api/gen/grpc/injective_trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go -package=injective_trading_rpcpb -// - -// Package injective_trading_rpcpb is a generated GoMock package. -package injective_trading_rpcpb - -import ( - context "context" - reflect "reflect" - - gomock "go.uber.org/mock/gomock" - grpc "google.golang.org/grpc" -) - -// MockInjectiveTradingRPCClient is a mock of InjectiveTradingRPCClient interface. -type MockInjectiveTradingRPCClient struct { - ctrl *gomock.Controller - recorder *MockInjectiveTradingRPCClientMockRecorder -} - -// MockInjectiveTradingRPCClientMockRecorder is the mock recorder for MockInjectiveTradingRPCClient. -type MockInjectiveTradingRPCClientMockRecorder struct { - mock *MockInjectiveTradingRPCClient -} - -// NewMockInjectiveTradingRPCClient creates a new mock instance. -func NewMockInjectiveTradingRPCClient(ctrl *gomock.Controller) *MockInjectiveTradingRPCClient { - mock := &MockInjectiveTradingRPCClient{ctrl: ctrl} - mock.recorder = &MockInjectiveTradingRPCClientMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockInjectiveTradingRPCClient) EXPECT() *MockInjectiveTradingRPCClientMockRecorder { - return m.recorder -} - -// GetTradingStats mocks base method. -func (m *MockInjectiveTradingRPCClient) GetTradingStats(ctx context.Context, in *GetTradingStatsRequest, opts ...grpc.CallOption) (*GetTradingStatsResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "GetTradingStats", varargs...) - ret0, _ := ret[0].(*GetTradingStatsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTradingStats indicates an expected call of GetTradingStats. -func (mr *MockInjectiveTradingRPCClientMockRecorder) GetTradingStats(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).GetTradingStats), varargs...) -} - -// ListTradingStrategies mocks base method. -func (m *MockInjectiveTradingRPCClient) ListTradingStrategies(ctx context.Context, in *ListTradingStrategiesRequest, opts ...grpc.CallOption) (*ListTradingStrategiesResponse, error) { - m.ctrl.T.Helper() - varargs := []any{ctx, in} - for _, a := range opts { - varargs = append(varargs, a) - } - ret := m.ctrl.Call(m, "ListTradingStrategies", varargs...) - ret0, _ := ret[0].(*ListTradingStrategiesResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCClientMockRecorder) ListTradingStrategies(ctx, in any, opts ...any) *gomock.Call { - mr.mock.ctrl.T.Helper() - varargs := append([]any{ctx, in}, opts...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCClient)(nil).ListTradingStrategies), varargs...) -} - -// MockInjectiveTradingRPCServer is a mock of InjectiveTradingRPCServer interface. -type MockInjectiveTradingRPCServer struct { - ctrl *gomock.Controller - recorder *MockInjectiveTradingRPCServerMockRecorder -} - -// MockInjectiveTradingRPCServerMockRecorder is the mock recorder for MockInjectiveTradingRPCServer. -type MockInjectiveTradingRPCServerMockRecorder struct { - mock *MockInjectiveTradingRPCServer -} - -// NewMockInjectiveTradingRPCServer creates a new mock instance. -func NewMockInjectiveTradingRPCServer(ctrl *gomock.Controller) *MockInjectiveTradingRPCServer { - mock := &MockInjectiveTradingRPCServer{ctrl: ctrl} - mock.recorder = &MockInjectiveTradingRPCServerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockInjectiveTradingRPCServer) EXPECT() *MockInjectiveTradingRPCServerMockRecorder { - return m.recorder -} - -// GetTradingStats mocks base method. -func (m *MockInjectiveTradingRPCServer) GetTradingStats(arg0 context.Context, arg1 *GetTradingStatsRequest) (*GetTradingStatsResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTradingStats", arg0, arg1) - ret0, _ := ret[0].(*GetTradingStatsResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetTradingStats indicates an expected call of GetTradingStats. -func (mr *MockInjectiveTradingRPCServerMockRecorder) GetTradingStats(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTradingStats", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).GetTradingStats), arg0, arg1) -} - -// ListTradingStrategies mocks base method. -func (m *MockInjectiveTradingRPCServer) ListTradingStrategies(arg0 context.Context, arg1 *ListTradingStrategiesRequest) (*ListTradingStrategiesResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ListTradingStrategies", arg0, arg1) - ret0, _ := ret[0].(*ListTradingStrategiesResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ListTradingStrategies indicates an expected call of ListTradingStrategies. -func (mr *MockInjectiveTradingRPCServerMockRecorder) ListTradingStrategies(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListTradingStrategies", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).ListTradingStrategies), arg0, arg1) -} - -// mustEmbedUnimplementedInjectiveTradingRPCServer mocks base method. -func (m *MockInjectiveTradingRPCServer) mustEmbedUnimplementedInjectiveTradingRPCServer() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "mustEmbedUnimplementedInjectiveTradingRPCServer") -} - -// mustEmbedUnimplementedInjectiveTradingRPCServer indicates an expected call of mustEmbedUnimplementedInjectiveTradingRPCServer. -func (mr *MockInjectiveTradingRPCServerMockRecorder) mustEmbedUnimplementedInjectiveTradingRPCServer() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedInjectiveTradingRPCServer", reflect.TypeOf((*MockInjectiveTradingRPCServer)(nil).mustEmbedUnimplementedInjectiveTradingRPCServer)) -} - -// MockUnsafeInjectiveTradingRPCServer is a mock of UnsafeInjectiveTradingRPCServer interface. -type MockUnsafeInjectiveTradingRPCServer struct { - ctrl *gomock.Controller - recorder *MockUnsafeInjectiveTradingRPCServerMockRecorder -} - -// MockUnsafeInjectiveTradingRPCServerMockRecorder is the mock recorder for MockUnsafeInjectiveTradingRPCServer. -type MockUnsafeInjectiveTradingRPCServerMockRecorder struct { - mock *MockUnsafeInjectiveTradingRPCServer -} - -// NewMockUnsafeInjectiveTradingRPCServer creates a new mock instance. -func NewMockUnsafeInjectiveTradingRPCServer(ctrl *gomock.Controller) *MockUnsafeInjectiveTradingRPCServer { - mock := &MockUnsafeInjectiveTradingRPCServer{ctrl: ctrl} - mock.recorder = &MockUnsafeInjectiveTradingRPCServerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockUnsafeInjectiveTradingRPCServer) EXPECT() *MockUnsafeInjectiveTradingRPCServerMockRecorder { - return m.recorder -} - -// mustEmbedUnimplementedInjectiveTradingRPCServer mocks base method. -func (m *MockUnsafeInjectiveTradingRPCServer) mustEmbedUnimplementedInjectiveTradingRPCServer() { - m.ctrl.T.Helper() - m.ctrl.Call(m, "mustEmbedUnimplementedInjectiveTradingRPCServer") -} - -// mustEmbedUnimplementedInjectiveTradingRPCServer indicates an expected call of mustEmbedUnimplementedInjectiveTradingRPCServer. -func (mr *MockUnsafeInjectiveTradingRPCServerMockRecorder) mustEmbedUnimplementedInjectiveTradingRPCServer() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedInjectiveTradingRPCServer", reflect.TypeOf((*MockUnsafeInjectiveTradingRPCServer)(nil).mustEmbedUnimplementedInjectiveTradingRPCServer)) -} diff --git a/injective_data/ofac.json b/injective_data/ofac.json index daaccbcc..66b27cd2 100644 --- a/injective_data/ofac.json +++ b/injective_data/ofac.json @@ -19,6 +19,7 @@ "0x178169b423a011fff22b9e3f3abea13414ddd0f1", "0x179f48c78f57a3a78f0608cc9197b8972921d1d2", "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", + "0x1999ef52700c34de7ec2b68a28aafb37db0c5ade", "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", @@ -157,5 +158,5 @@ "0xffbac21a641dcfe4552920138d90f3638b3c9fba", "0xc5801cd781d168e2d3899ad9c39d8a2541871298", "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", - "0x8aa07899eb940f40e514b8efdb3b6af5d1cf7bb" + "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb" ] diff --git a/proto/buf.gen.ts.yaml b/proto/buf.gen.ts.yaml deleted file mode 100644 index 77ac7550..00000000 --- a/proto/buf.gen.ts.yaml +++ /dev/null @@ -1,13 +0,0 @@ -version: v1 -managed: - enabled: true -plugins: - - plugin: buf.build/community/stephenh-ts-proto - out: ../client/proto-ts/gen/proto - opt: - - esModuleInterop=true - - forceLong=string - - env=both - - outputClientImpl=grpc-web - - exportCommonSymbols=false - - useExactTypes=false \ No newline at end of file diff --git a/proto/injective/auction/v1beta1/auction.proto b/proto/injective/auction/v1beta1/auction.proto index c5f95038..b46a3ee9 100644 --- a/proto/injective/auction/v1beta1/auction.proto +++ b/proto/injective/auction/v1beta1/auction.proto @@ -18,6 +18,12 @@ message Params { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // inj_basket_max_cap defines the maximum cap for INJ contained in an auction + // basket + string inj_basket_max_cap = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; } message Bid { @@ -26,7 +32,7 @@ message Bid { (gogoproto.moretags) = "yaml:\"bidder\"" ]; - string amount = 2 [ + cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", (gogoproto.nullable) = false ]; @@ -36,7 +42,7 @@ message LastAuctionResult { // winner describes the address of the winner string winner = 1; // amount describes the amount the winner get from the auction - string amount = 2 [ + cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", (gogoproto.nullable) = false ]; @@ -48,7 +54,7 @@ message EventBid { // bidder describes the address of bidder string bidder = 1; // amount describes the amount the bidder put on the auction - string amount = 2 [ + cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", (gogoproto.nullable) = false ]; @@ -60,7 +66,7 @@ message EventAuctionResult { // winner describes the address of the winner string winner = 1; // amount describes the amount the winner get from the auction - string amount = 2 [ + cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", (gogoproto.nullable) = false ]; diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto index c7b837b6..d05131e9 100644 --- a/proto/injective/exchange/v1beta1/exchange.proto +++ b/proto/injective/exchange/v1beta1/exchange.proto @@ -269,6 +269,8 @@ message DerivativeMarket { string admin = 18; // level of admin permissions uint32 admin_permissions = 19; + // quote token decimals + uint32 quote_decimals = 20; } // An object describing a binary options market in Injective Protocol. message BinaryOptionsMarket { @@ -337,6 +339,8 @@ message BinaryOptionsMarket { ]; // level of admin permissions uint32 admin_permissions = 19; + // quote token decimals + uint32 quote_decimals = 20; } message ExpiryFuturesMarketInfo { @@ -481,6 +485,10 @@ message SpotMarket { string admin = 12; // level of admin permissions uint32 admin_permissions = 13; + // base token decimals + uint32 base_decimals = 14; + // quote token decimals + uint32 quote_decimals = 15; } // A subaccount's deposit for a given base currency diff --git a/proto/injective/exchange/v1beta1/proposal.proto b/proto/injective/exchange/v1beta1/proposal.proto index a116cfc8..cc0a836e 100644 --- a/proto/injective/exchange/v1beta1/proposal.proto +++ b/proto/injective/exchange/v1beta1/proposal.proto @@ -66,6 +66,11 @@ message SpotMarketParamUpdateProposal { ]; AdminInfo admin_info = 12; + + // base token decimals + uint32 base_decimals = 13; + // quote token decimals + uint32 quote_decimals = 14; } enum ExchangeType { @@ -159,6 +164,10 @@ message SpotMarketLaunchProposal { (gogoproto.nullable) = false ]; AdminInfo admin_info = 11; + // base token decimals + uint32 base_decimals = 14; + // quote token decimals + uint32 quote_decimals = 15; } // PerpetualMarketLaunchProposal defines a SDK message for proposing a new diff --git a/proto/injective/exchange/v1beta1/query.proto b/proto/injective/exchange/v1beta1/query.proto index e74a687c..4b498a01 100644 --- a/proto/injective/exchange/v1beta1/query.proto +++ b/proto/injective/exchange/v1beta1/query.proto @@ -12,6 +12,17 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod // Query defines the gRPC querier service. service Query { + rpc L3DerivativeOrderBook(QueryFullDerivativeOrderbookRequest) + returns (QueryFullDerivativeOrderbookResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/derivative/L3OrderBook/{market_id}"; + } + + rpc L3SpotOrderBook(QueryFullSpotOrderbookRequest) + returns (QueryFullSpotOrderbookResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/spot/L3OrderBook/{market_id}"; + } // Retrieves exchange params rpc QueryExchangeParams(QueryExchangeParamsRequest) returns (QueryExchangeParamsResponse) { @@ -1410,7 +1421,39 @@ message TrimmedDerivativeConditionalOrder { message QueryTraderDerivativeConditionalOrdersResponse { repeated TrimmedDerivativeConditionalOrder orders = 1; } +message QueryFullSpotOrderbookRequest { + // market id + string market_id = 1; +} + +message QueryFullSpotOrderbookResponse { + repeated TrimmedLimitOrder Bids = 1; + repeated TrimmedLimitOrder Asks = 2; +} + +message QueryFullDerivativeOrderbookRequest { + // market id + string market_id = 1; +} +message QueryFullDerivativeOrderbookResponse { + repeated TrimmedLimitOrder Bids = 1; + repeated TrimmedLimitOrder Asks = 2; +} +message TrimmedLimitOrder { + string price = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // quantity of the order + string quantity = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + string order_hash = 3; + string subaccount_id = 4; +} message QueryMarketAtomicExecutionFeeMultiplierRequest { string market_id = 1; } message QueryMarketAtomicExecutionFeeMultiplierResponse { diff --git a/proto/injective/exchange/v1beta1/tx.proto b/proto/injective/exchange/v1beta1/tx.proto index b282f4da..cae7401f 100644 --- a/proto/injective/exchange/v1beta1/tx.proto +++ b/proto/injective/exchange/v1beta1/tx.proto @@ -7,6 +7,7 @@ import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "injective/exchange/v1beta1/exchange.proto"; +import "injective/exchange/v1beta1/proposal.proto"; import "injective/oracle/v1beta1/oracle.proto"; import "amino/amino.proto"; @@ -168,6 +169,9 @@ service Msg { rpc ActivateStakeGrant(MsgActivateStakeGrant) returns (MsgActivateStakeGrantResponse); + + rpc BatchExchangeModification(MsgBatchExchangeModification) + returns (MsgBatchExchangeModificationResponse); } message MsgUpdateSpotMarket { @@ -381,6 +385,10 @@ message MsgInstantSpotMarketLaunch { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // base token decimals + uint32 base_decimals = 8; + // quote token decimals + uint32 quote_decimals = 9; } // MsgInstantSpotMarketLaunchResponse defines the Msg/InstantSpotMarketLaunch @@ -1151,4 +1159,17 @@ message MsgActivateStakeGrant { string granter = 2; } -message MsgActivateStakeGrantResponse {} \ No newline at end of file +message MsgActivateStakeGrantResponse {} + +message MsgBatchExchangeModification { + option (amino.name) = "exchange/MsgBatchExchangeModification"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + // message sender, that is also the TX signer + string sender = 1; + BatchExchangeModificationProposal proposal = 2; +} + +message MsgBatchExchangeModificationResponse {} \ No newline at end of file diff --git a/proto/injective/peggy/v1/events.proto b/proto/injective/peggy/v1/events.proto index 8a5f866d..e1760f97 100644 --- a/proto/injective/peggy/v1/events.proto +++ b/proto/injective/peggy/v1/events.proto @@ -145,4 +145,40 @@ message EventValidatorSlash { string consensus_address = 3; string operator_address = 4; string moniker = 5; +} + +message EventDepositReceived { + // Ethereum sender address + string sender = 1; + + // Injective receiver address + string receiver = 2; + + // Coin deposited to Injective + string amount = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} + +message EventWithdrawalsCompleted { + // token denom of each withdrawal + string denom = 1; + + // individual withdrawals + repeated Withdrawal withdrawals = 2; +} + +message Withdrawal { + // Injective sender address + string sender = 1; + + // Ethereum receiver address + string receiver = 2; + + // Amount of tokens withdrawn to Ethereum + string amount = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; } \ No newline at end of file diff --git a/proto/injective/peggy/v1/params.proto b/proto/injective/peggy/v1/params.proto index 43c4b3a8..7300ce7f 100644 --- a/proto/injective/peggy/v1/params.proto +++ b/proto/injective/peggy/v1/params.proto @@ -133,4 +133,7 @@ message Params { cosmos.base.v1beta1.Coin valset_reward = 21 [ (gogoproto.nullable) = false ]; repeated string admins = 22; + + // address for receiving Peggy Deposits from sanctioned Ethereum addresses + string segregated_wallet_address = 23; } diff --git a/proto/injective/peggy/v1/proposal.proto b/proto/injective/peggy/v1/proposal.proto deleted file mode 100644 index f6eed0f1..00000000 --- a/proto/injective/peggy/v1/proposal.proto +++ /dev/null @@ -1,29 +0,0 @@ -syntax = "proto3"; -package injective.peggy.v1; - -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; - -option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; - -message BlacklistEthereumAddressesProposal { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - repeated string blacklist_addresses = 3; -} - -message RevokeEthereumBlacklistProposal { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - repeated string blacklist_addresses = 3; -} \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/genesis.proto b/proto/injective/permissions/v1beta1/genesis.proto index 7890fc27..52d80556 100644 --- a/proto/injective/permissions/v1beta1/genesis.proto +++ b/proto/injective/permissions/v1beta1/genesis.proto @@ -12,4 +12,5 @@ message GenesisState { // params defines the parameters of the module. Params params = 1 [ (gogoproto.nullable) = false ]; repeated Namespace namespaces = 2 [ (gogoproto.nullable) = false ]; + repeated AddressVoucher vouchers = 3; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/permissions.proto b/proto/injective/permissions/v1beta1/permissions.proto index 0abb5c5c..8166a72b 100644 --- a/proto/injective/permissions/v1beta1/permissions.proto +++ b/proto/injective/permissions/v1beta1/permissions.proto @@ -1,56 +1,103 @@ syntax = "proto3"; package injective.permissions.v1beta1; -import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; // Namespace defines a permissions namespace message Namespace { string denom = 1; // tokenfactory denom to which this namespace applies to - string wasm_hook = - 2; // address of smart contract to apply code-based restrictions + string contract_hook = 2; // address of smart contract to apply code-based restrictions - bool mints_paused = 3; - bool sends_paused = 4; - bool burns_paused = 5; + repeated Role role_permissions = 3; // permissions for each role + repeated ActorRoles actor_roles = 4; // roles for each actor + repeated RoleManager role_managers = 5; // managers for each role + repeated PolicyStatus policy_statuses = 6; // status for each policy + repeated PolicyManagerCapability policy_manager_capabilities = 7; // capabilities for each manager for each policy +} - repeated Role role_permissions = 6; // permissions for each role +// AddressRoles defines roles for an actor +message ActorRoles { + string actor = 1; + repeated string roles = 2; +} - repeated AddressRoles address_roles = 7; +// RoleActors defines actors for a role +message RoleActors { + string role = 1; + repeated string actors = 2; } -message AddressRoles { - string address = 1; +// RoleManager defines roles for a manager address +message RoleManager { + string manager = 1; repeated string roles = 2; } // each Action enum value should be a power of two enum Action { + // 0 is reserved for ACTION_UNSPECIFIED UNSPECIFIED = 0; + // 1 is reserved for MINT MINT = 1; + // 2 is reserved for RECEIVE RECEIVE = 2; + // 4 is reserved for BURN BURN = 4; + // 8 is reserved for SEND + SEND = 8; + // 16 is reserved for SUPER_BURN + SUPER_BURN = 16; + + // + // MANAGER ACTIONS BELOW + // + + // 2^27 is reserved for MODIFY_POLICY_MANAGERS + MODIFY_POLICY_MANAGERS = 0x8000000; // 2^27 or 134217728 + // 2^28 is reserved for MODIFY_CONTRACT_HOOK + MODIFY_CONTRACT_HOOK = 0x10000000; // 2^28 or 268435456 + // 2^29 is reserved for MODIFY_ROLE_PERMISSIONS + MODIFY_ROLE_PERMISSIONS = 0x20000000; // 2^29 or 536870912 + // 2^30 is reserved for MODIFY_ROLE_MANAGERS + MODIFY_ROLE_MANAGERS = 0x40000000; // 2^30 or 1073741824 +} + +// PolicyStatus defines the status of a policy +message PolicyStatus { + Action action = 1; + bool is_disabled = 2; + bool is_sealed = 3; } // Role is only used for storage message Role { - string role = 1; - uint32 permissions = 2; + string name = 1; + uint32 role_id = 2; + uint32 permissions = 3; } -// used in storage -message RoleIDs { repeated uint32 role_ids = 1; } +// PolicyManagerCapability defines the capabilities of a manager for a policy +message PolicyManagerCapability { + string manager = 1; + Action action = 2; + bool can_disable = 3; + bool can_seal = 4; +} -message Voucher { - repeated cosmos.base.v1beta1.Coin coins = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; +// used in storage +message RoleIDs { + repeated uint32 role_ids = 1; } +// AddressVoucher is used to represent a voucher for a specific address message AddressVoucher { string address = 1; - Voucher voucher = 2; -} \ No newline at end of file + cosmos.base.v1beta1.Coin voucher = 2 [ + (gogoproto.nullable) = false, + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.jsontag) = "voucher,omitempty" + ]; +} diff --git a/proto/injective/permissions/v1beta1/query.proto b/proto/injective/permissions/v1beta1/query.proto index 6e4d4b9c..c1b0d320 100644 --- a/proto/injective/permissions/v1beta1/query.proto +++ b/proto/injective/permissions/v1beta1/query.proto @@ -19,45 +19,89 @@ service Query { option (google.api.http).get = "/injective/permissions/v1beta1/params"; } - // AllNamespaces defines a gRPC query method that returns the permissions + // NamespaceDenoms defines a gRPC query method that returns the denoms for which a namespace exists + rpc NamespaceDenoms(QueryNamespaceDenomsRequest) + returns (QueryNamespaceDenomsResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/namespace_denoms"; + } + + // Namespaces defines a gRPC query method that returns the permissions // module's created namespaces. - rpc AllNamespaces(QueryAllNamespacesRequest) - returns (QueryAllNamespacesResponse) { + rpc Namespaces(QueryNamespacesRequest) + returns (QueryNamespacesResponse) { option (google.api.http).get = - "/injective/permissions/v1beta1/all_namespaces"; + "/injective/permissions/v1beta1/namespaces"; } - // NamespaceByDenom defines a gRPC query method that returns the permissions + // Namespace defines a gRPC query method that returns the permissions // module's namespace associated with the provided denom. - rpc NamespaceByDenom(QueryNamespaceByDenomRequest) - returns (QueryNamespaceByDenomResponse) { + rpc Namespace(QueryNamespaceRequest) + returns (QueryNamespaceResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/namespace/{denom}"; + } + + // RolesByActor defines a gRPC query method that returns roles for the actor in the namespace + rpc RolesByActor(QueryRolesByActorRequest) + returns (QueryRolesByActorResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/roles_by_actor/{denom}/{actor}"; + } + + // ActorsByRole defines a gRPC query method that returns a namespace's roles associated with the provided actor. + rpc ActorsByRole(QueryActorsByRoleRequest) + returns (QueryActorsByRoleResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/actors_by_role/{denom}/{role}"; + } + + // RoleManagers defines a gRPC query method that returns a namespace's role managers + rpc RoleManagers(QueryRoleManagersRequest) + returns (QueryRoleManagersResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/role_managers/{denom}"; + } + + // RoleManager defines a gRPC query method that returns the roles a given role manager manages for a given namespace + rpc RoleManager(QueryRoleManagerRequest) + returns (QueryRoleManagerResponse) { + option (google.api.http).get = + "/injective/permissions/v1beta1/role_manager/{denom}/{manager}"; + } + + // PolicyStatuses defines a gRPC query method that returns a namespace's policy statuses + rpc PolicyStatuses(QueryPolicyStatusesRequest) + returns (QueryPolicyStatusesResponse) { option (google.api.http).get = - "/injective/permissions/v1beta1/namespace_by_denom"; + "/injective/permissions/v1beta1/policy_statuses/{denom}"; } - // AddressRoles defines a gRPC query method that returns address roles in the - // namespace - rpc AddressRoles(QueryAddressRolesRequest) - returns (QueryAddressRolesResponse) { + // PolicyManagerCapabilities defines a gRPC query method that returns a namespace's policy manager capabilities + rpc PolicyManagerCapabilities(QueryPolicyManagerCapabilitiesRequest) + returns (QueryPolicyManagerCapabilitiesResponse) { option (google.api.http).get = - "/injective/permissions/v1beta1/addresses_by_role"; + "/injective/permissions/v1beta1/policy_manager_capabilities/{denom}"; } - // AddressesByRole defines a gRPC query method that returns a namespace's - // roles associated with the provided address. - rpc AddressesByRole(QueryAddressesByRoleRequest) - returns (QueryAddressesByRoleResponse) { + // Vouchers defines a gRPC query method for the vouchers for a given denom + rpc Vouchers(QueryVouchersRequest) + returns (QueryVouchersResponse) { option (google.api.http).get = - "/injective/permissions/v1beta1/addresses_by_role"; + "/injective/permissions/v1beta1/vouchers/{denom}"; } - // VouchersForAddress defines a gRPC query method that returns a map of - // vouchers that are held by permissions module for this address, keyed by the - // originator address - rpc VouchersForAddress(QueryVouchersForAddressRequest) - returns (QueryVouchersForAddressResponse) { + // Voucher defines a gRPC query method for the vouchers for a given denom and address + rpc Voucher(QueryVoucherRequest) + returns (QueryVoucherResponse) { option (google.api.http).get = - "/injective/permissions/v1beta1/vouchers_for_address"; + "/injective/permissions/v1beta1/voucher/{denom}/{address}"; + } + + // Retrieves the entire permissions module's state + rpc PermissionsModuleState(QueryModuleStateRequest) + returns (QueryModuleStateResponse) { + option (google.api.http).get = "/injective/permissions/v1beta1/module_state"; } } @@ -70,49 +114,118 @@ message QueryParamsResponse { Params params = 1 [ (gogoproto.nullable) = false ]; } -// QueryAllNamespacesRequest is the request type for the Query/AllNamespaces RPC +// QueryNamespaceDenomsRequest is the request type for the Query/NamespaceDenoms RPC // method. -message QueryAllNamespacesRequest {} +message QueryNamespaceDenomsRequest {} -// QueryAllNamespacesResponse is the response type for the Query/AllNamespaces +// QueryNamespaceDenomsResponse is the response type for the Query/NamespaceDenoms // RPC method. -message QueryAllNamespacesResponse { repeated Namespace namespaces = 1; } +message QueryNamespaceDenomsResponse { repeated string denoms = 1; } -// QueryNamespaceByDenomRequest is the request type for the -// Query/NamespaceByDenom RPC method. -message QueryNamespaceByDenomRequest { +// QueryNamespacesRequest is the request type for the Query/Namespaces RPC +// method. +message QueryNamespacesRequest {} + +// QueryNamespacesResponse is the response type for the Query/Namespaces +// RPC method. +message QueryNamespacesResponse { repeated Namespace namespaces = 1; } + +// QueryNamespaceRequest is the request type for the +// Query/Namespace RPC method. +message QueryNamespaceRequest { string denom = 1; - bool include_roles = 2; } -// QueryNamespaceByDenomResponse is the response type for the +// QueryNamespaceResponse is the response type for the // Query/NamespaceByDenom RPC method. -message QueryNamespaceByDenomResponse { Namespace namespace = 1; } +message QueryNamespaceResponse { Namespace namespace = 1; } // QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole // RPC method. -message QueryAddressesByRoleRequest { +message QueryActorsByRoleRequest { string denom = 1; string role = 2; } // QueryAddressesByRoleResponse is the response type for the // Query/AddressesByRole RPC method. -message QueryAddressesByRoleResponse { repeated string addresses = 1; } +message QueryActorsByRoleResponse { repeated string actors = 1; } -message QueryAddressRolesRequest { +// QueryRolesByActorRequest is the request type for the +// Query/RolesByActor RPC method. +message QueryRolesByActorRequest { + string denom = 1; + string actor = 2; +} + +// QueryRolesByActorResponse is the response type for the +// Query/RolesByActor RPC method. +message QueryRolesByActorResponse { repeated string roles = 1; } + +// QueryRoleManagersRequest is the request type for the Query/RoleManagers +// RPC method. +message QueryRoleManagersRequest { + string denom = 1; +} + +// QueryRoleManagersResponse is the response type for the +// Query/RoleManagers RPC method. +message QueryRoleManagersResponse { repeated RoleManager role_managers = 1; } + +// QueryRoleManagerRequest is the request type for the Query/RoleManager +// RPC method. +message QueryRoleManagerRequest { + string denom = 1; + string manager = 2; +} + +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +message QueryRoleManagerResponse { RoleManager role_manager = 1; } + +// QueryPolicyStatusesRequest is the request type for the Query/PolicyStatuses +// RPC method. +message QueryPolicyStatusesRequest { + string denom = 1; +} + +// QueryRoleManagerResponse is the response type for the +// Query/RoleManager RPC method. +message QueryPolicyStatusesResponse { repeated PolicyStatus policy_statuses = 1; } + +// QueryPolicyManagerCapabilitiesRequest is the request type for the Query/PolicyManagerCapabilities +// RPC method. +message QueryPolicyManagerCapabilitiesRequest { string denom = 1; - string address = 2; } -message QueryAddressRolesResponse { repeated string roles = 1; } +// QueryPolicyManagerCapabilitiesResponse is the response type for the +// Query/PolicyManagerCapabilities RPC method. +message QueryPolicyManagerCapabilitiesResponse { repeated PolicyManagerCapability policy_manager_capabilities = 1; } + +message QueryVouchersRequest { string denom = 1; } + +message QueryVouchersResponse { + repeated AddressVoucher vouchers = 1; +} -message QueryVouchersForAddressRequest { string address = 1; } +message QueryVoucherRequest { + string denom = 1; + string address = 2; +} -message QueryVouchersForAddressResponse { - repeated cosmos.base.v1beta1.Coin vouchers = 1 [ +message QueryVoucherResponse { + cosmos.base.v1beta1.Coin voucher = 1 [ (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.jsontag) = "vouchers,omitempty" + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.jsontag) = "voucher,omitempty" ]; } + +// QueryModuleStateRequest is the request type for the Query/PermissionsModuleState +// RPC method. +message QueryModuleStateRequest {} + +// QueryModuleStateResponse is the response type for the Query/PermissionsModuleState +// RPC method. +message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/tx.proto b/proto/injective/permissions/v1beta1/tx.proto index b5749aa7..8ae7b7f2 100644 --- a/proto/injective/permissions/v1beta1/tx.proto +++ b/proto/injective/permissions/v1beta1/tx.proto @@ -18,13 +18,12 @@ service Msg { rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); rpc CreateNamespace(MsgCreateNamespace) returns (MsgCreateNamespaceResponse); - rpc DeleteNamespace(MsgDeleteNamespace) returns (MsgDeleteNamespaceResponse); rpc UpdateNamespace(MsgUpdateNamespace) returns (MsgUpdateNamespaceResponse); - rpc UpdateNamespaceRoles(MsgUpdateNamespaceRoles) - returns (MsgUpdateNamespaceRolesResponse); - rpc RevokeNamespaceRoles(MsgRevokeNamespaceRoles) - returns (MsgRevokeNamespaceRolesResponse); + rpc UpdateActorRoles(MsgUpdateActorRoles) + returns (MsgUpdateActorRolesResponse); rpc ClaimVoucher(MsgClaimVoucher) returns (MsgClaimVoucherResponse); + + // rpc DeleteNamespace(MsgDeleteNamespace) returns (MsgDeleteNamespaceResponse); } message MsgUpdateParams { @@ -52,69 +51,36 @@ message MsgCreateNamespace { message MsgCreateNamespaceResponse {} -message MsgDeleteNamespace { - option (amino.name) = "permissions/MsgDeleteNamespace"; - option (cosmos.msg.v1.signer) = "sender"; - string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - - string namespace_denom = 2; -} - -message MsgDeleteNamespaceResponse {} - message MsgUpdateNamespace { option (amino.name) = "permissions/MsgUpdateNamespace"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - string namespace_denom = - 2; // namespace denom to which this updates are applied - - message MsgSetWasmHook { string new_value = 1; } - MsgSetWasmHook wasm_hook = - 3; // address of smart contract to apply code-based restrictions + string denom = 2; // denom whose namespace updates are to be applied - message MsgSetMintsPaused { bool new_value = 1; } - MsgSetMintsPaused mints_paused = 4; + message SetContractHook { string new_value = 1; } + SetContractHook contract_hook = 3; // address of smart contract to apply code-based restrictions - message MsgSetSendsPaused { bool new_value = 1; } - MsgSetSendsPaused sends_paused = 5; - - message MsgSetBurnsPaused { bool new_value = 1; } - MsgSetBurnsPaused burns_paused = 6; + repeated Role role_permissions = 4; // role permissions to update + repeated RoleManager role_managers = 5; // role managers to update + repeated PolicyStatus policy_statuses = 6; // policy statuses to update + repeated PolicyManagerCapability policy_manager_capabilities = 7; // policy manager capabilities to update } message MsgUpdateNamespaceResponse {} -message MsgUpdateNamespaceRoles { - option (amino.name) = "permissions/MsgUpdateNamespaceRoles"; +message MsgUpdateActorRoles { + option (amino.name) = "permissions/MsgUpdateActorRoles"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - string namespace_denom = - 2; // namespace denom to which this updates are applied - - repeated Role role_permissions = - 3; // new role definitions or updated permissions for existing roles - repeated AddressRoles address_roles = - 4; // new addresses to add or new roles for existing addresses to - // overwrite current roles -} - -message MsgUpdateNamespaceRolesResponse {} - -message MsgRevokeNamespaceRoles { - option (amino.name) = "permissions/MsgRevokeNamespaceRoles"; - option (cosmos.msg.v1.signer) = "sender"; - string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + string denom = 2; // namespace denom to which this updates are applied - string namespace_denom = - 2; // namespace denom to which this updates are applied - repeated AddressRoles address_roles_to_revoke = - 3; // {"address" => array of roles to revoke from this address} + repeated RoleActors role_actors_to_add = 3; // roles to add for given actors + repeated RoleActors role_actors_to_revoke = 5; // roles to revoke from given actors } -message MsgRevokeNamespaceRolesResponse {} +message MsgUpdateActorRolesResponse {} message MsgClaimVoucher { option (amino.name) = "permissions/MsgClaimVoucher"; diff --git a/proto/injective/stream/v1beta1/query.proto b/proto/injective/stream/v1beta1/query.proto index 66d168ed..1803d572 100644 --- a/proto/injective/stream/v1beta1/query.proto +++ b/proto/injective/stream/v1beta1/query.proto @@ -80,7 +80,7 @@ enum OrderUpdateStatus { message SpotOrderUpdate { OrderUpdateStatus status = 1; - bytes order_hash = 2; + string order_hash = 2; string cid = 3; SpotOrder order = 4; } @@ -93,7 +93,7 @@ message SpotOrder { message DerivativeOrderUpdate { OrderUpdateStatus status = 1; - bytes order_hash = 2; + string order_hash = 2; string cid = 3; DerivativeOrder order = 4; } @@ -155,7 +155,7 @@ message SpotTrade { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; - bytes order_hash = 8; + string order_hash = 8; string fee_recipient_address = 9 [ (gogoproto.nullable) = true ]; string cid = 10; string trade_id = 11; diff --git a/proto/injective/tokenfactory/v1beta1/authorityMetadata.proto b/proto/injective/tokenfactory/v1beta1/authorityMetadata.proto index fd68ac49..54cc9d18 100644 --- a/proto/injective/tokenfactory/v1beta1/authorityMetadata.proto +++ b/proto/injective/tokenfactory/v1beta1/authorityMetadata.proto @@ -14,4 +14,7 @@ message DenomAuthorityMetadata { // Can be empty for no admin, or a valid injective address string admin = 1 [ (gogoproto.moretags) = "yaml:\"admin\"" ]; + + // true if the admin can burn tokens from other addresses + bool admin_burn_allowed = 2 [ (gogoproto.moretags) = "yaml:\"admin_burn_allowed\"" ]; } diff --git a/proto/injective/tokenfactory/v1beta1/events.proto b/proto/injective/tokenfactory/v1beta1/events.proto index fd20575b..6efc471e 100644 --- a/proto/injective/tokenfactory/v1beta1/events.proto +++ b/proto/injective/tokenfactory/v1beta1/events.proto @@ -8,27 +8,29 @@ import "injective/tokenfactory/v1beta1/authorityMetadata.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types"; -message EventCreateTFDenom { +message EventCreateDenom { string account = 1; string denom = 2; } -message EventMintTFDenom { - string recipient_address = 1; +message EventMint { + string minter = 1; cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false ]; + string receiver = 3; } -message EventBurnDenom { - string burner_address = 1; +message EventBurn { + string burner = 1; cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false ]; + string burn_from = 3; } -message EventChangeTFAdmin { +message EventChangeAdmin { string denom = 1; string new_admin_address = 2; } -message EventSetTFDenomMetadata { +message EventSetDenomMetadata { string denom = 1; cosmos.bank.v1beta1.Metadata metadata = 2 [ (gogoproto.nullable) = false ]; } diff --git a/proto/injective/tokenfactory/v1beta1/tx.proto b/proto/injective/tokenfactory/v1beta1/tx.proto index 7ece2944..568b005b 100644 --- a/proto/injective/tokenfactory/v1beta1/tx.proto +++ b/proto/injective/tokenfactory/v1beta1/tx.proto @@ -11,7 +11,7 @@ import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types"; -// Msg defines the tokefactory module's gRPC message service. +// Msg defines the tokenfactory module's gRPC message service. service Msg { option (cosmos.msg.v1.service) = true; @@ -22,10 +22,6 @@ service Msg { rpc SetDenomMetadata(MsgSetDenomMetadata) returns (MsgSetDenomMetadataResponse); rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); - - // ForceTransfer is deactivated for now because we need to think through edge - // cases rpc ForceTransfer(MsgForceTransfer) returns - // (MsgForceTransferResponse); } // MsgCreateDenom defines the message structure for the CreateDenom gRPC service @@ -47,6 +43,8 @@ message MsgCreateDenom { string name = 3 [ (gogoproto.moretags) = "yaml:\"name\"" ]; string symbol = 4 [ (gogoproto.moretags) = "yaml:\"symbol\"" ]; uint32 decimals = 5 [ (gogoproto.moretags) = "yaml:\"decimals\"" ]; + // true if admins are allowed to burn tokens from other addresses + bool allow_admin_burn = 6 [ (gogoproto.moretags) = "yaml:\"allow_admin_burn\"" ]; } // MsgCreateDenomResponse is the return value of MsgCreateDenom @@ -56,8 +54,8 @@ message MsgCreateDenomResponse { [ (gogoproto.moretags) = "yaml:\"new_token_denom\"" ]; } -// MsgMint is the sdk.Msg type for allowing an admin account to mint -// more of a token. For now, we only support minting to the sender account +// MsgMint is the sdk.Msg type for allowing an admin account or other permitted accounts to mint +// more of a token. message MsgMint { option (amino.name) = "injective/tokenfactory/mint"; option (cosmos.msg.v1.signer) = "sender"; @@ -67,12 +65,13 @@ message MsgMint { (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false ]; + string receiver = 3 [ (gogoproto.moretags) = "yaml:\"receiver\"" ]; } message MsgMintResponse {} // MsgBurn is the sdk.Msg type for allowing an admin account to burn -// a token. For now, we only support burning from the sender account. +// a token. message MsgBurn { option (amino.name) = "injective/tokenfactory/burn"; option (cosmos.msg.v1.signer) = "sender"; @@ -82,6 +81,10 @@ message MsgBurn { (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false ]; + string burnFromAddress = 3 [ + (gogoproto.moretags) = "yaml:\"burn_from_address\"", + (amino.dont_omitempty) = true + ]; } message MsgBurnResponse {} @@ -101,20 +104,6 @@ message MsgChangeAdmin { // MsgChangeAdmin message. message MsgChangeAdminResponse {} -// message MsgForceTransfer { -// string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; -// cosmos.base.v1beta1.Coin amount = 2 [ -// (gogoproto.moretags) = "yaml:\"amount\"", -// (gogoproto.nullable) = false -// ]; -// string transferFromAddress = 3 -// [ (gogoproto.moretags) = "yaml:\"transfer_from_address\"" ]; -// string transferToAddress = 4 -// [ (gogoproto.moretags) = "yaml:\"transfer_to_address\"" ]; -// } - -// message MsgForceTransferResponse {} - // MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set // the denom's bank metadata message MsgSetDenomMetadata { @@ -126,6 +115,12 @@ message MsgSetDenomMetadata { (gogoproto.moretags) = "yaml:\"metadata\"", (gogoproto.nullable) = false ]; + + message AdminBurnDisabled { + // true if the admin burn capability should be disabled + bool should_disable = 1 [ (gogoproto.moretags) = "yaml:\"should_disable\"" ]; + } + AdminBurnDisabled admin_burn_disabled = 3 [ (gogoproto.moretags) = "yaml:\"admin_burn_disabled\"" ]; } // MsgSetDenomMetadataResponse defines the response structure for an executed From af88ac054a467c7a3a704510650c6613cc91e09c Mon Sep 17 00:00:00 2001 From: Abel Armoa <30988000+aarmoa@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:08:39 -0300 Subject: [PATCH 6/6] (feat) Updated proto definitions with the chain and indexer versions used for the v1.14 Testnet upgrade. Included the new fields and endpoints in the SDK API components and updated the example scripts --- Makefile | 5 +- chain/exchange/types/codec.go | 3 + chain/exchange/types/common_utils.go | 42 +- chain/exchange/types/errors.go | 1 + chain/exchange/types/events.pb.go | 761 ++- chain/exchange/types/exchange.pb.go | 296 +- chain/exchange/types/genesis.pb.go | 324 +- chain/exchange/types/key.go | 7 + chain/exchange/types/proposal.go | 44 + chain/exchange/types/proposal.pb.go | 633 +- chain/exchange/types/query.pb.go | 5815 +++++++++++------ chain/permissions/types/permissions.pb.go | 8 +- chain/wasmx/types/authz.go | 72 + chain/wasmx/types/authz.pb.go | 342 + chain/wasmx/types/codec.go | 8 + client/chain/chain.go | 56 + client/chain/chain_test_support.go | 24 + client/exchange/exchange.go | 27 + client/exchange/exchange_test_support.go | 10 + .../3_MsgInstantSpotMarketLaunch/example.go | 2 + .../query/56_L3DerivativeOrderBook/example.go | 71 + .../query/57_L3SpotOrderBook/example.go | 71 + .../query/58_MarketBalance/example.go | 65 + .../query/59_MarketBalances/example.go | 63 + .../query/60_DenomMinNotional/example.go | 65 + .../query/61_DenomMinNotionals/example.go | 63 + .../auction/4_InjBurntEndpoint/example.go | 39 + .../derivatives/10_StreamPositions/example.go | 6 +- ...design_goagen_injective_explorer_rpc.pb.go | 2134 +++--- ...n_goagen_injective_explorer_rpc_grpc.pb.go | 38 - proto/injective/exchange/v1beta1/events.proto | 10 + .../injective/exchange/v1beta1/exchange.proto | 9 + .../injective/exchange/v1beta1/genesis.proto | 2 + .../injective/exchange/v1beta1/proposal.proto | 14 + proto/injective/exchange/v1beta1/query.proto | 67 + proto/injective/wasmx/v1/authz.proto | 21 + 36 files changed, 7401 insertions(+), 3817 deletions(-) create mode 100644 chain/wasmx/types/authz.go create mode 100644 chain/wasmx/types/authz.pb.go create mode 100644 examples/chain/exchange/query/56_L3DerivativeOrderBook/example.go create mode 100644 examples/chain/exchange/query/57_L3SpotOrderBook/example.go create mode 100644 examples/chain/exchange/query/58_MarketBalance/example.go create mode 100644 examples/chain/exchange/query/59_MarketBalances/example.go create mode 100644 examples/chain/exchange/query/60_DenomMinNotional/example.go create mode 100644 examples/chain/exchange/query/61_DenomMinNotionals/example.go create mode 100644 examples/exchange/auction/4_InjBurntEndpoint/example.go create mode 100644 proto/injective/wasmx/v1/authz.proto diff --git a/Makefile b/Makefile index 36ffd73c..a1a3d099 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ all: clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.117 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.13.117_RC1 --depth 1 --single-branch clone-injective-core: - git clone https://github.com/InjectiveLabs/injective-core.git -b dev-v1.14 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-core.git -b testnet --depth 1 --single-branch copy-exchange-client: clone-injective-indexer rm -rf exchange/* @@ -94,6 +94,7 @@ copy-chain-types: clone-injective-core cp injective-core/injective-chain/modules/tokenfactory/types/codec.go chain/tokenfactory/types mkdir -p chain/wasmx/types && \ cp injective-core/injective-chain/modules/wasmx/types/*.pb.go chain/wasmx/types && \ + cp injective-core/injective-chain/modules/wasmx/types/authz.go chain/wasmx/types && \ cp injective-core/injective-chain/modules/wasmx/types/codec.go chain/wasmx/types && \ cp injective-core/injective-chain/modules/wasmx/types/custom_execution.go chain/wasmx/types && \ cp injective-core/injective-chain/modules/wasmx/types/errors.go chain/wasmx/types && \ diff --git a/chain/exchange/types/codec.go b/chain/exchange/types/codec.go index b94dbd35..9c99c2b2 100644 --- a/chain/exchange/types/codec.go +++ b/chain/exchange/types/codec.go @@ -65,6 +65,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&BinaryOptionsMarketParamUpdateProposal{}, "exchange/BinaryOptionsMarketParamUpdateProposal", nil) cdc.RegisterConcrete(&BinaryOptionsMarketLaunchProposal{}, "exchange/BinaryOptionsMarketLaunchProposal", nil) cdc.RegisterConcrete(&AtomicMarketOrderFeeMultiplierScheduleProposal{}, "exchange/AtomicMarketOrderFeeMultiplierScheduleProposal", nil) + cdc.RegisterConcrete(&MsgReclaimLockedFunds{}, "exchange/MsgReclaimLockedFunds", nil) cdc.RegisterConcrete(&CreateSpotLimitOrderAuthz{}, "exchange/CreateSpotLimitOrderAuthz", nil) cdc.RegisterConcrete(&CreateSpotMarketOrderAuthz{}, "exchange/CreateSpotMarketOrderAuthz", nil) @@ -115,6 +116,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUpdateSpotMarket{}, &MsgUpdateDerivativeMarket{}, &MsgBatchExchangeModification{}, + &MsgReclaimLockedFunds{}, ) registry.RegisterImplementations( @@ -149,6 +151,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &BinaryOptionsMarketParamUpdateProposal{}, &BinaryOptionsMarketLaunchProposal{}, &AtomicMarketOrderFeeMultiplierScheduleProposal{}, + &DenomMinNotionalProposal{}, ) registry.RegisterImplementations( diff --git a/chain/exchange/types/common_utils.go b/chain/exchange/types/common_utils.go index 7b0c63c9..4c6d0ac0 100644 --- a/chain/exchange/types/common_utils.go +++ b/chain/exchange/types/common_utils.go @@ -302,11 +302,49 @@ func EthAddressToSubaccountID(addr common.Address) common.Hash { return common.BytesToHash(common.RightPadBytes(addr.Bytes(), 32)) } -func DecToDecBytes(dec math.LegacyDec) []byte { +// SignedDecToSignedDecBytes encodes a Dec to a signed byte slice +func SignedDecToSignedDecBytes(dec math.LegacyDec) []byte { + if dec.IsNil() || dec.IsZero() { + return []byte{} + } + + sign := byte(0) + + // use sign of 1 for negative numbers + if dec.BigInt().Sign() < 0 { + sign = 1 + } + + return append([]byte{sign}, dec.BigInt().Bytes()...) +} + +// SignedDecBytesToDec decodes a signed byte slice back to a Dec. +func SignedDecBytesToDec(data []byte) math.LegacyDec { + if len(data) == 0 { + return math.LegacyZeroDec() + } + + sign := data[0] + magnitude := data[1:] + i := new(big.Int).SetBytes(magnitude) + if sign == 1 { + i = i.Neg(i) + } + + dec := math.LegacyNewDecFromBigIntWithPrec(i, math.LegacyPrecision) + if dec.IsNil() { + return math.LegacyZeroDec() + } + return dec +} + +// UnsignedDecToUnsignedDecBytes encodes an unsigned Dec to an unsigned byte slice +func UnsignedDecToUnsignedDecBytes(dec math.LegacyDec) []byte { return dec.BigInt().Bytes() } -func DecBytesToDec(bz []byte) math.LegacyDec { +// UnsignedDecBytesToDec decodes an unsigned byte slice back to a Dec. +func UnsignedDecBytesToDec(bz []byte) math.LegacyDec { dec := math.LegacyNewDecFromBigIntWithPrec(new(big.Int).SetBytes(bz), math.LegacyPrecision) if dec.IsNil() { return math.LegacyZeroDec() diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index 99bb5be8..f3e6b006 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -110,4 +110,5 @@ var ( ErrInsufficientStake = errors.Register(ModuleName, 103, "insufficient stake for grant") ErrInvalidPermissions = errors.Register(ModuleName, 104, "invalid permissions") ErrDenomDecimalsDoNotMatch = errors.Register(ModuleName, 105, "the decimals specified for the denom is incorrect") + ErrInsufficientMarketBalance = errors.Register(ModuleName, 106, "insufficient market balance") ) diff --git a/chain/exchange/types/events.pb.go b/chain/exchange/types/events.pb.go index 4e09ca34..0bf022d7 100644 --- a/chain/exchange/types/events.pb.go +++ b/chain/exchange/types/events.pb.go @@ -346,6 +346,110 @@ func (m *EventDerivativeMarketPaused) GetMissingFundsRate() string { return "" } +type EventSettledMarketBalance struct { + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *EventSettledMarketBalance) Reset() { *m = EventSettledMarketBalance{} } +func (m *EventSettledMarketBalance) String() string { return proto.CompactTextString(m) } +func (*EventSettledMarketBalance) ProtoMessage() {} +func (*EventSettledMarketBalance) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{5} +} +func (m *EventSettledMarketBalance) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSettledMarketBalance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSettledMarketBalance.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventSettledMarketBalance) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSettledMarketBalance.Merge(m, src) +} +func (m *EventSettledMarketBalance) XXX_Size() int { + return m.Size() +} +func (m *EventSettledMarketBalance) XXX_DiscardUnknown() { + xxx_messageInfo_EventSettledMarketBalance.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSettledMarketBalance proto.InternalMessageInfo + +func (m *EventSettledMarketBalance) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +func (m *EventSettledMarketBalance) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + +type EventNotSettledMarketBalance struct { + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *EventNotSettledMarketBalance) Reset() { *m = EventNotSettledMarketBalance{} } +func (m *EventNotSettledMarketBalance) String() string { return proto.CompactTextString(m) } +func (*EventNotSettledMarketBalance) ProtoMessage() {} +func (*EventNotSettledMarketBalance) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{6} +} +func (m *EventNotSettledMarketBalance) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventNotSettledMarketBalance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventNotSettledMarketBalance.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventNotSettledMarketBalance) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventNotSettledMarketBalance.Merge(m, src) +} +func (m *EventNotSettledMarketBalance) XXX_Size() int { + return m.Size() +} +func (m *EventNotSettledMarketBalance) XXX_DiscardUnknown() { + xxx_messageInfo_EventNotSettledMarketBalance.DiscardUnknown(m) +} + +var xxx_messageInfo_EventNotSettledMarketBalance proto.InternalMessageInfo + +func (m *EventNotSettledMarketBalance) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +func (m *EventNotSettledMarketBalance) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + type EventMarketBeyondBankruptcy struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` SettlePrice string `protobuf:"bytes,2,opt,name=settle_price,json=settlePrice,proto3" json:"settle_price,omitempty"` @@ -356,7 +460,7 @@ func (m *EventMarketBeyondBankruptcy) Reset() { *m = EventMarketBeyondBa func (m *EventMarketBeyondBankruptcy) String() string { return proto.CompactTextString(m) } func (*EventMarketBeyondBankruptcy) ProtoMessage() {} func (*EventMarketBeyondBankruptcy) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{5} + return fileDescriptor_20dda602b6b13fd3, []int{7} } func (m *EventMarketBeyondBankruptcy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -416,7 +520,7 @@ func (m *EventAllPositionsHaircut) Reset() { *m = EventAllPositionsHairc func (m *EventAllPositionsHaircut) String() string { return proto.CompactTextString(m) } func (*EventAllPositionsHaircut) ProtoMessage() {} func (*EventAllPositionsHaircut) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{6} + return fileDescriptor_20dda602b6b13fd3, []int{8} } func (m *EventAllPositionsHaircut) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -474,7 +578,7 @@ func (m *EventBinaryOptionsMarketUpdate) Reset() { *m = EventBinaryOptio func (m *EventBinaryOptionsMarketUpdate) String() string { return proto.CompactTextString(m) } func (*EventBinaryOptionsMarketUpdate) ProtoMessage() {} func (*EventBinaryOptionsMarketUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{7} + return fileDescriptor_20dda602b6b13fd3, []int{9} } func (m *EventBinaryOptionsMarketUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -520,7 +624,7 @@ func (m *EventNewSpotOrders) Reset() { *m = EventNewSpotOrders{} } func (m *EventNewSpotOrders) String() string { return proto.CompactTextString(m) } func (*EventNewSpotOrders) ProtoMessage() {} func (*EventNewSpotOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{8} + return fileDescriptor_20dda602b6b13fd3, []int{10} } func (m *EventNewSpotOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -580,7 +684,7 @@ func (m *EventNewDerivativeOrders) Reset() { *m = EventNewDerivativeOrde func (m *EventNewDerivativeOrders) String() string { return proto.CompactTextString(m) } func (*EventNewDerivativeOrders) ProtoMessage() {} func (*EventNewDerivativeOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{9} + return fileDescriptor_20dda602b6b13fd3, []int{11} } func (m *EventNewDerivativeOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -639,7 +743,7 @@ func (m *EventCancelSpotOrder) Reset() { *m = EventCancelSpotOrder{} } func (m *EventCancelSpotOrder) String() string { return proto.CompactTextString(m) } func (*EventCancelSpotOrder) ProtoMessage() {} func (*EventCancelSpotOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{10} + return fileDescriptor_20dda602b6b13fd3, []int{12} } func (m *EventCancelSpotOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -690,7 +794,7 @@ func (m *EventSpotMarketUpdate) Reset() { *m = EventSpotMarketUpdate{} } func (m *EventSpotMarketUpdate) String() string { return proto.CompactTextString(m) } func (*EventSpotMarketUpdate) ProtoMessage() {} func (*EventSpotMarketUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{11} + return fileDescriptor_20dda602b6b13fd3, []int{13} } func (m *EventSpotMarketUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -736,7 +840,7 @@ func (m *EventPerpetualMarketUpdate) Reset() { *m = EventPerpetualMarket func (m *EventPerpetualMarketUpdate) String() string { return proto.CompactTextString(m) } func (*EventPerpetualMarketUpdate) ProtoMessage() {} func (*EventPerpetualMarketUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{12} + return fileDescriptor_20dda602b6b13fd3, []int{14} } func (m *EventPerpetualMarketUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -795,7 +899,7 @@ func (m *EventExpiryFuturesMarketUpdate) Reset() { *m = EventExpiryFutur func (m *EventExpiryFuturesMarketUpdate) String() string { return proto.CompactTextString(m) } func (*EventExpiryFuturesMarketUpdate) ProtoMessage() {} func (*EventExpiryFuturesMarketUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{13} + return fileDescriptor_20dda602b6b13fd3, []int{15} } func (m *EventExpiryFuturesMarketUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -850,7 +954,7 @@ func (m *EventPerpetualMarketFundingUpdate) Reset() { *m = EventPerpetua func (m *EventPerpetualMarketFundingUpdate) String() string { return proto.CompactTextString(m) } func (*EventPerpetualMarketFundingUpdate) ProtoMessage() {} func (*EventPerpetualMarketFundingUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{14} + return fileDescriptor_20dda602b6b13fd3, []int{16} } func (m *EventPerpetualMarketFundingUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -910,7 +1014,7 @@ func (m *EventSubaccountDeposit) Reset() { *m = EventSubaccountDeposit{} func (m *EventSubaccountDeposit) String() string { return proto.CompactTextString(m) } func (*EventSubaccountDeposit) ProtoMessage() {} func (*EventSubaccountDeposit) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{15} + return fileDescriptor_20dda602b6b13fd3, []int{17} } func (m *EventSubaccountDeposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -970,7 +1074,7 @@ func (m *EventSubaccountWithdraw) Reset() { *m = EventSubaccountWithdraw func (m *EventSubaccountWithdraw) String() string { return proto.CompactTextString(m) } func (*EventSubaccountWithdraw) ProtoMessage() {} func (*EventSubaccountWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{16} + return fileDescriptor_20dda602b6b13fd3, []int{18} } func (m *EventSubaccountWithdraw) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1030,7 +1134,7 @@ func (m *EventSubaccountBalanceTransfer) Reset() { *m = EventSubaccountB func (m *EventSubaccountBalanceTransfer) String() string { return proto.CompactTextString(m) } func (*EventSubaccountBalanceTransfer) ProtoMessage() {} func (*EventSubaccountBalanceTransfer) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{17} + return fileDescriptor_20dda602b6b13fd3, []int{19} } func (m *EventSubaccountBalanceTransfer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1088,7 +1192,7 @@ func (m *EventBatchDepositUpdate) Reset() { *m = EventBatchDepositUpdate func (m *EventBatchDepositUpdate) String() string { return proto.CompactTextString(m) } func (*EventBatchDepositUpdate) ProtoMessage() {} func (*EventBatchDepositUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{18} + return fileDescriptor_20dda602b6b13fd3, []int{20} } func (m *EventBatchDepositUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1133,7 +1237,7 @@ func (m *DerivativeMarketOrderCancel) Reset() { *m = DerivativeMarketOrd func (m *DerivativeMarketOrderCancel) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketOrderCancel) ProtoMessage() {} func (*DerivativeMarketOrderCancel) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{19} + return fileDescriptor_20dda602b6b13fd3, []int{21} } func (m *DerivativeMarketOrderCancel) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1180,7 +1284,7 @@ func (m *EventCancelDerivativeOrder) Reset() { *m = EventCancelDerivativ func (m *EventCancelDerivativeOrder) String() string { return proto.CompactTextString(m) } func (*EventCancelDerivativeOrder) ProtoMessage() {} func (*EventCancelDerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{20} + return fileDescriptor_20dda602b6b13fd3, []int{22} } func (m *EventCancelDerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1245,7 +1349,7 @@ func (m *EventFeeDiscountSchedule) Reset() { *m = EventFeeDiscountSchedu func (m *EventFeeDiscountSchedule) String() string { return proto.CompactTextString(m) } func (*EventFeeDiscountSchedule) ProtoMessage() {} func (*EventFeeDiscountSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{21} + return fileDescriptor_20dda602b6b13fd3, []int{23} } func (m *EventFeeDiscountSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1290,7 +1394,7 @@ func (m *EventTradingRewardCampaignUpdate) Reset() { *m = EventTradingRe func (m *EventTradingRewardCampaignUpdate) String() string { return proto.CompactTextString(m) } func (*EventTradingRewardCampaignUpdate) ProtoMessage() {} func (*EventTradingRewardCampaignUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{22} + return fileDescriptor_20dda602b6b13fd3, []int{24} } func (m *EventTradingRewardCampaignUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1341,7 +1445,7 @@ func (m *EventTradingRewardDistribution) Reset() { *m = EventTradingRewa func (m *EventTradingRewardDistribution) String() string { return proto.CompactTextString(m) } func (*EventTradingRewardDistribution) ProtoMessage() {} func (*EventTradingRewardDistribution) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{23} + return fileDescriptor_20dda602b6b13fd3, []int{25} } func (m *EventTradingRewardDistribution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1388,7 +1492,7 @@ func (m *EventNewConditionalDerivativeOrder) Reset() { *m = EventNewCond func (m *EventNewConditionalDerivativeOrder) String() string { return proto.CompactTextString(m) } func (*EventNewConditionalDerivativeOrder) ProtoMessage() {} func (*EventNewConditionalDerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{24} + return fileDescriptor_20dda602b6b13fd3, []int{26} } func (m *EventNewConditionalDerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1456,7 +1560,7 @@ func (m *EventCancelConditionalDerivativeOrder) Reset() { *m = EventCanc func (m *EventCancelConditionalDerivativeOrder) String() string { return proto.CompactTextString(m) } func (*EventCancelConditionalDerivativeOrder) ProtoMessage() {} func (*EventCancelConditionalDerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{25} + return fileDescriptor_20dda602b6b13fd3, []int{27} } func (m *EventCancelConditionalDerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1527,7 +1631,7 @@ func (m *EventConditionalDerivativeOrderTrigger) Reset() { func (m *EventConditionalDerivativeOrderTrigger) String() string { return proto.CompactTextString(m) } func (*EventConditionalDerivativeOrderTrigger) ProtoMessage() {} func (*EventConditionalDerivativeOrderTrigger) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{26} + return fileDescriptor_20dda602b6b13fd3, []int{28} } func (m *EventConditionalDerivativeOrderTrigger) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1602,7 +1706,7 @@ func (m *EventOrderFail) Reset() { *m = EventOrderFail{} } func (m *EventOrderFail) String() string { return proto.CompactTextString(m) } func (*EventOrderFail) ProtoMessage() {} func (*EventOrderFail) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{27} + return fileDescriptor_20dda602b6b13fd3, []int{29} } func (m *EventOrderFail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1671,7 +1775,7 @@ func (m *EventAtomicMarketOrderFeeMultipliersUpdated) String() string { } func (*EventAtomicMarketOrderFeeMultipliersUpdated) ProtoMessage() {} func (*EventAtomicMarketOrderFeeMultipliersUpdated) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{28} + return fileDescriptor_20dda602b6b13fd3, []int{30} } func (m *EventAtomicMarketOrderFeeMultipliersUpdated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1716,7 +1820,7 @@ func (m *EventOrderbookUpdate) Reset() { *m = EventOrderbookUpdate{} } func (m *EventOrderbookUpdate) String() string { return proto.CompactTextString(m) } func (*EventOrderbookUpdate) ProtoMessage() {} func (*EventOrderbookUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{29} + return fileDescriptor_20dda602b6b13fd3, []int{31} } func (m *EventOrderbookUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1768,7 +1872,7 @@ func (m *OrderbookUpdate) Reset() { *m = OrderbookUpdate{} } func (m *OrderbookUpdate) String() string { return proto.CompactTextString(m) } func (*OrderbookUpdate) ProtoMessage() {} func (*OrderbookUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{30} + return fileDescriptor_20dda602b6b13fd3, []int{32} } func (m *OrderbookUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1821,7 +1925,7 @@ func (m *Orderbook) Reset() { *m = Orderbook{} } func (m *Orderbook) String() string { return proto.CompactTextString(m) } func (*Orderbook) ProtoMessage() {} func (*Orderbook) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{31} + return fileDescriptor_20dda602b6b13fd3, []int{33} } func (m *Orderbook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1880,7 +1984,7 @@ func (m *EventGrantAuthorizations) Reset() { *m = EventGrantAuthorizatio func (m *EventGrantAuthorizations) String() string { return proto.CompactTextString(m) } func (*EventGrantAuthorizations) ProtoMessage() {} func (*EventGrantAuthorizations) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{32} + return fileDescriptor_20dda602b6b13fd3, []int{34} } func (m *EventGrantAuthorizations) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,7 +2037,7 @@ func (m *EventGrantActivation) Reset() { *m = EventGrantActivation{} } func (m *EventGrantActivation) String() string { return proto.CompactTextString(m) } func (*EventGrantActivation) ProtoMessage() {} func (*EventGrantActivation) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{33} + return fileDescriptor_20dda602b6b13fd3, []int{35} } func (m *EventGrantActivation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1985,7 +2089,7 @@ func (m *EventInvalidGrant) Reset() { *m = EventInvalidGrant{} } func (m *EventInvalidGrant) String() string { return proto.CompactTextString(m) } func (*EventInvalidGrant) ProtoMessage() {} func (*EventInvalidGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{34} + return fileDescriptor_20dda602b6b13fd3, []int{36} } func (m *EventInvalidGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2040,7 +2144,7 @@ func (m *EventOrderCancelFail) Reset() { *m = EventOrderCancelFail{} } func (m *EventOrderCancelFail) String() string { return proto.CompactTextString(m) } func (*EventOrderCancelFail) ProtoMessage() {} func (*EventOrderCancelFail) Descriptor() ([]byte, []int) { - return fileDescriptor_20dda602b6b13fd3, []int{35} + return fileDescriptor_20dda602b6b13fd3, []int{37} } func (m *EventOrderCancelFail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2110,6 +2214,8 @@ func init() { proto.RegisterType((*EventLostFundsFromLiquidation)(nil), "injective.exchange.v1beta1.EventLostFundsFromLiquidation") proto.RegisterType((*EventBatchDerivativePosition)(nil), "injective.exchange.v1beta1.EventBatchDerivativePosition") proto.RegisterType((*EventDerivativeMarketPaused)(nil), "injective.exchange.v1beta1.EventDerivativeMarketPaused") + proto.RegisterType((*EventSettledMarketBalance)(nil), "injective.exchange.v1beta1.EventSettledMarketBalance") + proto.RegisterType((*EventNotSettledMarketBalance)(nil), "injective.exchange.v1beta1.EventNotSettledMarketBalance") proto.RegisterType((*EventMarketBeyondBankruptcy)(nil), "injective.exchange.v1beta1.EventMarketBeyondBankruptcy") proto.RegisterType((*EventAllPositionsHaircut)(nil), "injective.exchange.v1beta1.EventAllPositionsHaircut") proto.RegisterType((*EventBinaryOptionsMarketUpdate)(nil), "injective.exchange.v1beta1.EventBinaryOptionsMarketUpdate") @@ -2148,138 +2254,139 @@ func init() { } var fileDescriptor_20dda602b6b13fd3 = []byte{ - // 2082 bytes of a gzipped FileDescriptorProto + // 2111 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0xfb, 0x6b, 0x3d, 0x6f, 0xc6, 0x76, 0xdc, 0xb6, 0xb3, 0x5e, 0x87, 0x38, 0x4e, 0xef, + 0x15, 0x77, 0xfb, 0x6b, 0x3d, 0x6f, 0xc6, 0xf6, 0xba, 0x6d, 0x67, 0x1d, 0x87, 0x38, 0x4e, 0xef, 0x26, 0x9b, 0x64, 0x97, 0x99, 0x8d, 0x57, 0xab, 0xbd, 0x70, 0xc0, 0x63, 0x67, 0x36, 0x66, 0x9d, - 0xc4, 0x5b, 0x0e, 0x5a, 0x29, 0x12, 0x6a, 0xd5, 0x74, 0x97, 0x67, 0x8a, 0x74, 0x77, 0x75, 0xba, + 0xc4, 0xdb, 0x0e, 0x5a, 0x29, 0x12, 0x6a, 0xd5, 0x74, 0x97, 0x67, 0x8a, 0x74, 0x77, 0x75, 0xba, 0xaa, 0x9d, 0x0c, 0x70, 0xe1, 0x06, 0x27, 0x38, 0x20, 0xc1, 0x8d, 0x23, 0x07, 0x24, 0x24, 0x0e, 0x9c, 0xb8, 0xed, 0x85, 0x45, 0xe2, 0xb0, 0x47, 0x04, 0x68, 0x85, 0x12, 0x24, 0xfe, 0x08, 0x2e, - 0xa8, 0x3e, 0x7a, 0xba, 0xe7, 0x23, 0xe3, 0x99, 0x38, 0x88, 0x5b, 0x77, 0xf5, 0xab, 0xdf, 0xfb, - 0xd5, 0xaf, 0x5e, 0xbd, 0x7a, 0x55, 0x0d, 0xef, 0xd2, 0xe8, 0xfb, 0xc4, 0x13, 0xf4, 0x94, 0xd4, - 0xc8, 0x33, 0xaf, 0x8d, 0xa3, 0x16, 0xa9, 0x9d, 0xde, 0x6e, 0x12, 0x81, 0x6f, 0xd7, 0xc8, 0x29, - 0x89, 0x04, 0xaf, 0xc6, 0x09, 0x13, 0xcc, 0xde, 0xec, 0x1a, 0x56, 0x33, 0xc3, 0xaa, 0x31, 0xdc, - 0x5c, 0x6b, 0xb1, 0x16, 0x53, 0x66, 0x35, 0xf9, 0xa4, 0x7b, 0x6c, 0x6e, 0x79, 0x8c, 0x87, 0x8c, - 0xd7, 0x9a, 0x98, 0xe7, 0x98, 0x1e, 0xa3, 0x91, 0xf9, 0x7e, 0x2d, 0x77, 0xcd, 0x12, 0xec, 0x05, - 0xb9, 0x91, 0x7e, 0x35, 0x66, 0x37, 0x47, 0x31, 0xcc, 0x98, 0x28, 0x53, 0xe7, 0x1f, 0x16, 0xbc, - 0x79, 0x47, 0x92, 0xae, 0x63, 0xe1, 0xb5, 0x8f, 0x63, 0x26, 0xee, 0x3c, 0x23, 0x5e, 0x2a, 0x28, - 0x8b, 0xec, 0x4b, 0x50, 0x0a, 0x71, 0xf2, 0x98, 0x08, 0x97, 0xfa, 0x1b, 0xd6, 0xb6, 0x75, 0xa3, - 0x84, 0x16, 0x74, 0xc3, 0x81, 0x6f, 0xaf, 0xc3, 0x3c, 0xe5, 0x6e, 0x33, 0xed, 0x6c, 0x4c, 0x6f, - 0x5b, 0x37, 0x16, 0xd0, 0x1c, 0xe5, 0xf5, 0xb4, 0x63, 0x3f, 0x80, 0x45, 0x92, 0x01, 0x3c, 0xec, - 0xc4, 0x64, 0x63, 0x66, 0xdb, 0xba, 0xb1, 0xb4, 0x73, 0xb3, 0xfa, 0x72, 0x2d, 0xaa, 0x77, 0x8a, - 0x1d, 0x50, 0x6f, 0x7f, 0xfb, 0x5b, 0x30, 0x2f, 0x12, 0xec, 0x13, 0xbe, 0x31, 0xbb, 0x3d, 0x73, - 0xa3, 0xbc, 0xf3, 0xce, 0x28, 0xa4, 0x87, 0xd2, 0xf2, 0x90, 0xb5, 0x90, 0xe9, 0xe3, 0xfc, 0x7b, - 0x1a, 0x2e, 0xe7, 0xc3, 0xdb, 0x27, 0x09, 0x3d, 0xc5, 0xb2, 0xeb, 0xf9, 0x06, 0x79, 0x0d, 0x96, - 0x28, 0x77, 0x03, 0xfa, 0x24, 0xa5, 0x3e, 0x96, 0x28, 0x6a, 0x94, 0x0b, 0x68, 0x91, 0xf2, 0xc3, - 0xbc, 0xd1, 0x46, 0x60, 0x7b, 0x69, 0x98, 0x06, 0xca, 0xa3, 0x7b, 0x92, 0x46, 0x3e, 0x8d, 0x5a, - 0x1b, 0xb3, 0xd2, 0x47, 0xfd, 0xed, 0x2f, 0xbf, 0xbe, 0x62, 0xfd, 0xed, 0xeb, 0x2b, 0x97, 0xf4, - 0x8c, 0x73, 0xff, 0x71, 0x95, 0xb2, 0x5a, 0x88, 0x45, 0xbb, 0x7a, 0x48, 0x5a, 0xd8, 0xeb, 0xec, - 0x13, 0x0f, 0xad, 0xe4, 0xdd, 0x1b, 0xba, 0xf7, 0xa0, 0xbe, 0x73, 0xe7, 0xd4, 0xb7, 0xd1, 0xd5, - 0x77, 0x5e, 0xe9, 0x5b, 0x1d, 0x85, 0x94, 0x0b, 0x38, 0xa0, 0xf4, 0x17, 0x99, 0xd2, 0x87, 0x8c, - 0x0b, 0xc9, 0x96, 0x37, 0x12, 0x16, 0x16, 0xe5, 0x18, 0xa9, 0xf4, 0xdb, 0xb0, 0xc8, 0xd3, 0x26, - 0xf6, 0x3c, 0x96, 0x46, 0xca, 0x40, 0x0a, 0x5e, 0x41, 0x95, 0xbc, 0xf1, 0xc0, 0xb7, 0x9f, 0xc1, - 0xbb, 0x01, 0xe3, 0x42, 0x49, 0xc9, 0xdd, 0x93, 0x84, 0x85, 0x2e, 0x3e, 0xc5, 0x34, 0xc0, 0xcd, - 0x80, 0xb8, 0x7e, 0x9a, 0xd0, 0xa8, 0xe5, 0xc6, 0xb8, 0xc3, 0x52, 0xa1, 0x26, 0x44, 0xab, 0x3c, - 0x75, 0x96, 0xca, 0x4e, 0x50, 0x64, 0xbc, 0x9b, 0x01, 0xee, 0x2b, 0xbc, 0x23, 0x05, 0x67, 0x13, - 0xb8, 0xdc, 0xef, 0x99, 0x25, 0x3e, 0x49, 0x5c, 0x0f, 0x47, 0x1e, 0x09, 0x78, 0x61, 0x56, 0xcf, - 0xf4, 0xf7, 0x56, 0x8f, 0xbf, 0x07, 0x12, 0x66, 0x4f, 0xa3, 0x38, 0x3f, 0xb5, 0xe0, 0x1b, 0xc3, - 0xc2, 0xf5, 0x88, 0x71, 0x7a, 0xb6, 0x86, 0x87, 0x50, 0x8a, 0x8d, 0x21, 0xdf, 0x98, 0x3e, 0x7b, - 0x36, 0x8f, 0xbb, 0xda, 0x66, 0xf8, 0x28, 0x07, 0x70, 0xfe, 0x68, 0xc1, 0x25, 0xc5, 0x25, 0xa7, - 0x71, 0x4f, 0x79, 0x3a, 0xc2, 0x29, 0x27, 0xfe, 0x68, 0x2a, 0x57, 0xa1, 0xc2, 0x89, 0x10, 0x01, - 0x71, 0xe3, 0x84, 0x7a, 0x44, 0xcd, 0x66, 0x09, 0x95, 0x75, 0xdb, 0x91, 0x6c, 0xb2, 0xab, 0xb0, - 0x2a, 0x98, 0xc0, 0x81, 0x1b, 0x52, 0xce, 0xe5, 0xcc, 0x29, 0x6d, 0xf5, 0xc4, 0xa1, 0x15, 0xf5, - 0xe9, 0x9e, 0xfe, 0xa2, 0xb4, 0xb2, 0xdf, 0x07, 0xbb, 0xc7, 0xd2, 0x4d, 0xb0, 0x20, 0x5a, 0x77, - 0x74, 0x21, 0x2c, 0x58, 0x22, 0x2c, 0x88, 0xf3, 0xb3, 0x8c, 0xbd, 0xe6, 0x5c, 0x27, 0x1d, 0x16, - 0xf9, 0x75, 0x1c, 0x3d, 0x4e, 0xd2, 0x58, 0x78, 0x9d, 0x73, 0xb3, 0xff, 0x00, 0xd6, 0x32, 0x36, - 0x06, 0xa7, 0x48, 0x3f, 0x63, 0xaa, 0x9d, 0x2b, 0x56, 0xce, 0x4f, 0x2c, 0xd8, 0x50, 0x8c, 0x76, - 0x83, 0x20, 0xd3, 0x9b, 0xdf, 0xc5, 0x34, 0xf1, 0x52, 0x71, 0x6e, 0x3a, 0xc3, 0xc5, 0x99, 0x79, - 0x89, 0x38, 0x0c, 0xb6, 0x74, 0x94, 0xd1, 0x08, 0x27, 0x9d, 0x07, 0xb1, 0xa2, 0xa2, 0xb9, 0x7e, - 0x37, 0xf6, 0xb1, 0x20, 0xf6, 0x3d, 0x98, 0xd7, 0xee, 0x15, 0x99, 0xf2, 0x4e, 0x6d, 0x54, 0x1c, - 0x0d, 0x81, 0xa9, 0xcf, 0xca, 0x95, 0x80, 0x0c, 0x88, 0xf3, 0x67, 0x0b, 0x6c, 0xe5, 0xf1, 0x3e, - 0x79, 0x2a, 0xf7, 0x18, 0x15, 0xf4, 0x7c, 0xf4, 0xa8, 0x0f, 0x00, 0x9a, 0x69, 0x47, 0x2f, 0xb3, - 0x2c, 0x9c, 0x6f, 0x8d, 0x0c, 0xe7, 0x98, 0x89, 0x43, 0x1a, 0x52, 0x8d, 0x8e, 0x4a, 0xcd, 0xb4, - 0x63, 0xfc, 0x7c, 0x0a, 0x65, 0x4e, 0x82, 0x20, 0xc3, 0x9a, 0x99, 0x18, 0x0b, 0x64, 0x77, 0x0d, - 0xe6, 0xfc, 0x3d, 0x9b, 0xc7, 0xfb, 0xe4, 0x69, 0xbe, 0x34, 0xc6, 0x19, 0xd1, 0x83, 0x21, 0x23, - 0xfa, 0x60, 0xbc, 0x74, 0x3b, 0x7c, 0x5c, 0x9f, 0x0d, 0x1b, 0xd7, 0xe4, 0x88, 0xc5, 0xd1, 0xfd, - 0x10, 0xd6, 0xd4, 0xe0, 0x74, 0x46, 0xea, 0xce, 0xd5, 0xe8, 0x81, 0x35, 0x60, 0x4e, 0x51, 0x50, - 0x91, 0x39, 0x91, 0xb2, 0x26, 0x4e, 0x74, 0x77, 0xe7, 0x7b, 0xb0, 0xae, 0x9c, 0x4b, 0x9b, 0x9e, - 0x70, 0xdc, 0xef, 0x0b, 0xc7, 0xeb, 0x67, 0x79, 0x18, 0x1a, 0x85, 0xbf, 0x99, 0x86, 0x4d, 0x85, - 0x7f, 0x44, 0x92, 0x98, 0x88, 0x14, 0x07, 0x3d, 0x4e, 0xbe, 0xd3, 0xe7, 0xe4, 0xfd, 0xf1, 0x84, - 0x1c, 0xe6, 0xca, 0xa6, 0xb0, 0x1e, 0x67, 0x4e, 0xb2, 0x04, 0x41, 0xa3, 0x13, 0x66, 0x14, 0x1a, - 0xb9, 0x9c, 0xfa, 0xd8, 0x1d, 0x44, 0x27, 0x4c, 0xa1, 0x5b, 0x68, 0x35, 0x1e, 0xfc, 0x64, 0x23, - 0x78, 0x23, 0x2b, 0x2d, 0x66, 0x14, 0xf8, 0xce, 0x04, 0xe0, 0xa6, 0xac, 0x30, 0xf8, 0x19, 0x90, - 0xf3, 0x2f, 0xcb, 0x64, 0x88, 0x3b, 0xcf, 0x62, 0x9a, 0x74, 0x1a, 0xa9, 0x48, 0x13, 0xc2, 0xff, - 0x67, 0x6a, 0x9d, 0xc2, 0x26, 0x51, 0x8e, 0xdc, 0x13, 0xed, 0xa9, 0x47, 0x32, 0x3d, 0xaa, 0x0f, - 0x47, 0x57, 0x38, 0x03, 0x34, 0x0b, 0xb2, 0xbd, 0x49, 0x86, 0x7f, 0x76, 0xfe, 0x32, 0x0d, 0x57, - 0x87, 0x05, 0x84, 0x51, 0xc5, 0x8c, 0x74, 0x64, 0xe8, 0x17, 0xd4, 0x9f, 0x3e, 0x97, 0xfa, 0x53, - 0x5d, 0xf5, 0xed, 0x5b, 0xb0, 0x42, 0xb9, 0xdb, 0x66, 0x69, 0x12, 0x74, 0xdc, 0xe2, 0xdc, 0x2e, - 0xa0, 0x65, 0xca, 0xef, 0xaa, 0xf6, 0xac, 0x1e, 0x6c, 0x40, 0xc5, 0x58, 0x14, 0xf6, 0xc3, 0xf1, - 0xaa, 0xcb, 0xb2, 0xe9, 0x28, 0xb7, 0x04, 0xbb, 0x0e, 0x20, 0xc7, 0x64, 0x76, 0x98, 0xb9, 0xf1, - 0x51, 0x94, 0x36, 0x6a, 0x13, 0x72, 0x7e, 0x69, 0xc1, 0x45, 0xbd, 0x7e, 0xbb, 0x85, 0xc5, 0x3e, - 0x51, 0x05, 0x85, 0x7d, 0x05, 0xca, 0x3c, 0xf1, 0x5c, 0xec, 0xfb, 0x09, 0xe1, 0xdc, 0xa8, 0x08, - 0x3c, 0xf1, 0x76, 0x75, 0xcb, 0x78, 0xf5, 0xdf, 0xc7, 0x30, 0x8f, 0x43, 0xf9, 0x6c, 0x62, 0xe2, - 0xad, 0xaa, 0x66, 0x56, 0x95, 0xe7, 0xa5, 0xae, 0xc8, 0x7b, 0x8c, 0x46, 0x59, 0x80, 0x69, 0x73, - 0xe7, 0x57, 0xd9, 0x29, 0x27, 0x67, 0xf6, 0x39, 0x15, 0x6d, 0x3f, 0xc1, 0x4f, 0x07, 0x3d, 0x5b, - 0x43, 0x3c, 0x5f, 0x81, 0xb2, 0xcf, 0x45, 0x97, 0xbf, 0xde, 0x81, 0xc1, 0xe7, 0x22, 0xe3, 0xff, - 0xca, 0xd4, 0x7e, 0x9f, 0x2d, 0xb5, 0x9c, 0x5a, 0x1d, 0x07, 0x32, 0xfb, 0x3e, 0x4c, 0x70, 0xc4, - 0x4f, 0x48, 0x22, 0xe3, 0x41, 0x8a, 0x37, 0xc8, 0xb2, 0x84, 0x96, 0x79, 0xe2, 0x1d, 0x17, 0x89, - 0xde, 0x82, 0x15, 0x49, 0x74, 0x50, 0xcb, 0x12, 0x5a, 0xf6, 0xb9, 0x38, 0x7e, 0x2d, 0x72, 0x86, - 0xc5, 0x33, 0xa3, 0x99, 0x62, 0xb3, 0x58, 0x10, 0x2c, 0xfb, 0xba, 0xc1, 0x4d, 0x55, 0x8b, 0x9c, - 0x6c, 0xb9, 0x2d, 0xdd, 0x1c, 0x9d, 0x1f, 0x0a, 0x18, 0x68, 0xc9, 0x2f, 0xbe, 0x72, 0xe7, 0x4f, - 0x16, 0x5c, 0xea, 0xcf, 0x20, 0x85, 0xb2, 0xd9, 0x7e, 0x04, 0x15, 0xb3, 0x40, 0xf5, 0x2e, 0xa4, - 0x13, 0xd2, 0xed, 0x49, 0x12, 0x52, 0xbe, 0x19, 0x59, 0xa8, 0x1c, 0xe6, 0x4d, 0xf6, 0x21, 0x2c, - 0xeb, 0x12, 0xdf, 0x7d, 0x92, 0xe2, 0x48, 0x50, 0xa1, 0x8f, 0x82, 0x63, 0x96, 0xfa, 0x4b, 0xba, - 0xef, 0x67, 0xa6, 0x6b, 0xbe, 0x03, 0x69, 0xe6, 0x7d, 0xe5, 0xc3, 0xe8, 0x4c, 0xf3, 0x0e, 0xa8, - 0xe3, 0x65, 0x48, 0x4d, 0x67, 0x73, 0x24, 0xed, 0x6d, 0xb4, 0x3f, 0x87, 0x72, 0x20, 0x5f, 0x8d, - 0x14, 0x7a, 0x62, 0x27, 0x2e, 0x09, 0x8c, 0x12, 0x10, 0x74, 0x5b, 0xec, 0x10, 0x56, 0x8b, 0x22, - 0x9b, 0x83, 0x8f, 0xca, 0x37, 0xe5, 0x9d, 0x8f, 0x27, 0xd6, 0x5a, 0xd3, 0x35, 0x7e, 0x56, 0xc2, - 0xfe, 0x0f, 0x4e, 0xcb, 0x14, 0x59, 0x0d, 0x42, 0xf6, 0x29, 0x57, 0x11, 0x7b, 0xec, 0xb5, 0x89, - 0x9f, 0x06, 0xc4, 0xfe, 0x14, 0x16, 0xb8, 0x79, 0x1e, 0xa7, 0x3c, 0x1d, 0x02, 0x81, 0xba, 0x00, - 0xce, 0x73, 0x0b, 0xb6, 0x95, 0x27, 0x79, 0xa2, 0x95, 0xd9, 0x90, 0x3c, 0xc5, 0x89, 0xbf, 0x87, - 0xc3, 0x18, 0xd3, 0x56, 0x64, 0xa2, 0xfa, 0x11, 0x2c, 0x7a, 0xa6, 0x45, 0xef, 0x49, 0xda, 0xed, - 0x47, 0x67, 0xdd, 0x45, 0x0c, 0xe0, 0xc9, 0x6d, 0x07, 0x55, 0xbc, 0xc2, 0x9b, 0xdd, 0x84, 0xf5, - 0x2e, 0x76, 0xa2, 0x8c, 0xdd, 0x98, 0xb1, 0x60, 0xac, 0x13, 0x5c, 0x06, 0xab, 0x9d, 0x1c, 0x31, - 0x16, 0xa0, 0x55, 0x6f, 0xa0, 0x8d, 0x3b, 0xa9, 0xc9, 0x31, 0x3d, 0x9c, 0xf6, 0x29, 0x17, 0x09, - 0x6d, 0xea, 0x6b, 0x90, 0x63, 0x58, 0xce, 0x12, 0x86, 0x26, 0x91, 0xad, 0xdb, 0x91, 0xc5, 0xdc, - 0xae, 0xee, 0xa2, 0xf1, 0x38, 0x5a, 0xc2, 0x3d, 0xef, 0xce, 0x1f, 0x2c, 0x70, 0xb2, 0x52, 0x79, - 0x8f, 0x45, 0xbe, 0x3a, 0xf3, 0xe0, 0xc9, 0xc2, 0x7e, 0xb7, 0xb7, 0xb6, 0x7c, 0x6f, 0xbc, 0x48, - 0xd3, 0x85, 0xad, 0xee, 0x69, 0xdb, 0x30, 0xdb, 0xc6, 0xbc, 0xad, 0x16, 0x43, 0x05, 0xa9, 0x67, - 0xe9, 0x93, 0x66, 0x65, 0x86, 0x0a, 0xe2, 0x05, 0xb4, 0x40, 0x4d, 0x6d, 0xe0, 0xfc, 0x7a, 0x1a, - 0xae, 0x15, 0x96, 0xe9, 0xab, 0x52, 0xff, 0x3f, 0xaf, 0xd8, 0xfe, 0xb4, 0x38, 0xfb, 0xfa, 0xd2, - 0xa2, 0xf3, 0x1f, 0x0b, 0xae, 0x6b, 0x85, 0x5e, 0xaa, 0xcd, 0xc3, 0x84, 0xb6, 0x5a, 0xc3, 0x24, - 0xaa, 0x14, 0x24, 0xba, 0x0e, 0x4b, 0x46, 0x0d, 0x63, 0x6e, 0x34, 0xea, 0x6b, 0x95, 0xc7, 0x6d, - 0xa1, 0x1f, 0x89, 0x6f, 0x12, 0x50, 0x61, 0x4a, 0xed, 0xee, 0x37, 0xe5, 0xf9, 0xae, 0x9c, 0xe0, - 0x5b, 0xb0, 0x12, 0x07, 0xd8, 0xeb, 0x35, 0x9f, 0x55, 0xe6, 0xcb, 0xfa, 0x43, 0x6e, 0x5b, 0x85, - 0xd5, 0x7e, 0x74, 0x8f, 0xfa, 0xba, 0x0a, 0x42, 0x2b, 0xbd, 0xe0, 0x7b, 0xd4, 0x77, 0x02, 0x58, - 0x52, 0x83, 0x57, 0x0d, 0x0d, 0x4c, 0x03, 0x7b, 0x03, 0xde, 0x30, 0xb1, 0x6f, 0x86, 0x98, 0xbd, - 0xda, 0x17, 0x61, 0x5e, 0xba, 0x26, 0x7a, 0x3d, 0x57, 0x90, 0x79, 0xb3, 0xd7, 0x60, 0xee, 0x24, - 0xc0, 0x2d, 0x7d, 0x6a, 0x5b, 0x44, 0xfa, 0x45, 0x86, 0xaa, 0x47, 0x7d, 0x7d, 0xd7, 0x59, 0x42, - 0xea, 0xd9, 0xf9, 0x85, 0x05, 0xef, 0xe9, 0x8b, 0x03, 0xc1, 0x42, 0xea, 0x15, 0x66, 0xa6, 0x41, - 0xc8, 0xbd, 0x34, 0x10, 0x34, 0x0e, 0x28, 0x49, 0xb8, 0xce, 0x55, 0xbe, 0x4d, 0xe0, 0x62, 0x76, - 0x25, 0x41, 0x88, 0x1b, 0xe6, 0x06, 0x66, 0x45, 0x8f, 0x4c, 0x96, 0xa6, 0x30, 0x2d, 0x02, 0xa3, - 0xb5, 0x70, 0xb0, 0x91, 0x3b, 0x5f, 0x58, 0xe6, 0xa8, 0xa8, 0xa8, 0x34, 0x19, 0x7b, 0x6c, 0x92, - 0xe5, 0x7d, 0xa8, 0xf0, 0x98, 0xf5, 0xef, 0xff, 0x23, 0x17, 0x6e, 0x1f, 0x04, 0x2a, 0x4b, 0x00, - 0xb3, 0xfd, 0xdb, 0x8f, 0xc0, 0xf6, 0xbb, 0xa1, 0xd5, 0x45, 0x9d, 0x9e, 0x1c, 0x75, 0x25, 0x87, - 0xc9, 0x4a, 0x8b, 0x36, 0x2c, 0xf7, 0xd3, 0xbf, 0x00, 0x33, 0x9c, 0x3c, 0x51, 0xd3, 0x38, 0x8b, - 0xe4, 0xa3, 0xbd, 0x07, 0x25, 0x96, 0x19, 0x99, 0x34, 0x74, 0x6d, 0x2c, 0xbf, 0x28, 0xef, 0xe7, - 0xfc, 0xce, 0x82, 0x52, 0xf7, 0xc3, 0xe8, 0x45, 0xf1, 0x6d, 0x7d, 0x4f, 0x10, 0x90, 0x53, 0xd2, - 0xdd, 0x06, 0xae, 0x8e, 0x72, 0x78, 0x28, 0x2d, 0xd5, 0xc5, 0x80, 0x7a, 0xe2, 0x76, 0xdd, 0x5c, - 0x0c, 0x18, 0x88, 0x99, 0x71, 0x21, 0xd4, 0x4d, 0x80, 0xc6, 0x70, 0x7e, 0x64, 0x76, 0xe0, 0x4f, - 0x12, 0x1c, 0x89, 0xdd, 0x54, 0xb4, 0x59, 0x42, 0x7f, 0xa0, 0x6e, 0x72, 0xb9, 0x0c, 0xf7, 0x96, - 0x6c, 0x36, 0xc5, 0x56, 0x09, 0x65, 0xaf, 0x76, 0x03, 0xe6, 0xd5, 0xe3, 0x58, 0xdb, 0xd7, 0x20, - 0x34, 0x32, 0xbd, 0x9d, 0x1f, 0x67, 0xd1, 0xa5, 0x6d, 0x24, 0x80, 0xbe, 0x45, 0xee, 0xba, 0x26, - 0xbd, 0xae, 0x49, 0x91, 0xd4, 0x74, 0x2f, 0xa9, 0x8f, 0x7a, 0x0a, 0xdd, 0x52, 0xfd, 0xb2, 0xa9, - 0xdd, 0xd6, 0x07, 0x6b, 0xb7, 0x83, 0x48, 0x74, 0xcb, 0xdc, 0x4f, 0x60, 0x45, 0x51, 0x38, 0x88, - 0x4e, 0x71, 0x40, 0x7d, 0xc5, 0xe4, 0x55, 0xfc, 0x3b, 0xbf, 0xed, 0x59, 0x2a, 0x3a, 0xef, 0xab, - 0xb4, 0x31, 0xf9, 0x95, 0x78, 0xa9, 0xef, 0x60, 0x72, 0x19, 0xa0, 0x2f, 0x1d, 0x96, 0x4c, 0xd4, - 0xa9, 0xcc, 0x76, 0x01, 0x66, 0x64, 0x26, 0xd3, 0xb7, 0xa4, 0xf2, 0xd1, 0xde, 0x86, 0xb2, 0x4f, - 0xb8, 0x97, 0x50, 0x75, 0x5d, 0x67, 0x72, 0x5c, 0xb1, 0xa9, 0xde, 0xfe, 0xf2, 0xf9, 0x96, 0xf5, - 0xd5, 0xf3, 0x2d, 0xeb, 0x9f, 0xcf, 0xb7, 0xac, 0x9f, 0xbf, 0xd8, 0x9a, 0xfa, 0xea, 0xc5, 0xd6, - 0xd4, 0x5f, 0x5f, 0x6c, 0x4d, 0x3d, 0xba, 0xdf, 0xa2, 0xa2, 0x9d, 0x36, 0xab, 0x1e, 0x0b, 0x6b, - 0x07, 0xd9, 0xb4, 0x1e, 0xe2, 0x26, 0xaf, 0x75, 0x27, 0xf9, 0x9b, 0x1e, 0x4b, 0x48, 0xf1, 0xb5, - 0x8d, 0x69, 0x54, 0x0b, 0x99, 0xac, 0xb5, 0x78, 0xfe, 0x37, 0x4a, 0x74, 0x62, 0xc2, 0x9b, 0xf3, - 0xea, 0x1f, 0xd4, 0x87, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x62, 0x4f, 0x5a, 0x52, 0x1b, - 0x00, 0x00, + 0xa8, 0x3e, 0xfa, 0x63, 0x3e, 0xd2, 0x9e, 0x89, 0x83, 0xb8, 0x4d, 0x55, 0xbf, 0xfa, 0xbd, 0x57, + 0xbf, 0xf7, 0x51, 0xaf, 0x6a, 0xe0, 0x5d, 0x12, 0x7e, 0x1f, 0xbb, 0x9c, 0x9c, 0xe2, 0x06, 0x7e, + 0xe6, 0x76, 0x51, 0xd8, 0xc1, 0x8d, 0xd3, 0xdb, 0x6d, 0xcc, 0xd1, 0xed, 0x06, 0x3e, 0xc5, 0x21, + 0x67, 0xf5, 0x28, 0xa6, 0x9c, 0x9a, 0x9b, 0x99, 0x60, 0x3d, 0x15, 0xac, 0x6b, 0xc1, 0xcd, 0xb5, + 0x0e, 0xed, 0x50, 0x29, 0xd6, 0x10, 0xbf, 0xd4, 0x8a, 0xcd, 0x2d, 0x97, 0xb2, 0x80, 0xb2, 0x46, + 0x1b, 0xb1, 0x1c, 0xd3, 0xa5, 0x24, 0xd4, 0xdf, 0xaf, 0xe5, 0xaa, 0x69, 0x8c, 0x5c, 0x3f, 0x17, + 0x52, 0x43, 0x2d, 0x76, 0xb3, 0xcc, 0xc2, 0xd4, 0x12, 0x29, 0x6a, 0xfd, 0xc3, 0x80, 0xb7, 0xee, + 0x08, 0xa3, 0x9b, 0x88, 0xbb, 0xdd, 0xe3, 0x88, 0xf2, 0x3b, 0xcf, 0xb0, 0x9b, 0x70, 0x42, 0x43, + 0xf3, 0x12, 0x54, 0x02, 0x14, 0x3f, 0xc6, 0xdc, 0x21, 0xde, 0x86, 0xb1, 0x6d, 0xdc, 0xa8, 0xd8, + 0x0b, 0x6a, 0xe2, 0xc0, 0x33, 0xd7, 0x61, 0x9e, 0x30, 0xa7, 0x9d, 0xf4, 0x36, 0xa6, 0xb7, 0x8d, + 0x1b, 0x0b, 0xf6, 0x1c, 0x61, 0xcd, 0xa4, 0x67, 0x3e, 0x80, 0x45, 0x9c, 0x02, 0x3c, 0xec, 0x45, + 0x78, 0x63, 0x66, 0xdb, 0xb8, 0xb1, 0xb4, 0x73, 0xb3, 0xfe, 0x72, 0x2e, 0xea, 0x77, 0x8a, 0x0b, + 0xec, 0xfe, 0xf5, 0xe6, 0xb7, 0x60, 0x9e, 0xc7, 0xc8, 0xc3, 0x6c, 0x63, 0x76, 0x7b, 0xe6, 0x46, + 0x75, 0xe7, 0x9d, 0x32, 0xa4, 0x87, 0x42, 0xf2, 0x90, 0x76, 0x6c, 0xbd, 0xc6, 0xfa, 0xf7, 0x34, + 0x5c, 0xce, 0xb7, 0xb7, 0x8f, 0x63, 0x72, 0x8a, 0xc4, 0xd2, 0xf3, 0x6d, 0xf2, 0x1a, 0x2c, 0x11, + 0xe6, 0xf8, 0xe4, 0x49, 0x42, 0x3c, 0x24, 0x50, 0xe4, 0x2e, 0x17, 0xec, 0x45, 0xc2, 0x0e, 0xf3, + 0x49, 0xd3, 0x06, 0xd3, 0x4d, 0x82, 0xc4, 0x97, 0x1a, 0x9d, 0x93, 0x24, 0xf4, 0x48, 0xd8, 0xd9, + 0x98, 0x15, 0x3a, 0x9a, 0x6f, 0x7f, 0xf9, 0xf5, 0x15, 0xe3, 0x6f, 0x5f, 0x5f, 0xb9, 0xa4, 0x3c, + 0xce, 0xbc, 0xc7, 0x75, 0x42, 0x1b, 0x01, 0xe2, 0xdd, 0xfa, 0x21, 0xee, 0x20, 0xb7, 0xb7, 0x8f, + 0x5d, 0x7b, 0x25, 0x5f, 0xde, 0x52, 0xab, 0x87, 0xf9, 0x9d, 0x3b, 0x27, 0xbf, 0xad, 0x8c, 0xdf, + 0x79, 0xc9, 0x6f, 0xbd, 0x0c, 0x29, 0x27, 0x70, 0x88, 0xe9, 0x2f, 0x52, 0xa6, 0x0f, 0x29, 0xe3, + 0xc2, 0x5a, 0xd6, 0x8a, 0x69, 0x50, 0xa4, 0xa3, 0x94, 0xe9, 0xb7, 0x61, 0x91, 0x25, 0x6d, 0xe4, + 0xba, 0x34, 0x09, 0xa5, 0x80, 0x20, 0xbc, 0x66, 0xd7, 0xf2, 0xc9, 0x03, 0xcf, 0x7c, 0x06, 0xef, + 0xfa, 0x94, 0x71, 0x49, 0x25, 0x73, 0x4e, 0x62, 0x1a, 0x38, 0xe8, 0x14, 0x11, 0x1f, 0xb5, 0x7d, + 0xec, 0x78, 0x49, 0x4c, 0xc2, 0x8e, 0x13, 0xa1, 0x1e, 0x4d, 0xb8, 0x74, 0x88, 0x62, 0x79, 0xea, + 0x2c, 0x96, 0x2d, 0xbf, 0x68, 0xf1, 0x6e, 0x0a, 0xb8, 0x2f, 0xf1, 0x8e, 0x24, 0x9c, 0x89, 0xe1, + 0xf2, 0xa0, 0x66, 0x1a, 0x7b, 0x38, 0x76, 0x5c, 0x14, 0xba, 0xd8, 0x67, 0x05, 0xaf, 0x9e, 0xa9, + 0xef, 0x62, 0x9f, 0xbe, 0x07, 0x02, 0x66, 0x4f, 0xa1, 0x58, 0x3f, 0x35, 0xe0, 0x1b, 0xa3, 0xc2, + 0xf5, 0x88, 0x32, 0x72, 0x36, 0x87, 0x87, 0x50, 0x89, 0xb4, 0x20, 0xdb, 0x98, 0x3e, 0xdb, 0x9b, + 0xc7, 0x19, 0xb7, 0x29, 0xbe, 0x9d, 0x03, 0x58, 0x7f, 0x34, 0xe0, 0x92, 0xb4, 0x25, 0x37, 0xe3, + 0x9e, 0xd4, 0x74, 0x84, 0x12, 0x86, 0xbd, 0x72, 0x53, 0xae, 0x42, 0x8d, 0x61, 0xce, 0x7d, 0xec, + 0x44, 0x31, 0x71, 0xb1, 0xf4, 0x66, 0xc5, 0xae, 0xaa, 0xb9, 0x23, 0x31, 0x65, 0xd6, 0x61, 0x95, + 0x53, 0x8e, 0x7c, 0x27, 0x20, 0x8c, 0x09, 0xcf, 0x49, 0x6e, 0x95, 0xe3, 0xec, 0x15, 0xf9, 0xe9, + 0x9e, 0xfa, 0x22, 0xb9, 0x32, 0xdf, 0x07, 0xb3, 0x4f, 0xd2, 0x89, 0x11, 0xc7, 0x8a, 0x77, 0xfb, + 0xcd, 0xa0, 0x20, 0x69, 0x23, 0x8e, 0xad, 0x23, 0xb8, 0x28, 0x8d, 0x3f, 0x96, 0x1a, 0x3d, 0x65, + 0x79, 0x13, 0xf9, 0x82, 0xe8, 0x72, 0xd3, 0x2f, 0xc0, 0x3c, 0x0a, 0x04, 0x29, 0xda, 0x68, 0x3d, + 0xb2, 0x8e, 0xb5, 0x6b, 0xee, 0xd3, 0xd7, 0x08, 0xfa, 0xb3, 0x94, 0x64, 0x8d, 0x85, 0x7b, 0x34, + 0xf4, 0x9a, 0x28, 0x7c, 0x1c, 0x27, 0x11, 0x77, 0x7b, 0xe7, 0x26, 0xf9, 0x03, 0x58, 0x4b, 0x49, + 0xd3, 0x38, 0x45, 0x96, 0x53, 0x42, 0x95, 0x72, 0x49, 0x9e, 0xf5, 0x13, 0x03, 0x36, 0xa4, 0x45, + 0xbb, 0xbe, 0x9f, 0x86, 0x05, 0xbb, 0x8b, 0x48, 0xec, 0x26, 0xfc, 0xdc, 0xe6, 0x8c, 0xf6, 0xe1, + 0xcc, 0x4b, 0x7c, 0x48, 0x61, 0x4b, 0x25, 0x03, 0x09, 0x51, 0xdc, 0x7b, 0x10, 0x49, 0x53, 0x94, + 0xad, 0xdf, 0x8d, 0x3c, 0xc4, 0xb1, 0x79, 0x0f, 0xe6, 0x95, 0x7a, 0x69, 0x4c, 0x75, 0xa7, 0x51, + 0x16, 0xee, 0x23, 0x60, 0x9a, 0xb3, 0x22, 0x61, 0x6d, 0x0d, 0x62, 0xfd, 0xd9, 0x00, 0x53, 0xf9, + 0x18, 0x3f, 0x15, 0x47, 0xa1, 0xcc, 0x4d, 0x56, 0xbe, 0xeb, 0x03, 0x80, 0x76, 0xd2, 0x53, 0xd5, + 0x20, 0xcd, 0xba, 0x5b, 0xa5, 0x59, 0x17, 0x51, 0x7e, 0x48, 0x02, 0xa2, 0xd0, 0xed, 0x4a, 0x3b, + 0xe9, 0x69, 0x3d, 0x9f, 0x42, 0x95, 0x61, 0xdf, 0x4f, 0xb1, 0x66, 0x26, 0xc6, 0x02, 0xb1, 0x5c, + 0x81, 0x59, 0x7f, 0x4f, 0xfd, 0x78, 0x1f, 0x3f, 0xcd, 0x33, 0x78, 0x9c, 0x1d, 0x3d, 0x18, 0xb1, + 0xa3, 0x0f, 0xc6, 0x3b, 0x15, 0x46, 0xef, 0xeb, 0xb3, 0x51, 0xfb, 0x9a, 0x1c, 0xb1, 0xb8, 0xbb, + 0x1f, 0xc2, 0x9a, 0xdc, 0x9c, 0x2a, 0x9c, 0x99, 0xaf, 0xca, 0x37, 0xd6, 0x82, 0x39, 0x69, 0x82, + 0x8c, 0xcc, 0x89, 0x98, 0xd5, 0x71, 0xa2, 0x96, 0x5b, 0xdf, 0x83, 0x75, 0x55, 0x5b, 0x22, 0xca, + 0xfb, 0xc2, 0x71, 0x7f, 0x20, 0x1c, 0xaf, 0x9f, 0xa5, 0x61, 0x64, 0x14, 0xfe, 0x66, 0x1a, 0x36, + 0x25, 0xfe, 0x11, 0x8e, 0x23, 0xcc, 0x13, 0xe4, 0xf7, 0x29, 0xf9, 0xce, 0x80, 0x92, 0xf7, 0xc7, + 0x23, 0x72, 0x94, 0x2a, 0x93, 0xc0, 0x7a, 0x94, 0x2a, 0x49, 0x0b, 0x04, 0x09, 0x4f, 0xa8, 0x66, + 0xa8, 0x34, 0x9d, 0x06, 0xac, 0x3b, 0x08, 0x4f, 0xa8, 0x44, 0x37, 0xec, 0xd5, 0x68, 0xf8, 0x93, + 0x69, 0xc3, 0x1b, 0x69, 0x07, 0x34, 0x23, 0xc1, 0x77, 0x26, 0x00, 0xd7, 0xdd, 0x8f, 0xc6, 0x4f, + 0x81, 0xac, 0x7f, 0x19, 0xba, 0x42, 0xdc, 0x79, 0x16, 0x91, 0xb8, 0xd7, 0x4a, 0x78, 0x12, 0x63, + 0xf6, 0x3f, 0x63, 0xeb, 0x14, 0x36, 0xb1, 0x54, 0xe4, 0x9c, 0x28, 0x4d, 0x7d, 0x94, 0xa9, 0x5d, + 0x7d, 0x58, 0xde, 0x88, 0x0d, 0x99, 0x59, 0xa0, 0xed, 0x2d, 0x3c, 0xfa, 0xb3, 0xf5, 0x97, 0x69, + 0xb8, 0x3a, 0x2a, 0x20, 0x34, 0x2b, 0x7a, 0xa7, 0xa5, 0xa1, 0x5f, 0x60, 0x7f, 0xfa, 0x5c, 0xec, + 0x4f, 0x65, 0xec, 0x9b, 0xb7, 0x60, 0x85, 0x30, 0xa7, 0x4b, 0x93, 0xd8, 0xef, 0x39, 0x45, 0xdf, + 0x2e, 0xd8, 0xcb, 0x84, 0xdd, 0x95, 0xf3, 0x69, 0xdb, 0xda, 0x82, 0x9a, 0x96, 0x28, 0x1c, 0xdb, + 0xe3, 0x35, 0xc1, 0x55, 0xbd, 0x50, 0x1c, 0x09, 0x66, 0x13, 0x40, 0xec, 0x49, 0x9f, 0x30, 0x73, + 0xe3, 0xa3, 0x48, 0x6e, 0xe4, 0x21, 0x64, 0xfd, 0xd2, 0x80, 0x0b, 0x2a, 0x7f, 0xb3, 0xfe, 0x67, + 0x1f, 0xcb, 0xbe, 0xc7, 0xbc, 0x02, 0x55, 0x16, 0xbb, 0x0e, 0xf2, 0xbc, 0x18, 0x33, 0xa6, 0x59, + 0x04, 0x16, 0xbb, 0xbb, 0x6a, 0x66, 0xbc, 0x36, 0xf5, 0xe3, 0xec, 0xb0, 0x57, 0x31, 0x71, 0xb1, + 0xae, 0x2c, 0xab, 0x8b, 0x6b, 0x5d, 0x46, 0xf2, 0x1e, 0x25, 0x61, 0x1a, 0x60, 0xba, 0x1b, 0xf8, + 0x55, 0x7a, 0x19, 0xcb, 0x2d, 0xfb, 0x9c, 0xf0, 0xae, 0x17, 0xa3, 0xa7, 0xc3, 0x9a, 0x8d, 0x11, + 0x9a, 0xaf, 0x40, 0xd5, 0x63, 0x3c, 0xb3, 0x5f, 0x9d, 0xc0, 0xe0, 0x31, 0x9e, 0xda, 0xff, 0xca, + 0xa6, 0xfd, 0x3e, 0x4d, 0xb5, 0xdc, 0x34, 0xdd, 0xf8, 0x3c, 0x8c, 0x51, 0xc8, 0x4e, 0x70, 0x2c, + 0xe2, 0x41, 0x90, 0x37, 0x6c, 0x65, 0xc5, 0x5e, 0x66, 0xb1, 0x7b, 0x5c, 0x34, 0xf4, 0x16, 0xac, + 0x08, 0x43, 0x87, 0xb9, 0xac, 0xd8, 0xcb, 0x1e, 0xe3, 0xc7, 0xaf, 0x85, 0xce, 0xa0, 0x78, 0xb5, + 0xd5, 0x2e, 0xd6, 0xc9, 0x62, 0xc3, 0xb2, 0xa7, 0x26, 0x9c, 0x44, 0xce, 0x08, 0x67, 0x8b, 0x63, + 0xe9, 0x66, 0x79, 0x7d, 0x28, 0x60, 0xd8, 0x4b, 0x5e, 0x71, 0xc8, 0xac, 0x3f, 0x19, 0x70, 0x69, + 0xb0, 0x82, 0x14, 0xba, 0x7b, 0xf3, 0x11, 0xd4, 0x74, 0x82, 0xaa, 0x53, 0x48, 0x15, 0xa4, 0xdb, + 0x93, 0x14, 0xa4, 0xfc, 0x30, 0x32, 0xec, 0x6a, 0x90, 0x4f, 0x99, 0x87, 0xb0, 0xac, 0x6e, 0x22, + 0xce, 0x93, 0x04, 0x85, 0x9c, 0x70, 0x75, 0x63, 0x1d, 0xf3, 0x46, 0xb2, 0xa4, 0xd6, 0x7e, 0xa6, + 0x97, 0xe6, 0x27, 0x90, 0xb2, 0x7c, 0xa0, 0x7d, 0x28, 0xaf, 0x34, 0xef, 0x80, 0xbc, 0x05, 0x07, + 0x44, 0x2f, 0xd6, 0x37, 0xe7, 0xfe, 0x49, 0xf3, 0x73, 0xa8, 0xfa, 0x62, 0xa8, 0xa9, 0x50, 0x8e, + 0x9d, 0xb8, 0x25, 0xd0, 0x4c, 0x80, 0x9f, 0xcd, 0x98, 0x01, 0xac, 0x16, 0x49, 0xd6, 0xf7, 0x33, + 0x59, 0x6f, 0xaa, 0x3b, 0x1f, 0x4f, 0xcc, 0xb5, 0x32, 0x57, 0xeb, 0x59, 0x09, 0x06, 0x3f, 0x58, + 0x1d, 0xdd, 0x64, 0xb5, 0x30, 0xde, 0x27, 0x4c, 0x46, 0xec, 0xb1, 0xdb, 0xc5, 0x5e, 0xe2, 0x63, + 0xf3, 0x53, 0x58, 0x60, 0xfa, 0xf7, 0x38, 0xed, 0xe9, 0x08, 0x08, 0x3b, 0x03, 0xb0, 0x9e, 0x1b, + 0xb0, 0x2d, 0x35, 0x89, 0x8b, 0xb7, 0xa8, 0x86, 0xf8, 0x29, 0x8a, 0xbd, 0x3d, 0x14, 0x44, 0x88, + 0x74, 0x42, 0x1d, 0xd5, 0x8f, 0x60, 0xd1, 0xd5, 0x33, 0xea, 0x4c, 0x52, 0x6a, 0x3f, 0x3a, 0xeb, + 0xc9, 0x64, 0x08, 0x4f, 0x1c, 0x3b, 0x76, 0xcd, 0x2d, 0x8c, 0xcc, 0x36, 0xac, 0x67, 0xd8, 0xb1, + 0x14, 0x76, 0x22, 0x4a, 0xfd, 0xb1, 0x2e, 0x9a, 0x29, 0xac, 0x52, 0x72, 0x44, 0xa9, 0x6f, 0xaf, + 0xba, 0x43, 0x73, 0xcc, 0x4a, 0x74, 0x8d, 0xe9, 0xb3, 0x69, 0x9f, 0x30, 0x1e, 0x93, 0xb6, 0x7a, + 0xad, 0x39, 0x86, 0xe5, 0xb4, 0x60, 0x28, 0x23, 0xd2, 0xbc, 0x2d, 0x6d, 0xe6, 0x76, 0xd5, 0x12, + 0x85, 0xc7, 0xec, 0x25, 0xd4, 0x37, 0xb6, 0xfe, 0x60, 0x80, 0x95, 0xb6, 0xca, 0x7b, 0x34, 0xf4, + 0xe4, 0x9d, 0x07, 0x4d, 0x16, 0xf6, 0xbb, 0xfd, 0xbd, 0xe5, 0x7b, 0xe3, 0x45, 0x9a, 0x6a, 0x6c, + 0xd5, 0x4a, 0xd3, 0x84, 0xd9, 0x2e, 0x62, 0x5d, 0x99, 0x0c, 0x35, 0x5b, 0xfe, 0x16, 0x3a, 0x49, + 0xda, 0x66, 0xc8, 0x20, 0x5e, 0xb0, 0x17, 0x88, 0xee, 0x0d, 0xac, 0x5f, 0x4f, 0xc3, 0xb5, 0x42, + 0x9a, 0xbe, 0xaa, 0xe9, 0xff, 0xe7, 0x8c, 0x1d, 0x2c, 0x8b, 0xb3, 0xaf, 0xaf, 0x2c, 0x5a, 0xff, + 0x31, 0xe0, 0xba, 0x62, 0xe8, 0xa5, 0xdc, 0x3c, 0x8c, 0x49, 0xa7, 0x33, 0x8a, 0xa2, 0x5a, 0x81, + 0xa2, 0xeb, 0xb0, 0xa4, 0xd9, 0xd0, 0xe2, 0x9a, 0xa3, 0x81, 0x59, 0x71, 0xdd, 0xe6, 0xea, 0x27, + 0xf6, 0x74, 0x01, 0x2a, 0xb8, 0xd4, 0xcc, 0xbe, 0x49, 0xcd, 0x77, 0x85, 0x83, 0x6f, 0xc1, 0x4a, + 0xe4, 0x23, 0xb7, 0x5f, 0x7c, 0x56, 0x8a, 0x2f, 0xab, 0x0f, 0xb9, 0x6c, 0x1d, 0x56, 0x07, 0xd1, + 0x5d, 0xe2, 0xa9, 0x2e, 0xc8, 0x5e, 0xe9, 0x07, 0xdf, 0x23, 0x9e, 0xe5, 0xc3, 0x92, 0xdc, 0xbc, + 0x9c, 0x68, 0x21, 0xe2, 0x9b, 0x1b, 0xf0, 0x86, 0x8e, 0x7d, 0xbd, 0xc5, 0x74, 0x68, 0x5e, 0x80, + 0x79, 0xa1, 0x1a, 0xab, 0x7c, 0xae, 0xd9, 0x7a, 0x64, 0xae, 0xc1, 0xdc, 0x89, 0x8f, 0x3a, 0xea, + 0xd6, 0xb6, 0x68, 0xab, 0x81, 0x08, 0x55, 0x97, 0x78, 0xea, 0x49, 0xb6, 0x62, 0xcb, 0xdf, 0xd6, + 0x2f, 0x0c, 0x78, 0x4f, 0x3d, 0x1c, 0x70, 0x1a, 0x10, 0xb7, 0xe0, 0x99, 0x16, 0xc6, 0xf7, 0x12, + 0x9f, 0x93, 0xc8, 0x27, 0x38, 0x66, 0xaa, 0x56, 0x79, 0x26, 0x86, 0x0b, 0xe9, 0x93, 0x04, 0xc6, + 0x4e, 0x90, 0x0b, 0xe8, 0x8c, 0x2e, 0x2d, 0x96, 0xba, 0x31, 0x2d, 0x02, 0xdb, 0x6b, 0xc1, 0xf0, + 0x24, 0xb3, 0xbe, 0x30, 0xf4, 0x55, 0x51, 0x9a, 0xd2, 0xa6, 0xf4, 0xb1, 0x2e, 0x96, 0xf7, 0xa1, + 0xc6, 0x22, 0x3a, 0x78, 0xfe, 0x97, 0x26, 0xee, 0x00, 0x84, 0x5d, 0x15, 0x00, 0xfa, 0xf8, 0x37, + 0x1f, 0x81, 0xe9, 0x65, 0xa1, 0x95, 0xa1, 0x4e, 0x4f, 0x8e, 0xba, 0x92, 0xc3, 0xa4, 0xad, 0x45, + 0x17, 0x96, 0x07, 0xcd, 0x7f, 0x13, 0x66, 0x18, 0x7e, 0x22, 0xdd, 0x38, 0x6b, 0x8b, 0x9f, 0xe6, + 0x1e, 0x54, 0x68, 0x2a, 0xa4, 0xcb, 0xd0, 0xb5, 0xb1, 0xf4, 0xda, 0xf9, 0x3a, 0xeb, 0x77, 0x06, + 0x54, 0xb2, 0x0f, 0xe5, 0x49, 0xf1, 0x6d, 0xf5, 0x4e, 0xe0, 0xe3, 0x53, 0x9c, 0x1d, 0x03, 0x57, + 0xcb, 0x14, 0x1e, 0x0a, 0x49, 0xf9, 0x30, 0x20, 0x7f, 0x31, 0xb3, 0xa9, 0x1f, 0x06, 0x34, 0xc4, + 0xcc, 0xb8, 0x10, 0xf2, 0x25, 0x40, 0x61, 0x58, 0x3f, 0xd2, 0x27, 0xf0, 0x27, 0x31, 0x0a, 0xf9, + 0x6e, 0xc2, 0xbb, 0x34, 0x26, 0x3f, 0x90, 0x0f, 0xce, 0x4c, 0x84, 0x7b, 0x47, 0x4c, 0xeb, 0x66, + 0xab, 0x62, 0xa7, 0x43, 0xb3, 0x05, 0xf3, 0xf2, 0xe7, 0x58, 0xc7, 0xd7, 0x30, 0xb4, 0xad, 0x57, + 0x5b, 0x3f, 0x4e, 0xa3, 0x4b, 0xc9, 0x08, 0x00, 0xf5, 0xd8, 0x9d, 0xa9, 0xc6, 0xfd, 0xaa, 0x71, + 0xd1, 0xa8, 0xe9, 0x7e, 0xa3, 0x3e, 0xea, 0x6b, 0x74, 0x2b, 0xcd, 0xcb, 0xba, 0x77, 0x5b, 0x1f, + 0xee, 0xdd, 0x0e, 0x42, 0x9e, 0xb5, 0xb9, 0x9f, 0xc0, 0x8a, 0x34, 0xe1, 0x20, 0x3c, 0x45, 0x3e, + 0xf1, 0xa4, 0x25, 0xaf, 0xa2, 0xdf, 0xfa, 0x6d, 0x5f, 0xaa, 0xa8, 0xba, 0x2f, 0xcb, 0xc6, 0xe4, + 0x2f, 0xf7, 0x95, 0x81, 0x8b, 0xc9, 0x65, 0x80, 0x81, 0x72, 0x58, 0xd1, 0x51, 0x27, 0x2b, 0xdb, + 0x9b, 0x30, 0x23, 0x2a, 0x99, 0x7a, 0xcc, 0x15, 0x3f, 0xcd, 0x6d, 0xa8, 0x7a, 0x98, 0xb9, 0x31, + 0x91, 0xcf, 0x75, 0xba, 0xc6, 0x15, 0xa7, 0x9a, 0xdd, 0x2f, 0x9f, 0x6f, 0x19, 0x5f, 0x3d, 0xdf, + 0x32, 0xfe, 0xf9, 0x7c, 0xcb, 0xf8, 0xf9, 0x8b, 0xad, 0xa9, 0xaf, 0x5e, 0x6c, 0x4d, 0xfd, 0xf5, + 0xc5, 0xd6, 0xd4, 0xa3, 0xfb, 0x1d, 0xc2, 0xbb, 0x49, 0xbb, 0xee, 0xd2, 0xa0, 0x71, 0x90, 0xba, + 0xf5, 0x10, 0xb5, 0x59, 0x23, 0x73, 0xf2, 0x37, 0x5d, 0x1a, 0xe3, 0xe2, 0xb0, 0x8b, 0x48, 0xd8, + 0x08, 0xa8, 0xe8, 0xb5, 0x58, 0xfe, 0xa7, 0x19, 0xef, 0x45, 0x98, 0xb5, 0xe7, 0xe5, 0x5f, 0x65, + 0x1f, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x77, 0x27, 0x4e, 0xf9, 0x1b, 0x00, 0x00, } func (m *EventBatchSpotExecution) Marshal() (dAtA []byte, err error) { @@ -2574,6 +2681,80 @@ func (m *EventDerivativeMarketPaused) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } +func (m *EventSettledMarketBalance) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventSettledMarketBalance) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSettledMarketBalance) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Amount) > 0 { + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x12 + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintEvents(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventNotSettledMarketBalance) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventNotSettledMarketBalance) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventNotSettledMarketBalance) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Amount) > 0 { + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x12 + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintEvents(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EventMarketBeyondBankruptcy) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4223,6 +4404,40 @@ func (m *EventDerivativeMarketPaused) Size() (n int) { return n } +func (m *EventSettledMarketBalance) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + +func (m *EventNotSettledMarketBalance) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func (m *EventMarketBeyondBankruptcy) Size() (n int) { if m == nil { return 0 @@ -5689,6 +5904,234 @@ func (m *EventDerivativeMarketPaused) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventSettledMarketBalance) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventSettledMarketBalance: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSettledMarketBalance: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventNotSettledMarketBalance) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventNotSettledMarketBalance: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventNotSettledMarketBalance: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EventMarketBeyondBankruptcy) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index 4417ebc5..47a75900 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -3302,6 +3302,51 @@ func (m *EffectiveGrant) GetIsValid() bool { return false } +type DenomMinNotional struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` +} + +func (m *DenomMinNotional) Reset() { *m = DenomMinNotional{} } +func (m *DenomMinNotional) String() string { return proto.CompactTextString(m) } +func (*DenomMinNotional) ProtoMessage() {} +func (*DenomMinNotional) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{51} +} +func (m *DenomMinNotional) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomMinNotional) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomMinNotional.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DenomMinNotional) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomMinNotional.Merge(m, src) +} +func (m *DenomMinNotional) XXX_Size() int { + return m.Size() +} +func (m *DenomMinNotional) XXX_DiscardUnknown() { + xxx_messageInfo_DenomMinNotional.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomMinNotional proto.InternalMessageInfo + +func (m *DenomMinNotional) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + func init() { proto.RegisterEnum("injective.exchange.v1beta1.AtomicMarketOrderAccessLevel", AtomicMarketOrderAccessLevel_name, AtomicMarketOrderAccessLevel_value) proto.RegisterEnum("injective.exchange.v1beta1.MarketStatus", MarketStatus_name, MarketStatus_value) @@ -3359,6 +3404,7 @@ func init() { proto.RegisterType((*GrantAuthorization)(nil), "injective.exchange.v1beta1.GrantAuthorization") proto.RegisterType((*ActiveGrant)(nil), "injective.exchange.v1beta1.ActiveGrant") proto.RegisterType((*EffectiveGrant)(nil), "injective.exchange.v1beta1.EffectiveGrant") + proto.RegisterType((*DenomMinNotional)(nil), "injective.exchange.v1beta1.DenomMinNotional") } func init() { @@ -3366,7 +3412,7 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4472 bytes of a gzipped FileDescriptorProto + // 4492 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xd9, 0x6f, 0x64, 0xd9, 0x59, 0xef, 0x5b, 0xe5, 0xa5, 0xea, 0xab, 0xc5, 0xe5, 0xeb, 0xad, 0x6c, 0x77, 0xdb, 0x35, 0xd5, 0xd3, 0x19, 0x4f, 0xcf, 0x8c, 0x9d, 0x1e, 0x98, 0x68, 0x32, 0x51, 0x94, 0x29, 0x6f, 0xd3, 0xc5, @@ -3609,44 +3655,45 @@ var fileDescriptor_2116e2804e9c53f9 = []byte{ 0x11, 0xbe, 0xd7, 0x8a, 0xef, 0xdd, 0x14, 0xff, 0xbb, 0x0a, 0xe4, 0x37, 0x8e, 0x8e, 0x70, 0x5f, 0x3c, 0xaa, 0x30, 0xee, 0x60, 0x5f, 0x17, 0x45, 0xf9, 0xf1, 0x62, 0x7f, 0xec, 0xc6, 0x1c, 0xec, 0x7f, 0x20, 0xc8, 0xf8, 0x67, 0x8a, 0xea, 0x2c, 0xa4, 0x08, 0xd5, 0x4f, 0x91, 0x25, 0x8f, 0x7c, - 0x52, 0xda, 0x28, 0xa1, 0x1f, 0xb1, 0xe2, 0x63, 0x1f, 0xee, 0xf7, 0xfa, 0x7c, 0x4e, 0x05, 0x18, - 0xd9, 0x71, 0x0f, 0x5d, 0xf3, 0xbc, 0x70, 0x4f, 0x2d, 0xc3, 0xc2, 0x2a, 0x3e, 0x26, 0xce, 0xaa, - 0xe5, 0x1a, 0x27, 0xd8, 0xab, 0xd9, 0xc8, 0xf3, 0xd7, 0x5c, 0xc7, 0xf7, 0x90, 0xe1, 0xd3, 0x5d, - 0xc7, 0x3a, 0x2f, 0x28, 0xea, 0x34, 0xa8, 0x5d, 0xea, 0x13, 0x6a, 0x16, 0x52, 0x1b, 0xa7, 0xd8, - 0x3b, 0x77, 0x1d, 0x5c, 0x48, 0x3e, 0xde, 0x0f, 0xec, 0x50, 0x3c, 0xae, 0x51, 0xc7, 0x20, 0x73, - 0xe0, 0xd0, 0x06, 0x36, 0x78, 0xcc, 0x2c, 0xdc, 0x63, 0x6c, 0x85, 0x26, 0x0a, 0x0a, 0xfb, 0xbd, - 0x87, 0x9a, 0x14, 0x9b, 0x85, 0x84, 0x9a, 0x07, 0x58, 0xc7, 0xb6, 0x6b, 0x11, 0x5a, 0xc7, 0x66, - 0x21, 0xa9, 0x66, 0x60, 0x94, 0x3f, 0x4a, 0xc5, 0x66, 0x61, 0xe8, 0xf1, 0x5f, 0x24, 0xe4, 0xfb, - 0x09, 0x7e, 0xe8, 0x5b, 0x82, 0xcc, 0xc1, 0x4e, 0x6d, 0x6f, 0x63, 0xad, 0xba, 0x59, 0xdd, 0x58, - 0x2f, 0xdc, 0x9b, 0x1b, 0xbb, 0xb8, 0x2c, 0xc5, 0xab, 0xd8, 0x7e, 0x7e, 0xf5, 0xe0, 0x59, 0x41, - 0x99, 0x1b, 0xbd, 0xb8, 0x2c, 0xb1, 0x9f, 0x2c, 0x1a, 0xd7, 0x36, 0xb6, 0xb6, 0x0a, 0x89, 0xb9, - 0xd4, 0xc5, 0x65, 0x89, 0xff, 0x66, 0x76, 0x59, 0xdb, 0xdf, 0xdd, 0xd3, 0x59, 0xd7, 0xe4, 0x5c, - 0xf6, 0xe2, 0xb2, 0x14, 0x96, 0x99, 0xfb, 0xe5, 0xbf, 0x39, 0xd1, 0xd0, 0x5c, 0xee, 0xe2, 0xb2, - 0x14, 0x55, 0x30, 0xca, 0xfd, 0xca, 0x87, 0x1b, 0x9c, 0x72, 0x58, 0x50, 0x06, 0x65, 0x46, 0xc9, - 0x7f, 0x73, 0xca, 0x11, 0x41, 0x19, 0x56, 0xa8, 0xd3, 0x30, 0xb2, 0x7a, 0xf0, 0x4c, 0xdf, 0xdb, - 0x2d, 0x8c, 0xce, 0xc1, 0xc5, 0x65, 0x49, 0x96, 0x98, 0xb5, 0xb0, 0x76, 0xd6, 0x90, 0x9a, 0xcb, - 0x5c, 0x5c, 0x96, 0x82, 0xa2, 0xba, 0x00, 0xc0, 0xfa, 0x54, 0xf6, 0x77, 0xb7, 0xab, 0x6b, 0x85, - 0xf4, 0x5c, 0xfe, 0xe2, 0xb2, 0x14, 0xab, 0x61, 0xd2, 0xe0, 0x5d, 0x65, 0x07, 0x10, 0xd2, 0x88, - 0x55, 0x3d, 0xfe, 0x53, 0x05, 0x72, 0x1b, 0xc1, 0x59, 0x12, 0x97, 0xe0, 0x7d, 0x28, 0xc6, 0xb4, - 0xd2, 0xd2, 0x26, 0x54, 0x24, 0x74, 0x58, 0x50, 0xd4, 0x1c, 0xa4, 0xf9, 0x9d, 0xcc, 0x26, 0xb1, - 0xac, 0x42, 0x42, 0x9d, 0x83, 0x69, 0x5e, 0xdc, 0x46, 0xbe, 0x51, 0xd7, 0xc4, 0x57, 0xad, 0x5c, - 0x31, 0x85, 0x24, 0x33, 0x90, 0xa8, 0x6d, 0x07, 0xbf, 0x14, 0xf5, 0x43, 0xea, 0x14, 0x8c, 0xcb, - 0x8f, 0xea, 0xe4, 0x97, 0xaa, 0xc4, 0x75, 0x0a, 0xc3, 0x0c, 0x4a, 0xbc, 0x3a, 0x6e, 0x7f, 0xdb, - 0x58, 0x18, 0x79, 0xfc, 0x9d, 0x40, 0xdf, 0xdb, 0x88, 0x9e, 0x30, 0x99, 0x1d, 0xec, 0x1c, 0xd4, - 0xb8, 0xaa, 0xb9, 0xcc, 0x44, 0x89, 0x69, 0xb9, 0xb2, 0x13, 0x6a, 0xb9, 0xb2, 0xf3, 0x8c, 0x49, - 0x51, 0xdb, 0xf8, 0xe0, 0x60, 0xab, 0xa2, 0x15, 0x12, 0x42, 0x8a, 0xb2, 0xc8, 0xa4, 0xb4, 0xb6, - 0xbb, 0xb3, 0x5e, 0xdd, 0xaf, 0xee, 0xee, 0x54, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, - 0xcc, 0xac, 0x57, 0xb5, 0x8d, 0x35, 0x56, 0x64, 0x8a, 0xd4, 0x77, 0x35, 0xfd, 0x69, 0xf5, 0x83, - 0xa7, 0x1b, 0x5a, 0x21, 0x35, 0x37, 0x7e, 0x71, 0x59, 0xca, 0xb5, 0x54, 0xb6, 0xf6, 0xe7, 0xe2, - 0xde, 0xd5, 0xf4, 0xad, 0xdd, 0x9f, 0xdf, 0xd0, 0x0a, 0x05, 0xd1, 0xbf, 0xa5, 0x52, 0x9d, 0x87, - 0xcc, 0xfe, 0xb3, 0xbd, 0x0d, 0x7d, 0xbb, 0xa2, 0x7d, 0xb8, 0xb1, 0x5f, 0x28, 0x89, 0xa9, 0x88, - 0x92, 0x3a, 0x0b, 0xc0, 0x1b, 0xb7, 0xaa, 0xdb, 0xd5, 0xfd, 0xc2, 0xfb, 0x73, 0xe9, 0x8b, 0xcb, - 0xd2, 0x30, 0x2f, 0xac, 0xd6, 0xbf, 0xff, 0xe9, 0x82, 0xf2, 0xc3, 0x4f, 0x17, 0x94, 0x7f, 0xfd, - 0x74, 0x41, 0xf9, 0xee, 0x67, 0x0b, 0xf7, 0x7e, 0xf8, 0xd9, 0xc2, 0xbd, 0x7f, 0xfc, 0x6c, 0xe1, - 0xde, 0x37, 0x76, 0x62, 0x69, 0x52, 0x35, 0x70, 0xe0, 0x5b, 0xe8, 0x90, 0xae, 0x84, 0xee, 0xfc, - 0x2d, 0xc3, 0xf5, 0x70, 0xbc, 0x58, 0x47, 0xc4, 0x59, 0xb1, 0x5d, 0x96, 0xae, 0xd3, 0xe8, 0x6f, - 0x64, 0xf0, 0x94, 0xea, 0x70, 0x84, 0x7f, 0x99, 0xf9, 0x33, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, - 0x6a, 0xde, 0xbc, 0xbe, 0x46, 0x43, 0x00, 0x00, + 0x52, 0xda, 0x28, 0xa1, 0x1f, 0xb1, 0x62, 0xb9, 0x01, 0x05, 0xae, 0x9c, 0xed, 0xd6, 0xc7, 0x1e, + 0x5d, 0xf4, 0xd3, 0xfe, 0x94, 0x24, 0x71, 0xb3, 0xa7, 0x24, 0x8f, 0x7d, 0xb8, 0xdf, 0xeb, 0x83, + 0x3d, 0x15, 0x60, 0x64, 0xc7, 0x3d, 0x74, 0xcd, 0xf3, 0xc2, 0x3d, 0xb5, 0x0c, 0x0b, 0xab, 0xf8, + 0x98, 0x38, 0xab, 0x96, 0x6b, 0x9c, 0x60, 0xaf, 0x66, 0x23, 0xcf, 0x5f, 0x73, 0x1d, 0xdf, 0x43, + 0x86, 0x4f, 0x77, 0x1d, 0xeb, 0xbc, 0xa0, 0xa8, 0xd3, 0xa0, 0x76, 0xa9, 0x4f, 0xa8, 0x59, 0x48, + 0x6d, 0x9c, 0x62, 0xef, 0xdc, 0x75, 0x70, 0x21, 0xf9, 0x78, 0x3f, 0xb0, 0x7c, 0xf1, 0x9c, 0x47, + 0x1d, 0x83, 0xcc, 0x81, 0x43, 0x1b, 0xd8, 0xe0, 0x51, 0xba, 0x70, 0x8f, 0xb1, 0x15, 0xba, 0x2f, + 0x28, 0xec, 0xf7, 0x1e, 0x6a, 0x52, 0x6c, 0x16, 0x12, 0x6a, 0x1e, 0x60, 0x1d, 0xdb, 0xae, 0x45, + 0x68, 0x1d, 0x9b, 0x85, 0xa4, 0x9a, 0x81, 0x51, 0xfe, 0x0c, 0x16, 0x9b, 0x85, 0xa1, 0xc7, 0x7f, + 0x91, 0x90, 0x2f, 0x36, 0xf8, 0x31, 0x73, 0x09, 0x32, 0x07, 0x3b, 0xb5, 0xbd, 0x8d, 0xb5, 0xea, + 0x66, 0x75, 0x63, 0xbd, 0x70, 0x6f, 0x6e, 0xec, 0xe2, 0xb2, 0x14, 0xaf, 0x52, 0x0b, 0x90, 0x5c, + 0x3d, 0x78, 0x56, 0x50, 0xe6, 0x46, 0x2f, 0x2e, 0x4b, 0xec, 0x27, 0x8b, 0xff, 0xb5, 0x8d, 0xad, + 0xad, 0x42, 0x62, 0x2e, 0x75, 0x71, 0x59, 0xe2, 0xbf, 0xd9, 0x4a, 0xa8, 0xed, 0xef, 0xee, 0xe9, + 0xac, 0x6b, 0x72, 0x2e, 0x7b, 0x71, 0x59, 0x0a, 0xcb, 0xcc, 0xe1, 0xf3, 0xdf, 0x9c, 0x68, 0x68, + 0x2e, 0x77, 0x71, 0x59, 0x8a, 0x2a, 0x18, 0xe5, 0x7e, 0xe5, 0xc3, 0x0d, 0x4e, 0x39, 0x2c, 0x28, + 0x83, 0x32, 0xa3, 0xe4, 0xbf, 0x39, 0xe5, 0x88, 0xa0, 0x0c, 0x2b, 0xd4, 0x69, 0x18, 0x59, 0x3d, + 0x78, 0xa6, 0xef, 0xed, 0x16, 0x46, 0xe7, 0xe0, 0xe2, 0xb2, 0x24, 0x4b, 0xcc, 0x3e, 0x59, 0x3b, + 0x6b, 0x48, 0xcd, 0x65, 0x2e, 0x2e, 0x4b, 0x41, 0x51, 0x5d, 0x00, 0x60, 0x7d, 0x2a, 0xfb, 0xbb, + 0xdb, 0xd5, 0xb5, 0x42, 0x7a, 0x2e, 0x7f, 0x71, 0x59, 0x8a, 0xd5, 0x30, 0x69, 0xf0, 0xae, 0xb2, + 0x03, 0x08, 0x69, 0xc4, 0xaa, 0x1e, 0xff, 0xa9, 0x02, 0xb9, 0x8d, 0xe0, 0xf4, 0x8a, 0x4b, 0xf0, + 0x3e, 0x14, 0x63, 0x5a, 0x69, 0x69, 0x13, 0x2a, 0x12, 0x3a, 0x2c, 0x28, 0x6a, 0x0e, 0xd2, 0xfc, + 0x16, 0x68, 0x93, 0x58, 0x56, 0x21, 0xa1, 0xce, 0xc1, 0x34, 0x2f, 0x6e, 0x23, 0xdf, 0xa8, 0x6b, + 0xe2, 0x3b, 0x5a, 0xae, 0x98, 0x42, 0x92, 0x19, 0x48, 0xd4, 0xb6, 0x83, 0x5f, 0x8a, 0xfa, 0x21, + 0x75, 0x0a, 0xc6, 0xe5, 0x67, 0x7c, 0xf2, 0xdb, 0x58, 0xe2, 0x3a, 0x85, 0x61, 0x06, 0x25, 0xde, + 0x39, 0xb7, 0xbf, 0xa6, 0x2c, 0x8c, 0x3c, 0xfe, 0x4e, 0xa0, 0xef, 0x6d, 0x44, 0x4f, 0x98, 0xcc, + 0x0e, 0x76, 0x0e, 0x6a, 0x5c, 0xd5, 0x5c, 0x66, 0xa2, 0xc4, 0xb4, 0x5c, 0xd9, 0x09, 0xb5, 0x5c, + 0xd9, 0x79, 0xc6, 0xa4, 0xa8, 0x6d, 0x7c, 0x70, 0xb0, 0x55, 0xd1, 0x0a, 0x09, 0x21, 0x45, 0x59, + 0x64, 0x52, 0x5a, 0xdb, 0xdd, 0x59, 0xaf, 0xee, 0x57, 0x77, 0x77, 0x2a, 0x4c, 0xa3, 0x5c, 0x4a, + 0xb1, 0x2a, 0x75, 0x19, 0x66, 0xd6, 0xab, 0xda, 0xc6, 0x1a, 0x2b, 0x32, 0x45, 0xea, 0xbb, 0x9a, + 0xfe, 0xb4, 0xfa, 0xc1, 0xd3, 0x0d, 0xad, 0x90, 0x9a, 0x1b, 0xbf, 0xb8, 0x2c, 0xe5, 0x5a, 0x2a, + 0x5b, 0xfb, 0x73, 0x71, 0xef, 0x6a, 0xfa, 0xd6, 0xee, 0xcf, 0x6f, 0x68, 0x85, 0x82, 0xe8, 0xdf, + 0x52, 0xa9, 0xce, 0x43, 0x66, 0xff, 0xd9, 0xde, 0x86, 0xbe, 0x5d, 0xd1, 0x3e, 0xdc, 0xd8, 0x2f, + 0x94, 0xc4, 0x54, 0x44, 0x49, 0x9d, 0x05, 0xe0, 0x8d, 0x5b, 0xd5, 0xed, 0xea, 0x7e, 0xe1, 0xfd, + 0xb9, 0xf4, 0xc5, 0x65, 0x69, 0x98, 0x17, 0x56, 0xeb, 0xdf, 0xff, 0x74, 0x41, 0xf9, 0xe1, 0xa7, + 0x0b, 0xca, 0xbf, 0x7e, 0xba, 0xa0, 0x7c, 0xf7, 0xb3, 0x85, 0x7b, 0x3f, 0xfc, 0x6c, 0xe1, 0xde, + 0x3f, 0x7e, 0xb6, 0x70, 0xef, 0x1b, 0x3b, 0xb1, 0xc4, 0xac, 0x1a, 0x84, 0x8c, 0x2d, 0x74, 0x48, + 0x57, 0xc2, 0x00, 0xf2, 0x96, 0xe1, 0x7a, 0x38, 0x5e, 0xac, 0x23, 0xe2, 0xac, 0xd8, 0x2e, 0xdb, + 0x20, 0xd0, 0xe8, 0xaf, 0x72, 0xf0, 0x24, 0xee, 0x70, 0x84, 0x7f, 0x0b, 0xfa, 0x33, 0xff, 0x1d, + 0x00, 0x00, 0xff, 0xff, 0xd6, 0x19, 0xfd, 0x4e, 0xb8, 0x43, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -7007,6 +7054,46 @@ func (m *EffectiveGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DenomMinNotional) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DenomMinNotional) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DenomMinNotional) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintExchange(dAtA []byte, offset int, v uint64) int { offset -= sovExchange(v) base := offset @@ -8210,6 +8297,21 @@ func (m *EffectiveGrant) Size() (n int) { return n } +func (m *DenomMinNotional) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } + l = m.MinNotional.Size() + n += 1 + l + sovExchange(uint64(l)) + return n +} + func sovExchange(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -17930,6 +18032,122 @@ func (m *EffectiveGrant) Unmarshal(dAtA []byte) error { } return nil } +func (m *DenomMinNotional) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DenomMinNotional: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DenomMinNotional: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipExchange(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/genesis.pb.go b/chain/exchange/types/genesis.pb.go index bfb2e0ca..58ab2e8f 100644 --- a/chain/exchange/types/genesis.pb.go +++ b/chain/exchange/types/genesis.pb.go @@ -103,6 +103,7 @@ type GenesisState struct { MarketVolumes []*MarketVolume `protobuf:"bytes,34,rep,name=market_volumes,json=marketVolumes,proto3" json:"market_volumes,omitempty"` GrantAuthorizations []*FullGrantAuthorizations `protobuf:"bytes,35,rep,name=grant_authorizations,json=grantAuthorizations,proto3" json:"grant_authorizations,omitempty"` ActiveGrants []*FullActiveGrant `protobuf:"bytes,36,rep,name=active_grants,json=activeGrants,proto3" json:"active_grants,omitempty"` + DenomMinNotionals []*DenomMinNotional `protobuf:"bytes,37,rep,name=denom_min_notionals,json=denomMinNotionals,proto3" json:"denom_min_notionals,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -390,6 +391,13 @@ func (m *GenesisState) GetActiveGrants() []*FullActiveGrant { return nil } +func (m *GenesisState) GetDenomMinNotionals() []*DenomMinNotional { + if m != nil { + return m.DenomMinNotionals + } + return nil +} + type OrderbookSequence struct { Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` @@ -1172,135 +1180,137 @@ func init() { } var fileDescriptor_c47ec6b98758ed05 = []byte{ - // 2044 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0xcb, 0x6f, 0x24, 0x47, - 0x19, 0x77, 0xdb, 0x5e, 0x7b, 0xfc, 0xf9, 0xb5, 0x2e, 0x3f, 0xb6, 0xfd, 0xf6, 0x8e, 0xc3, 0x32, - 0x0b, 0xd9, 0x71, 0x76, 0x97, 0x28, 0x90, 0xf0, 0x88, 0xc7, 0x8f, 0x60, 0x70, 0x62, 0xab, 0x3d, - 0xca, 0x21, 0x3c, 0x5a, 0x3d, 0xdd, 0x35, 0x33, 0x15, 0x77, 0x77, 0x0d, 0x5d, 0xd5, 0xde, 0x35, - 0x5c, 0x22, 0x0e, 0x28, 0x88, 0x43, 0x00, 0x09, 0x89, 0x63, 0x84, 0x38, 0x80, 0x90, 0xf8, 0x1f, - 0xb8, 0xe5, 0x18, 0x6e, 0x88, 0x43, 0x84, 0x76, 0x2f, 0xfc, 0x19, 0xa8, 0xaa, 0xab, 0x1f, 0xf3, - 0xea, 0x19, 0x9b, 0xdc, 0xa6, 0xaa, 0xbe, 0xef, 0xf7, 0xfb, 0xd5, 0xf3, 0xfb, 0xfa, 0x1b, 0x28, - 0x11, 0xff, 0x43, 0x6c, 0x73, 0x72, 0x85, 0xf7, 0xf0, 0x73, 0xbb, 0x69, 0xf9, 0x0d, 0xbc, 0x77, - 0xf5, 0xb8, 0x86, 0xb9, 0xf5, 0x78, 0xaf, 0x81, 0x7d, 0xcc, 0x08, 0x2b, 0xb7, 0x02, 0xca, 0x29, - 0x5a, 0x4b, 0x2c, 0xcb, 0xb1, 0x65, 0x59, 0x59, 0xae, 0x3d, 0xcc, 0x41, 0x49, 0x8c, 0x25, 0xcc, - 0xda, 0x6e, 0x8e, 0x29, 0x7f, 0xae, 0x8c, 0x96, 0x1a, 0xb4, 0x41, 0xe5, 0xcf, 0x3d, 0xf1, 0x2b, - 0xea, 0x2d, 0xfe, 0x6d, 0x13, 0x66, 0xde, 0x89, 0x34, 0x5d, 0x70, 0x8b, 0x63, 0xf4, 0x36, 0x4c, - 0xb4, 0xac, 0xc0, 0xf2, 0x98, 0xae, 0xed, 0x68, 0xa5, 0xe9, 0x27, 0xc5, 0x72, 0x7f, 0x8d, 0xe5, - 0x73, 0x69, 0x59, 0x19, 0xff, 0xec, 0x8b, 0xed, 0x11, 0x43, 0xf9, 0xa1, 0x13, 0x98, 0x61, 0x2d, - 0xca, 0x4d, 0xcf, 0x0a, 0x2e, 0x31, 0x67, 0xfa, 0xe8, 0xce, 0x58, 0x69, 0xfa, 0xc9, 0x83, 0x3c, - 0x9c, 0x8b, 0x16, 0xe5, 0xef, 0x4a, 0x73, 0x63, 0x9a, 0x25, 0xbf, 0x19, 0xfa, 0x11, 0x20, 0x07, - 0x07, 0xe4, 0xca, 0x12, 0x6e, 0x09, 0xe0, 0x98, 0x04, 0x7c, 0x35, 0x0f, 0xf0, 0x30, 0xf1, 0x52, - 0xb0, 0x0b, 0x4e, 0x47, 0x0f, 0x43, 0xef, 0xc3, 0x9c, 0xd4, 0x49, 0x03, 0x07, 0x07, 0x35, 0x4a, - 0x2f, 0xf5, 0x71, 0x09, 0xfc, 0x70, 0x90, 0xd2, 0x33, 0xe1, 0x50, 0xa1, 0xf4, 0x52, 0x4d, 0x7c, - 0x96, 0xc5, 0x9d, 0x02, 0x05, 0x35, 0x61, 0x29, 0x23, 0x3a, 0x45, 0xbf, 0x23, 0xd1, 0xf7, 0x86, - 0x93, 0xdd, 0xc9, 0xb1, 0xe8, 0xb4, 0x0f, 0x49, 0xa6, 0x23, 0x28, 0xd4, 0x2c, 0xd7, 0xf2, 0x6d, - 0xcc, 0xf4, 0x09, 0x89, 0xbe, 0x9b, 0x87, 0x5e, 0x89, 0x6c, 0x15, 0x62, 0xe2, 0x8a, 0x0c, 0x98, - 0x6a, 0x51, 0x46, 0x38, 0xa1, 0x3e, 0xd3, 0x27, 0x25, 0x4e, 0x79, 0x38, 0x95, 0xe7, 0xca, 0x4d, - 0x41, 0xa6, 0x30, 0x88, 0xc0, 0x3d, 0x16, 0xd6, 0x2c, 0xdb, 0xa6, 0xa1, 0xcf, 0x4d, 0x1e, 0x58, - 0x0e, 0x36, 0x7d, 0x2a, 0x95, 0x16, 0x24, 0xc3, 0xd7, 0x73, 0x57, 0x39, 0x71, 0x7d, 0x8f, 0xa6, - 0x8a, 0x97, 0x53, 0xc4, 0xaa, 0x00, 0x94, 0x63, 0x0c, 0xfd, 0x4a, 0x83, 0x1d, 0xfc, 0xbc, 0x45, - 0x82, 0x6b, 0xb3, 0x1e, 0xf2, 0x30, 0xc0, 0x4c, 0x9d, 0x14, 0x93, 0xf8, 0x75, 0x6a, 0x32, 0x71, - 0xac, 0xf5, 0x29, 0x49, 0xfa, 0xcd, 0x3c, 0xd2, 0x23, 0x89, 0x71, 0x1c, 0x41, 0x44, 0x87, 0xe4, - 0xc4, 0xaf, 0x53, 0x79, 0x2d, 0x94, 0x82, 0x0d, 0x9c, 0x63, 0x83, 0x08, 0x2c, 0xb7, 0x70, 0xd0, - 0xc2, 0x3c, 0xb4, 0xdc, 0xac, 0x04, 0x1d, 0x06, 0xef, 0xfc, 0x79, 0xec, 0x98, 0x82, 0xc6, 0x3b, - 0xdf, 0xea, 0x1e, 0x42, 0xbf, 0xd4, 0x60, 0xab, 0x8b, 0xab, 0x1e, 0xfa, 0x0e, 0xf1, 0x1b, 0x6a, - 0xc6, 0xd3, 0x92, 0xf4, 0x8d, 0x1b, 0x90, 0x1e, 0x47, 0xfe, 0xd9, 0x09, 0xaf, 0xb7, 0xfa, 0x9b, - 0xa0, 0x3f, 0x68, 0xf0, 0xa0, 0xeb, 0x7a, 0x9a, 0x0c, 0x73, 0xee, 0x62, 0x0f, 0xfb, 0xdc, 0x64, - 0x76, 0x13, 0x3b, 0xa1, 0x8b, 0x1d, 0x7d, 0x46, 0x8a, 0x79, 0xf3, 0x26, 0x57, 0xf6, 0x22, 0xc1, - 0xc9, 0x2c, 0xc6, 0xae, 0xd3, 0xd7, 0xea, 0x22, 0x26, 0x43, 0x6f, 0x80, 0x4e, 0x98, 0x29, 0xef, - 0x76, 0xcc, 0x62, 0x62, 0xdf, 0xaa, 0x09, 0x21, 0xb3, 0x3b, 0x5a, 0xa9, 0x60, 0x2c, 0x13, 0x26, - 0x2e, 0xf2, 0x91, 0x1a, 0x3d, 0x8a, 0x06, 0xd1, 0x11, 0x6c, 0x13, 0x66, 0xa6, 0x14, 0xac, 0xdb, - 0x7f, 0x4e, 0xfa, 0x6f, 0x10, 0x96, 0xca, 0x65, 0x9d, 0x30, 0x57, 0xb0, 0x21, 0x0e, 0xbc, 0xd8, - 0x8a, 0x00, 0x3f, 0xb3, 0x02, 0xc7, 0xb4, 0x2d, 0xaf, 0x65, 0x91, 0x86, 0x1f, 0x1d, 0x87, 0x79, - 0xf9, 0xb0, 0xbe, 0x9e, 0xb7, 0x18, 0xd5, 0xc8, 0xdf, 0x90, 0xee, 0x07, 0xca, 0x5b, 0xac, 0x83, - 0xb1, 0xca, 0xfb, 0x0d, 0xa1, 0x8f, 0x34, 0xf8, 0x4a, 0x07, 0x71, 0x8b, 0x52, 0x37, 0x65, 0x8f, - 0xf7, 0x43, 0xbf, 0x3b, 0xf8, 0x92, 0xc7, 0xc8, 0x11, 0xcf, 0x39, 0xa5, 0xae, 0x71, 0xbf, 0x8d, - 0x5a, 0x74, 0xc5, 0x46, 0xf1, 0xda, 0xa3, 0xdf, 0x6b, 0xf0, 0xa0, 0xdf, 0xdc, 0xe3, 0xc7, 0xa0, - 0x45, 0x89, 0xcf, 0x99, 0xbe, 0x20, 0x35, 0x7c, 0xf7, 0xc6, 0xab, 0xb0, 0x1f, 0xc1, 0x9c, 0x4b, - 0x14, 0xa3, 0xc8, 0x07, 0xda, 0x20, 0x1b, 0x96, 0xeb, 0x18, 0x9b, 0x0e, 0x61, 0x91, 0x80, 0x64, - 0x19, 0x90, 0xdc, 0x88, 0xdc, 0x7b, 0x79, 0x8c, 0xf1, 0xa1, 0xf2, 0x8b, 0x27, 0x69, 0x2c, 0xd6, - 0xbb, 0x3b, 0xd1, 0x33, 0xd8, 0x6c, 0x23, 0x49, 0x9e, 0x3e, 0x82, 0x03, 0x93, 0x73, 0x57, 0x5f, - 0x94, 0xf3, 0x7d, 0x7d, 0x48, 0x32, 0x35, 0x83, 0x2a, 0xc1, 0x41, 0xb5, 0x7a, 0x6a, 0xac, 0xd6, - 0x7b, 0x0f, 0x71, 0x17, 0xfd, 0x5a, 0x83, 0xdd, 0x36, 0xe6, 0x5a, 0x68, 0x8b, 0x7b, 0x78, 0x45, - 0xdd, 0xd0, 0xc3, 0xb1, 0x0e, 0xa6, 0x2f, 0x49, 0xfe, 0xb7, 0x86, 0xe4, 0xaf, 0x48, 0x90, 0xf7, - 0x25, 0x86, 0x22, 0x64, 0xc6, 0x76, 0x3d, 0xdf, 0x00, 0x7d, 0x1b, 0xd6, 0x09, 0x33, 0xeb, 0x24, - 0x60, 0xdc, 0x14, 0x9a, 0xec, 0x6b, 0xdb, 0xc5, 0x66, 0x9d, 0xf8, 0x84, 0x35, 0xb1, 0xa3, 0x2f, - 0xcb, 0xcb, 0x73, 0x8f, 0xb0, 0x63, 0x61, 0x71, 0x8c, 0xf1, 0x81, 0x18, 0x3f, 0x56, 0xc3, 0xe8, - 0x13, 0x0d, 0x1e, 0xb5, 0x70, 0xf4, 0x86, 0x0d, 0x77, 0x8e, 0x57, 0x6e, 0x75, 0x8e, 0x4b, 0x8a, - 0xa4, 0x3a, 0xf0, 0x38, 0xff, 0x45, 0x83, 0x72, 0x1f, 0x45, 0xfd, 0x8e, 0xf5, 0x3d, 0x29, 0xe9, - 0xe8, 0xd6, 0xc7, 0x3a, 0x62, 0x53, 0xa7, 0xfb, 0x61, 0x2f, 0xa5, 0xbd, 0x0f, 0xf9, 0xb7, 0x60, - 0x35, 0x52, 0xc6, 0x4c, 0xda, 0xe2, 0x26, 0x0d, 0xb9, 0x69, 0x39, 0x4e, 0x80, 0x19, 0xc3, 0x4c, - 0xd7, 0x77, 0xc6, 0x4a, 0x53, 0xc6, 0x8a, 0x32, 0x38, 0x6b, 0xf1, 0xb3, 0x90, 0xef, 0xc7, 0xa3, - 0xa8, 0x06, 0x7a, 0x93, 0x30, 0x4e, 0x03, 0x62, 0x5b, 0xae, 0x8a, 0xd5, 0x01, 0xb6, 0x69, 0xe0, - 0x30, 0x7d, 0x55, 0x4e, 0xa7, 0x34, 0x68, 0x3a, 0xd8, 0x88, 0xec, 0x8d, 0x95, 0x14, 0x29, 0xdb, - 0x8f, 0x30, 0xac, 0xd4, 0x88, 0x6f, 0x05, 0xd7, 0x42, 0x9d, 0xc8, 0x10, 0x92, 0x6c, 0x6e, 0x6d, - 0x70, 0x70, 0xac, 0x48, 0xcf, 0xb3, 0xc8, 0x51, 0x25, 0x74, 0x4b, 0xb5, 0xee, 0x4e, 0x86, 0x9a, - 0xf0, 0xa4, 0x27, 0x8d, 0x49, 0x1c, 0x96, 0x86, 0x23, 0xb3, 0x4e, 0x83, 0x4c, 0x9c, 0xd2, 0xd7, - 0xe5, 0xf2, 0xbc, 0xda, 0x03, 0xf1, 0xc4, 0x61, 0x49, 0x5c, 0x39, 0xa6, 0x41, 0x1a, 0x6d, 0x50, - 0x15, 0x4a, 0x99, 0x2c, 0xb7, 0x03, 0x9f, 0x53, 0x41, 0x61, 0x63, 0xd3, 0x76, 0x29, 0xc3, 0xfa, - 0x86, 0xc4, 0x2f, 0xa6, 0x99, 0x6d, 0x16, 0xb6, 0x4a, 0x8f, 0x85, 0xe9, 0x81, 0xb0, 0x14, 0x39, - 0xa9, 0x83, 0x7d, 0xea, 0x99, 0x0e, 0xb6, 0x89, 0x67, 0xb9, 0x4c, 0xdf, 0x1c, 0x9c, 0x93, 0x1e, - 0x0a, 0x8f, 0x43, 0xe5, 0x10, 0xe7, 0xa4, 0x4e, 0xb6, 0x53, 0xe4, 0x48, 0xf7, 0x6d, 0xea, 0x3b, - 0x32, 0x3b, 0xb3, 0x5c, 0xb3, 0x57, 0x82, 0xca, 0xf4, 0xad, 0xc1, 0x51, 0xfa, 0x20, 0x05, 0xe9, - 0x91, 0xac, 0x1a, 0xdb, 0x76, 0xdf, 0x71, 0x49, 0x21, 0xce, 0x41, 0x9c, 0xad, 0x60, 0x6c, 0x7a, - 0xa1, 0xcb, 0x49, 0xcb, 0x25, 0x38, 0x60, 0xfa, 0xf6, 0xe0, 0x73, 0xa0, 0x72, 0x10, 0x8c, 0xdf, - 0x4d, 0xfc, 0x8c, 0x25, 0xaf, 0xbb, 0x93, 0xa1, 0x9f, 0xc2, 0x62, 0x32, 0x2f, 0x93, 0xe1, 0x9f, - 0x85, 0x58, 0xa6, 0x9e, 0x3b, 0x92, 0xe3, 0x51, 0x1e, 0x47, 0xa2, 0xf5, 0x42, 0x79, 0x19, 0x88, - 0x76, 0x76, 0x31, 0xf4, 0x21, 0xa0, 0x4c, 0x7a, 0x1b, 0x3d, 0xb5, 0x4c, 0xbf, 0x3f, 0xf8, 0x89, - 0xdd, 0x6f, 0x34, 0x02, 0xdc, 0xb0, 0x38, 0x4e, 0x53, 0xdc, 0xe8, 0x0d, 0x8d, 0x2e, 0x8a, 0xb1, - 0xc0, 0x3a, 0xfa, 0x19, 0x3a, 0x83, 0x39, 0xb5, 0x64, 0x31, 0x4f, 0x71, 0xf0, 0xa5, 0x8c, 0x96, - 0x4a, 0x41, 0xcf, 0x7a, 0x99, 0x16, 0x43, 0x75, 0x58, 0x6a, 0x04, 0x96, 0x88, 0x51, 0x21, 0x6f, - 0xd2, 0x80, 0xfc, 0xdc, 0x8a, 0x52, 0xff, 0x5d, 0x09, 0xfb, 0x34, 0x37, 0x42, 0x84, 0xae, 0xfb, - 0x8e, 0xf0, 0xdd, 0x6f, 0x73, 0x35, 0x16, 0x1b, 0xdd, 0x9d, 0xe8, 0x1c, 0x66, 0x2d, 0x89, 0x63, - 0xca, 0x51, 0xa6, 0xbf, 0x32, 0x38, 0xf3, 0x17, 0x04, 0xfb, 0x72, 0x4c, 0xd2, 0x18, 0x33, 0x56, - 0xda, 0x60, 0xc5, 0x53, 0x58, 0xe8, 0xda, 0x1f, 0xb4, 0x06, 0x85, 0x78, 0x87, 0xe5, 0x37, 0xeb, - 0xb8, 0x91, 0xb4, 0xd1, 0x3a, 0x4c, 0x25, 0x17, 0x54, 0x1f, 0xdd, 0xd1, 0x4a, 0x53, 0x46, 0xc1, - 0x53, 0x57, 0xb0, 0xf8, 0x91, 0x06, 0xab, 0x7d, 0x43, 0x2e, 0xd2, 0x61, 0x52, 0x6d, 0x84, 0x44, - 0x9d, 0x32, 0xe2, 0x26, 0x3a, 0x81, 0x42, 0x12, 0xd5, 0x47, 0x65, 0x0a, 0x51, 0x1e, 0x32, 0xaa, - 0xc6, 0xe1, 0x7c, 0x92, 0x47, 0xc1, 0xbb, 0xf8, 0x57, 0x0d, 0xb6, 0x07, 0x44, 0x5d, 0xf4, 0x0d, - 0x58, 0x51, 0x21, 0x9d, 0x71, 0x2b, 0x10, 0x19, 0x85, 0x87, 0x19, 0xb7, 0xbc, 0x96, 0xd4, 0x35, - 0x66, 0x2c, 0x45, 0xa3, 0x17, 0x62, 0xb0, 0x1a, 0x8f, 0xa1, 0x73, 0x98, 0x6b, 0x3f, 0x9e, 0xea, - 0x3b, 0x3c, 0xf7, 0x25, 0xd9, 0x6f, 0x3b, 0x91, 0xb3, 0x6d, 0x07, 0xb1, 0x58, 0x87, 0xd9, 0xb6, - 0xf1, 0x9c, 0x15, 0x7a, 0x0b, 0x26, 0x12, 0x52, 0xad, 0x34, 0x55, 0xd9, 0x15, 0x6f, 0xd2, 0xbf, - 0xbf, 0xd8, 0x5e, 0xb7, 0x29, 0xf3, 0x28, 0x63, 0xce, 0x65, 0x99, 0xd0, 0x3d, 0xcf, 0xe2, 0xcd, - 0xf2, 0x29, 0x6e, 0x58, 0xf6, 0xf5, 0x21, 0xb6, 0x0d, 0xe5, 0x52, 0xfc, 0x05, 0x14, 0x87, 0x88, - 0x77, 0xb9, 0xe4, 0x2a, 0x16, 0xdf, 0x84, 0x3c, 0x72, 0x29, 0xfe, 0x53, 0x83, 0x87, 0x43, 0xc7, - 0x67, 0xf4, 0x1d, 0x58, 0xcf, 0x26, 0x28, 0xbd, 0xf7, 0x47, 0x0f, 0x92, 0x04, 0xa3, 0x63, 0x8f, - 0x70, 0xba, 0x47, 0x89, 0xe2, 0x2f, 0x23, 0x29, 0x8e, 0x37, 0x2e, 0x6a, 0x16, 0xff, 0xa8, 0xc1, - 0x6c, 0x5b, 0xdd, 0xa2, 0xfd, 0x5a, 0x68, 0xed, 0xd7, 0x02, 0x6d, 0xc0, 0x14, 0x61, 0x95, 0xf0, - 0xfa, 0x82, 0x38, 0xd1, 0xfe, 0x15, 0x8c, 0xb4, 0x03, 0x55, 0x60, 0x42, 0xbe, 0x87, 0x71, 0x19, - 0xe6, 0x6b, 0x83, 0xaa, 0x25, 0xa7, 0xc4, 0x23, 0x11, 0xb5, 0xa1, 0x3c, 0xdf, 0x2c, 0x7c, 0xfc, - 0xe9, 0xf6, 0xc8, 0x7f, 0x3f, 0xdd, 0x1e, 0x29, 0xfe, 0x59, 0x83, 0xc5, 0x1e, 0x71, 0xe4, 0xff, - 0x11, 0xf8, 0xfd, 0x0e, 0x81, 0xaf, 0x0d, 0xf7, 0xd1, 0x99, 0x2b, 0xf3, 0x1f, 0x63, 0xb0, 0x95, - 0x1f, 0xf9, 0xf2, 0x15, 0x7f, 0x00, 0x77, 0x5d, 0x81, 0x6f, 0xd6, 0xc2, 0x6b, 0x53, 0xa9, 0x1b, - 0xbd, 0xa5, 0xba, 0x39, 0x89, 0x54, 0x09, 0xaf, 0x65, 0x93, 0xa1, 0x9f, 0xc0, 0x82, 0x22, 0xce, - 0x80, 0x47, 0x53, 0x7f, 0x7c, 0x93, 0xef, 0xed, 0x08, 0x7d, 0x3e, 0xc2, 0x4a, 0xe1, 0x7f, 0x0c, - 0x0b, 0x91, 0x74, 0x86, 0x5d, 0x37, 0x86, 0x1f, 0xbf, 0xa5, 0xf6, 0x79, 0x09, 0x75, 0x81, 0x5d, - 0x57, 0xa1, 0x9b, 0x80, 0x92, 0xb2, 0x41, 0x0a, 0x7f, 0xe7, 0xb6, 0xea, 0xef, 0x7a, 0xaa, 0x28, - 0x10, 0x13, 0x64, 0xf6, 0xf0, 0x13, 0x0d, 0x26, 0x55, 0x05, 0x0c, 0xed, 0xc2, 0x6c, 0x26, 0x7c, - 0x27, 0x1b, 0x36, 0x93, 0x76, 0x9e, 0x38, 0x68, 0x09, 0xee, 0xc8, 0x24, 0x4a, 0xc5, 0x8d, 0xa8, - 0x81, 0xbe, 0x07, 0x05, 0x07, 0xcb, 0x3a, 0x97, 0x58, 0x65, 0x6d, 0x50, 0xcd, 0xed, 0x30, 0xb2, - 0x35, 0x12, 0xa7, 0x8c, 0xa2, 0x3f, 0x69, 0x80, 0xba, 0x6b, 0x69, 0xc3, 0x89, 0xcb, 0x0b, 0x6c, - 0xe8, 0x6d, 0x28, 0xc4, 0x95, 0x38, 0xa5, 0xf1, 0x95, 0xdc, 0x32, 0x90, 0xb2, 0x35, 0x12, 0xaf, - 0x8c, 0xc8, 0xbf, 0x6b, 0x30, 0xdf, 0x51, 0x8e, 0x1b, 0x4e, 0xa1, 0x0b, 0x2b, 0xbd, 0x2b, 0x80, - 0x2a, 0x66, 0xbe, 0x36, 0x5c, 0x01, 0x30, 0xad, 0xf4, 0xa9, 0xcc, 0x76, 0xa9, 0x57, 0x15, 0x30, - 0x23, 0xf8, 0x77, 0x1a, 0x6c, 0xe4, 0x95, 0xf2, 0xf2, 0x6f, 0x6a, 0x15, 0xa6, 0xb3, 0x95, 0xbb, - 0x48, 0xea, 0xd3, 0x5b, 0x94, 0x0d, 0x0d, 0xf0, 0x92, 0xdf, 0xc5, 0x8f, 0x35, 0x58, 0xcf, 0x29, - 0xb6, 0xe5, 0x4b, 0x3a, 0x85, 0x49, 0x55, 0xd9, 0x53, 0x72, 0x9e, 0xdc, 0xbc, 0xa6, 0x67, 0xc4, - 0x10, 0xc5, 0xdf, 0x8c, 0xc2, 0xbd, 0x3e, 0x59, 0x9c, 0x88, 0xa9, 0x32, 0x53, 0xc3, 0x41, 0x1c, - 0x53, 0x55, 0x13, 0xfd, 0x10, 0x10, 0xa7, 0xdc, 0x72, 0x4d, 0x95, 0x38, 0x7a, 0x32, 0xf0, 0x46, - 0xf1, 0x75, 0x53, 0xc5, 0xd7, 0xe5, 0xee, 0xf8, 0x7a, 0xe2, 0x73, 0xe3, 0xae, 0x74, 0x8c, 0xe8, - 0xa4, 0x1b, 0xda, 0x87, 0x4d, 0xd7, 0x62, 0xdc, 0x74, 0xb0, 0x2b, 0x52, 0x61, 0xf9, 0x99, 0x66, - 0x37, 0xb1, 0x7d, 0x29, 0xbe, 0x9c, 0x88, 0x87, 0xe5, 0x99, 0x1d, 0x33, 0xd6, 0x84, 0xd1, 0x61, - 0x6a, 0x73, 0x10, 0x99, 0x88, 0xf0, 0x89, 0x8e, 0x61, 0x42, 0xe5, 0x94, 0xe3, 0x83, 0x4b, 0x00, - 0xdd, 0x53, 0x35, 0x94, 0x77, 0xf1, 0x19, 0xcc, 0x77, 0x64, 0x9c, 0xe9, 0x22, 0xe0, 0xf6, 0x45, - 0xc0, 0xe8, 0x07, 0x30, 0x93, 0xcd, 0x67, 0xd5, 0x6e, 0x7c, 0x35, 0x3f, 0xa1, 0x4a, 0x53, 0xd9, - 0xe9, 0x4c, 0x2a, 0x5b, 0x69, 0x7e, 0xf6, 0x62, 0x4b, 0xfb, 0xfc, 0xc5, 0x96, 0xf6, 0x9f, 0x17, - 0x5b, 0xda, 0x6f, 0x5f, 0x6e, 0x8d, 0x7c, 0xfe, 0x72, 0x6b, 0xe4, 0x5f, 0x2f, 0xb7, 0x46, 0x3e, - 0x78, 0xaf, 0x41, 0x78, 0x33, 0xac, 0x95, 0x6d, 0xea, 0xed, 0x9d, 0xc4, 0xc8, 0xa7, 0x56, 0x8d, - 0xed, 0x25, 0x3c, 0x8f, 0x6c, 0x1a, 0xe0, 0x6c, 0xb3, 0x69, 0x11, 0x7f, 0xcf, 0xa3, 0xe2, 0x7b, - 0x92, 0xa5, 0x7f, 0x01, 0xf1, 0xeb, 0x16, 0x66, 0xb5, 0x09, 0xf9, 0x47, 0xcf, 0xd3, 0xff, 0x05, - 0x00, 0x00, 0xff, 0xff, 0xc7, 0x69, 0x9a, 0x25, 0x96, 0x1a, 0x00, 0x00, + // 2080 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0xcb, 0x73, 0x1b, 0xc7, + 0xf1, 0xe6, 0x8a, 0x12, 0x05, 0x36, 0x49, 0x49, 0x1c, 0x3e, 0xb4, 0x22, 0x29, 0x90, 0x02, 0x6d, + 0xfd, 0xa0, 0x5f, 0x2c, 0xd0, 0x92, 0xe2, 0x72, 0x62, 0xe7, 0x61, 0x82, 0x0f, 0x87, 0x09, 0x25, + 0xb2, 0x96, 0x28, 0x1f, 0x1c, 0x27, 0x5b, 0x8b, 0xdd, 0x01, 0x30, 0xe6, 0xee, 0x0e, 0xb2, 0x33, + 0xa0, 0xc4, 0xe4, 0xe2, 0xca, 0x21, 0x65, 0x57, 0x0e, 0x4e, 0x52, 0x95, 0xaa, 0x1c, 0x5d, 0xa9, + 0x1c, 0x92, 0x4b, 0xfe, 0x87, 0xdc, 0x7c, 0x74, 0x6e, 0xa9, 0x1c, 0x5c, 0x29, 0xe9, 0x92, 0x3f, + 0x23, 0x35, 0x8f, 0x7d, 0xe0, 0xb5, 0x00, 0x99, 0xdc, 0xb0, 0x33, 0xdd, 0x5f, 0x7f, 0x33, 0xd3, + 0xb3, 0xfd, 0x6d, 0x03, 0xca, 0x24, 0xfc, 0x18, 0xbb, 0x9c, 0x9c, 0xe1, 0x2d, 0xfc, 0xc2, 0x6d, + 0x39, 0x61, 0x13, 0x6f, 0x9d, 0x3d, 0xaa, 0x63, 0xee, 0x3c, 0xda, 0x6a, 0xe2, 0x10, 0x33, 0xc2, + 0x2a, 0xed, 0x88, 0x72, 0x8a, 0x56, 0x12, 0xcb, 0x4a, 0x6c, 0x59, 0xd1, 0x96, 0x2b, 0x0f, 0x72, + 0x50, 0x12, 0x63, 0x09, 0xb3, 0xb2, 0x99, 0x63, 0xca, 0x5f, 0x68, 0xa3, 0xc5, 0x26, 0x6d, 0x52, + 0xf9, 0x73, 0x4b, 0xfc, 0x52, 0xa3, 0xa5, 0xcf, 0x8a, 0x30, 0xfb, 0xbe, 0xe2, 0x74, 0xc2, 0x1d, + 0x8e, 0xd1, 0x7b, 0x30, 0xd5, 0x76, 0x22, 0x27, 0x60, 0xa6, 0xb1, 0x61, 0x94, 0x67, 0x1e, 0x97, + 0x2a, 0xc3, 0x39, 0x56, 0x8e, 0xa5, 0x65, 0xf5, 0xea, 0x97, 0x5f, 0xaf, 0x4f, 0x58, 0xda, 0x0f, + 0x1d, 0xc0, 0x2c, 0x6b, 0x53, 0x6e, 0x07, 0x4e, 0x74, 0x8a, 0x39, 0x33, 0xaf, 0x6c, 0x4c, 0x96, + 0x67, 0x1e, 0xdf, 0xcf, 0xc3, 0x39, 0x69, 0x53, 0xfe, 0x54, 0x9a, 0x5b, 0x33, 0x2c, 0xf9, 0xcd, + 0xd0, 0x8f, 0x01, 0x79, 0x38, 0x22, 0x67, 0x8e, 0x70, 0x4b, 0x00, 0x27, 0x25, 0xe0, 0x1b, 0x79, + 0x80, 0xbb, 0x89, 0x97, 0x86, 0x9d, 0xf7, 0x7a, 0x46, 0x18, 0xfa, 0x00, 0x6e, 0x48, 0x9e, 0x34, + 0xf2, 0x70, 0x54, 0xa7, 0xf4, 0xd4, 0xbc, 0x2a, 0x81, 0x1f, 0x8c, 0x62, 0x7a, 0x24, 0x1c, 0xaa, + 0x94, 0x9e, 0xea, 0x85, 0xcf, 0xb1, 0x78, 0x50, 0xa0, 0xa0, 0x16, 0x2c, 0x66, 0x48, 0xa7, 0xe8, + 0xd7, 0x24, 0xfa, 0xd6, 0x78, 0xb4, 0x7b, 0x63, 0x2c, 0x78, 0xdd, 0x53, 0x32, 0xd2, 0x1e, 0x14, + 0xea, 0x8e, 0xef, 0x84, 0x2e, 0x66, 0xe6, 0x94, 0x44, 0xdf, 0xcc, 0x43, 0xaf, 0x2a, 0x5b, 0x8d, + 0x98, 0xb8, 0x22, 0x0b, 0xa6, 0xdb, 0x94, 0x11, 0x4e, 0x68, 0xc8, 0xcc, 0xeb, 0x12, 0xa7, 0x32, + 0x1e, 0xcb, 0x63, 0xed, 0xa6, 0x21, 0x53, 0x18, 0x44, 0xe0, 0x36, 0xeb, 0xd4, 0x1d, 0xd7, 0xa5, + 0x9d, 0x90, 0xdb, 0x3c, 0x72, 0x3c, 0x6c, 0x87, 0x54, 0x32, 0x2d, 0xc8, 0x08, 0xdf, 0xc8, 0xdd, + 0xe5, 0xc4, 0xf5, 0x19, 0x4d, 0x19, 0x2f, 0xa5, 0x88, 0x35, 0x01, 0x28, 0xe7, 0x18, 0xfa, 0x95, + 0x01, 0x1b, 0xf8, 0x45, 0x9b, 0x44, 0xe7, 0x76, 0xa3, 0xc3, 0x3b, 0x11, 0x66, 0x3a, 0x53, 0x6c, + 0x12, 0x36, 0xa8, 0xcd, 0x44, 0x5a, 0x9b, 0xd3, 0x32, 0xe8, 0xb7, 0xf2, 0x82, 0xee, 0x49, 0x8c, + 0x7d, 0x05, 0xa1, 0x92, 0xe4, 0x20, 0x6c, 0x50, 0x79, 0x2d, 0x34, 0x83, 0x35, 0x9c, 0x63, 0x83, + 0x08, 0x2c, 0xb5, 0x71, 0xd4, 0xc6, 0xbc, 0xe3, 0xf8, 0x59, 0x0a, 0x26, 0x8c, 0x3e, 0xf9, 0xe3, + 0xd8, 0x31, 0x05, 0x8d, 0x4f, 0xbe, 0xdd, 0x3f, 0x85, 0x7e, 0x69, 0x40, 0xb1, 0x2f, 0x56, 0xa3, + 0x13, 0x7a, 0x24, 0x6c, 0xea, 0x15, 0xcf, 0xc8, 0xa0, 0x6f, 0x5f, 0x20, 0xe8, 0xbe, 0xf2, 0xcf, + 0x2e, 0x78, 0xb5, 0x3d, 0xdc, 0x04, 0xfd, 0xde, 0x80, 0xfb, 0x7d, 0xd7, 0xd3, 0x66, 0x98, 0x73, + 0x1f, 0x07, 0x38, 0xe4, 0x36, 0x73, 0x5b, 0xd8, 0xeb, 0xf8, 0xd8, 0x33, 0x67, 0x25, 0x99, 0x77, + 0x2e, 0x72, 0x65, 0x4f, 0x12, 0x9c, 0xcc, 0x66, 0x6c, 0x7a, 0x43, 0xad, 0x4e, 0xe2, 0x60, 0xe8, + 0x6d, 0x30, 0x09, 0xb3, 0xe5, 0xdd, 0x8e, 0xa3, 0xd8, 0x38, 0x74, 0xea, 0x82, 0xc8, 0xdc, 0x86, + 0x51, 0x2e, 0x58, 0x4b, 0x84, 0x89, 0x8b, 0xbc, 0xa7, 0x67, 0xf7, 0xd4, 0x24, 0xda, 0x83, 0x75, + 0xc2, 0xec, 0x34, 0x04, 0xeb, 0xf7, 0xbf, 0x21, 0xfd, 0xd7, 0x08, 0x4b, 0xe9, 0xb2, 0x5e, 0x98, + 0x33, 0x58, 0x13, 0x09, 0x2f, 0x8e, 0x22, 0xc2, 0xcf, 0x9d, 0xc8, 0xb3, 0x5d, 0x27, 0x68, 0x3b, + 0xa4, 0x19, 0xaa, 0x74, 0xb8, 0x29, 0x5f, 0xac, 0x6f, 0xe5, 0x6d, 0x46, 0x4d, 0xf9, 0x5b, 0xd2, + 0x7d, 0x47, 0x7b, 0x8b, 0x7d, 0xb0, 0xee, 0xf0, 0x61, 0x53, 0xe8, 0x13, 0x03, 0x5e, 0xef, 0x09, + 0xdc, 0xa6, 0xd4, 0x4f, 0xa3, 0xc7, 0xe7, 0x61, 0xde, 0x1a, 0x7d, 0xc9, 0x63, 0x64, 0x15, 0xe7, + 0x98, 0x52, 0xdf, 0xba, 0xd7, 0x15, 0x5a, 0x0c, 0xc5, 0x46, 0xf1, 0xde, 0xa3, 0xdf, 0x19, 0x70, + 0x7f, 0xd8, 0xda, 0xe3, 0x97, 0x41, 0x9b, 0x92, 0x90, 0x33, 0x73, 0x5e, 0x72, 0xf8, 0xde, 0x85, + 0x77, 0x61, 0x5b, 0xc1, 0x1c, 0x4b, 0x14, 0xab, 0xc4, 0x47, 0xda, 0x20, 0x17, 0x96, 0x1a, 0x18, + 0xdb, 0x1e, 0x61, 0x8a, 0x40, 0xb2, 0x0d, 0x48, 0x1e, 0x44, 0xee, 0xbd, 0xdc, 0xc7, 0x78, 0x57, + 0xfb, 0xc5, 0x8b, 0xb4, 0x16, 0x1a, 0xfd, 0x83, 0xe8, 0x39, 0xdc, 0xed, 0x0a, 0x92, 0xbc, 0xfa, + 0x08, 0x8e, 0x6c, 0xce, 0x7d, 0x73, 0x41, 0xae, 0xf7, 0xad, 0x31, 0x83, 0xe9, 0x15, 0xd4, 0x08, + 0x8e, 0x6a, 0xb5, 0x43, 0xeb, 0x4e, 0x63, 0xf0, 0x14, 0xf7, 0xd1, 0x67, 0x06, 0x6c, 0x76, 0x45, + 0xae, 0x77, 0x5c, 0x71, 0x0f, 0xcf, 0xa8, 0xdf, 0x09, 0x70, 0xcc, 0x83, 0x99, 0x8b, 0x32, 0xfe, + 0xbb, 0x63, 0xc6, 0xaf, 0x4a, 0x90, 0x0f, 0x24, 0x86, 0x0e, 0xc8, 0xac, 0xf5, 0x46, 0xbe, 0x01, + 0xfa, 0x0e, 0xac, 0x12, 0x66, 0x37, 0x48, 0xc4, 0xb8, 0x2d, 0x38, 0xb9, 0xe7, 0xae, 0x8f, 0xed, + 0x06, 0x09, 0x09, 0x6b, 0x61, 0xcf, 0x5c, 0x92, 0x97, 0xe7, 0x36, 0x61, 0xfb, 0xc2, 0x62, 0x1f, + 0xe3, 0x1d, 0x31, 0xbf, 0xaf, 0xa7, 0xd1, 0xe7, 0x06, 0x3c, 0x6c, 0x63, 0xf5, 0x0e, 0x1b, 0x2f, + 0x8f, 0x97, 0x2f, 0x95, 0xc7, 0x65, 0x1d, 0xa4, 0x36, 0x32, 0x9d, 0xff, 0x6c, 0x40, 0x65, 0x08, + 0xa3, 0x61, 0x69, 0x7d, 0x5b, 0x52, 0xda, 0xbb, 0x74, 0x5a, 0xab, 0x68, 0x3a, 0xbb, 0x1f, 0x0c, + 0x62, 0x3a, 0x38, 0xc9, 0xbf, 0x0d, 0x77, 0x14, 0x33, 0x66, 0xd3, 0x36, 0xb7, 0x69, 0x87, 0xdb, + 0x8e, 0xe7, 0x45, 0x98, 0x31, 0xcc, 0x4c, 0x73, 0x63, 0xb2, 0x3c, 0x6d, 0x2d, 0x6b, 0x83, 0xa3, + 0x36, 0x3f, 0xea, 0xf0, 0xed, 0x78, 0x16, 0xd5, 0xc1, 0x6c, 0x11, 0xc6, 0x69, 0x44, 0x5c, 0xc7, + 0xd7, 0xb5, 0x3a, 0xc2, 0x2e, 0x8d, 0x3c, 0x66, 0xde, 0x91, 0xcb, 0x29, 0x8f, 0x5a, 0x0e, 0xb6, + 0x94, 0xbd, 0xb5, 0x9c, 0x22, 0x65, 0xc7, 0x11, 0x86, 0xe5, 0x3a, 0x09, 0x9d, 0xe8, 0x5c, 0xb0, + 0x13, 0x0a, 0x21, 0x51, 0x73, 0x2b, 0xa3, 0x8b, 0x63, 0x55, 0x7a, 0x1e, 0x29, 0x47, 0x2d, 0xe8, + 0x16, 0xeb, 0xfd, 0x83, 0x0c, 0xb5, 0xe0, 0xf1, 0xc0, 0x30, 0x36, 0xf1, 0x58, 0x5a, 0x8e, 0xec, + 0x06, 0x8d, 0x32, 0x75, 0xca, 0x5c, 0x95, 0xdb, 0xf3, 0xc6, 0x00, 0xc4, 0x03, 0x8f, 0x25, 0x75, + 0x65, 0x9f, 0x46, 0x69, 0xb5, 0x41, 0x35, 0x28, 0x67, 0x54, 0x6e, 0x0f, 0x3e, 0xa7, 0x22, 0x84, + 0x8b, 0x6d, 0xd7, 0xa7, 0x0c, 0x9b, 0x6b, 0x12, 0xbf, 0x94, 0x2a, 0xdb, 0x2c, 0x6c, 0x8d, 0xee, + 0x0b, 0xd3, 0x1d, 0x61, 0x29, 0x34, 0xa9, 0x87, 0x43, 0x1a, 0xd8, 0x1e, 0x76, 0x49, 0xe0, 0xf8, + 0xcc, 0xbc, 0x3b, 0x5a, 0x93, 0xee, 0x0a, 0x8f, 0x5d, 0xed, 0x10, 0x6b, 0x52, 0x2f, 0x3b, 0x28, + 0x34, 0xd2, 0x3d, 0x97, 0x86, 0x9e, 0x54, 0x67, 0x8e, 0x6f, 0x0f, 0x12, 0xa8, 0xcc, 0x2c, 0x8e, + 0xae, 0xd2, 0x3b, 0x29, 0xc8, 0x00, 0xb1, 0x6a, 0xad, 0xbb, 0x43, 0xe7, 0x65, 0x08, 0x91, 0x07, + 0xb1, 0x5a, 0xc1, 0xd8, 0x0e, 0x3a, 0x3e, 0x27, 0x6d, 0x9f, 0xe0, 0x88, 0x99, 0xeb, 0xa3, 0xf3, + 0x40, 0x6b, 0x10, 0x8c, 0x9f, 0x26, 0x7e, 0xd6, 0x62, 0xd0, 0x3f, 0xc8, 0xd0, 0x4f, 0x61, 0x21, + 0x59, 0x97, 0xcd, 0xf0, 0xcf, 0x3a, 0x58, 0x4a, 0xcf, 0x0d, 0x19, 0xe3, 0x61, 0x5e, 0x8c, 0x84, + 0xeb, 0x89, 0xf6, 0xb2, 0x10, 0xed, 0x1d, 0x62, 0xe8, 0x63, 0x40, 0x19, 0x79, 0xab, 0x5e, 0xb5, + 0xcc, 0xbc, 0x37, 0xfa, 0x15, 0xbb, 0xdd, 0x6c, 0x46, 0xb8, 0xe9, 0x70, 0x9c, 0x4a, 0x5c, 0xf5, + 0x0e, 0x55, 0x17, 0xc5, 0x9a, 0x67, 0x3d, 0xe3, 0x0c, 0x1d, 0xc1, 0x0d, 0xbd, 0x65, 0x71, 0x9c, + 0xd2, 0xe8, 0x4b, 0xa9, 0xb6, 0x4a, 0x43, 0xcf, 0x05, 0x99, 0x27, 0x86, 0x1a, 0xb0, 0xd8, 0x8c, + 0x1c, 0x51, 0xa3, 0x3a, 0xbc, 0x45, 0x23, 0xf2, 0x73, 0x47, 0x49, 0xff, 0x4d, 0x09, 0xfb, 0x24, + 0xb7, 0x42, 0x74, 0x7c, 0xff, 0x7d, 0xe1, 0xbb, 0xdd, 0xe5, 0x6a, 0x2d, 0x34, 0xfb, 0x07, 0xd1, + 0x31, 0xcc, 0x39, 0x12, 0xc7, 0x96, 0xb3, 0xcc, 0x7c, 0x6d, 0xb4, 0xf2, 0x17, 0x01, 0xb6, 0xe5, + 0x9c, 0x0c, 0x63, 0xcd, 0x3a, 0xe9, 0x03, 0x43, 0x1f, 0xc1, 0x82, 0xba, 0x1e, 0x01, 0x09, 0xed, + 0x90, 0xaa, 0x3c, 0x63, 0xe6, 0xeb, 0xe3, 0x7c, 0x10, 0x86, 0x34, 0x78, 0x4a, 0xc2, 0x67, 0xda, + 0x49, 0x7c, 0x10, 0x76, 0x8f, 0xb0, 0xd2, 0x21, 0xcc, 0xf7, 0x9d, 0x3e, 0x5a, 0x81, 0x42, 0x9c, + 0x3f, 0xf2, 0x8b, 0xf8, 0xaa, 0x95, 0x3c, 0xa3, 0x55, 0x98, 0x4e, 0xae, 0xbf, 0x79, 0x65, 0xc3, + 0x28, 0x4f, 0x5b, 0x85, 0x40, 0x5f, 0xf0, 0xd2, 0x27, 0x06, 0xdc, 0x19, 0x5a, 0xd0, 0x91, 0x09, + 0xd7, 0xf5, 0x31, 0x4b, 0xd4, 0x69, 0x2b, 0x7e, 0x44, 0x07, 0x50, 0x48, 0x34, 0xc3, 0x15, 0x29, + 0x50, 0x2a, 0x63, 0xd6, 0xec, 0x58, 0x2c, 0x5c, 0xe7, 0x4a, 0x1a, 0x94, 0xfe, 0x62, 0xc0, 0xfa, + 0x88, 0x9a, 0x8e, 0xbe, 0x09, 0xcb, 0x5a, 0x30, 0x30, 0xee, 0x44, 0x42, 0xaf, 0x04, 0x98, 0x71, + 0x27, 0x68, 0x4b, 0x5e, 0x93, 0xd6, 0xa2, 0x9a, 0x3d, 0x11, 0x93, 0xb5, 0x78, 0x0e, 0x1d, 0xc3, + 0x8d, 0xee, 0xe4, 0xd7, 0x5f, 0xf9, 0xb9, 0xef, 0xa9, 0xed, 0xae, 0x7c, 0x9f, 0xeb, 0x4a, 0xf3, + 0x52, 0x03, 0xe6, 0xba, 0xe6, 0x73, 0x76, 0xe8, 0x5d, 0x98, 0x4a, 0x82, 0x1a, 0xe5, 0xe9, 0xea, + 0xa6, 0x78, 0xe3, 0xfd, 0xf3, 0xeb, 0xf5, 0x55, 0x97, 0xb2, 0x80, 0x32, 0xe6, 0x9d, 0x56, 0x08, + 0xdd, 0x0a, 0x1c, 0xde, 0xaa, 0x1c, 0xe2, 0xa6, 0xe3, 0x9e, 0xef, 0x62, 0xd7, 0xd2, 0x2e, 0xa5, + 0x5f, 0x40, 0x69, 0x8c, 0x6a, 0x9a, 0x1b, 0x5c, 0x57, 0xfa, 0x8b, 0x04, 0x57, 0x2e, 0xa5, 0xbf, + 0x1b, 0xf0, 0x60, 0xec, 0xea, 0x8f, 0xbe, 0x0b, 0xab, 0x59, 0xf9, 0x33, 0xf8, 0x7c, 0xcc, 0x28, + 0x91, 0x2f, 0x3d, 0x67, 0x84, 0xd3, 0x33, 0x4a, 0x18, 0xff, 0x2f, 0x24, 0x77, 0x7c, 0x70, 0xea, + 0xb1, 0xf4, 0x07, 0x03, 0xe6, 0xba, 0xba, 0x22, 0xdd, 0xd7, 0xc2, 0xe8, 0xbe, 0x16, 0x68, 0x0d, + 0xa6, 0x09, 0xab, 0x76, 0xce, 0x4f, 0x88, 0xa7, 0xce, 0xaf, 0x60, 0xa5, 0x03, 0xa8, 0x0a, 0x53, + 0xf2, 0x6d, 0x1b, 0x37, 0x79, 0xfe, 0x7f, 0x54, 0x2f, 0xe6, 0x90, 0x04, 0x44, 0x85, 0xb6, 0xb4, + 0xe7, 0x3b, 0x85, 0x4f, 0xbf, 0x58, 0x9f, 0xf8, 0xf7, 0x17, 0xeb, 0x13, 0xa5, 0x3f, 0x19, 0xb0, + 0x30, 0xa0, 0x4a, 0xfd, 0x37, 0x04, 0x7f, 0xd0, 0x43, 0xf0, 0xcd, 0xf1, 0x3e, 0x69, 0x73, 0x69, + 0xfe, 0x6d, 0x12, 0x8a, 0xf9, 0x75, 0x35, 0x9f, 0xf1, 0x87, 0x70, 0xcb, 0x17, 0xf8, 0x76, 0xbd, + 0x73, 0x6e, 0x6b, 0x76, 0x57, 0x2e, 0xc9, 0xee, 0x86, 0x44, 0xaa, 0x76, 0xce, 0xe5, 0x23, 0x43, + 0x3f, 0x81, 0x79, 0x1d, 0x38, 0x03, 0xae, 0x96, 0xfe, 0xe8, 0x22, 0x5f, 0xf3, 0x0a, 0xfd, 0xa6, + 0xc2, 0x4a, 0xe1, 0x3f, 0x82, 0x79, 0x45, 0x9d, 0x61, 0xdf, 0x8f, 0xe1, 0xaf, 0x5e, 0x92, 0xfb, + 0x4d, 0x09, 0x75, 0x82, 0x7d, 0x5f, 0xa3, 0xdb, 0x80, 0x92, 0xa6, 0x44, 0x0a, 0x7f, 0xed, 0xb2, + 0xec, 0x6f, 0x05, 0xba, 0xe5, 0x10, 0x07, 0xc8, 0x9c, 0xe1, 0xe7, 0x06, 0x5c, 0xd7, 0xfd, 0x35, + 0xb4, 0x09, 0x73, 0x19, 0x71, 0x90, 0x1c, 0xd8, 0x6c, 0x3a, 0x78, 0xe0, 0xa1, 0x45, 0xb8, 0x26, + 0x2b, 0x90, 0xae, 0x1b, 0xea, 0x01, 0x7d, 0x1f, 0x0a, 0x1e, 0x96, 0x5d, 0x34, 0xb1, 0xcb, 0xc6, + 0xa8, 0x8e, 0xde, 0xae, 0xb2, 0xb5, 0x12, 0xa7, 0x0c, 0xa3, 0x3f, 0x1a, 0x80, 0xfa, 0x3b, 0x75, + 0xe3, 0x91, 0xcb, 0x2b, 0x6c, 0xe8, 0x3d, 0x28, 0xc4, 0x7d, 0x3e, 0xcd, 0xf1, 0xb5, 0xdc, 0x26, + 0x93, 0xb6, 0xb5, 0x12, 0xaf, 0x0c, 0xc9, 0xbf, 0x1a, 0x70, 0xb3, 0xa7, 0xd9, 0x37, 0x1e, 0x43, + 0x1f, 0x96, 0x07, 0xf7, 0x17, 0x75, 0xcd, 0x7c, 0x73, 0xbc, 0xf6, 0x62, 0xda, 0x47, 0xd4, 0xba, + 0x79, 0x71, 0x50, 0x8f, 0x31, 0x43, 0xf8, 0xb7, 0x06, 0xac, 0xe5, 0x35, 0x0a, 0xf3, 0x6f, 0x6a, + 0x0d, 0x66, 0xb2, 0x7d, 0x41, 0x45, 0xf5, 0xc9, 0x25, 0x9a, 0x92, 0x16, 0x04, 0xc9, 0xef, 0xd2, + 0xa7, 0x06, 0xac, 0xe6, 0xb4, 0xf2, 0xf2, 0x29, 0x1d, 0xc2, 0x75, 0xdd, 0x37, 0xd4, 0x74, 0x1e, + 0x5f, 0xbc, 0x63, 0x68, 0xc5, 0x10, 0xa5, 0x5f, 0x5f, 0x81, 0xdb, 0x43, 0x34, 0xa2, 0xa8, 0xa9, + 0x52, 0x07, 0xe2, 0x28, 0xae, 0xa9, 0xfa, 0x11, 0xfd, 0x08, 0x10, 0xa7, 0xdc, 0xf1, 0x6d, 0x2d, + 0x4b, 0x03, 0x59, 0x78, 0x55, 0x7d, 0xbd, 0xab, 0xeb, 0xeb, 0x52, 0x7f, 0x7d, 0x3d, 0x08, 0xb9, + 0x75, 0x4b, 0x3a, 0xaa, 0x70, 0xd2, 0x0d, 0x6d, 0xc3, 0x5d, 0xdf, 0x61, 0xdc, 0xf6, 0xb0, 0x2f, + 0x84, 0xb6, 0xfc, 0x08, 0x74, 0x5b, 0xd8, 0x3d, 0x15, 0xdf, 0x65, 0x24, 0xc0, 0x32, 0x67, 0x27, + 0xad, 0x15, 0x61, 0xb4, 0x9b, 0xda, 0xec, 0x28, 0x13, 0x51, 0x3e, 0xd1, 0x3e, 0x4c, 0x69, 0xc5, + 0x7a, 0x75, 0x74, 0x83, 0xa1, 0x7f, 0xa9, 0x96, 0xf6, 0x2e, 0x3d, 0x87, 0x9b, 0x3d, 0x7a, 0x36, + 0xdd, 0x04, 0xdc, 0xbd, 0x09, 0x18, 0xfd, 0x10, 0x66, 0xb3, 0x6a, 0x59, 0x9f, 0xc6, 0xff, 0xe5, + 0x0b, 0xaa, 0x54, 0x28, 0xcf, 0x64, 0x84, 0x72, 0xb5, 0xf5, 0xe5, 0xcb, 0xa2, 0xf1, 0xd5, 0xcb, + 0xa2, 0xf1, 0xaf, 0x97, 0x45, 0xe3, 0x37, 0xaf, 0x8a, 0x13, 0x5f, 0xbd, 0x2a, 0x4e, 0xfc, 0xe3, + 0x55, 0x71, 0xe2, 0xc3, 0x67, 0x4d, 0xc2, 0x5b, 0x9d, 0x7a, 0xc5, 0xa5, 0xc1, 0xd6, 0x41, 0x8c, + 0x7c, 0xe8, 0xd4, 0xd9, 0x56, 0x12, 0xe7, 0xa1, 0x4b, 0x23, 0x9c, 0x7d, 0x6c, 0x39, 0x24, 0xdc, + 0x0a, 0xa8, 0xf8, 0x5a, 0x65, 0xe9, 0x1f, 0x4c, 0xfc, 0xbc, 0x8d, 0x59, 0x7d, 0x4a, 0xfe, 0x8d, + 0xf4, 0xe4, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6c, 0xa3, 0xd9, 0x61, 0xf4, 0x1a, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -1323,6 +1333,22 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.DenomMinNotionals) > 0 { + for iNdEx := len(m.DenomMinNotionals) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomMinNotionals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xaa + } + } if len(m.ActiveGrants) > 0 { for iNdEx := len(m.ActiveGrants) - 1; iNdEx >= 0; iNdEx-- { { @@ -2811,6 +2837,12 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.DenomMinNotionals) > 0 { + for _, e := range m.DenomMinNotionals { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -4340,6 +4372,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 37: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionals", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomMinNotionals = append(m.DenomMinNotionals, &DenomMinNotional{}) + if err := m.DenomMinNotionals[len(m.DenomMinNotionals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/exchange/types/key.go b/chain/exchange/types/key.go index c4023835..227dc8e0 100644 --- a/chain/exchange/types/key.go +++ b/chain/exchange/types/key.go @@ -40,6 +40,7 @@ var ( MarketVolumePrefix = []byte{0x0c} // prefix for each key to the aggregate volume for a market ParamsKey = []byte{0x0d} // prefix for module params SubaccountCidPrefix = []byte{0x0e} // prefix for each + DenomMinNotionalPrefix = []byte{0x0f} // prefix for each denom min notional DenomDecimalsPrefix = []byte{0x10} // prefix for denom decimals SpotMarketsPrefix = []byte{0x11} // prefix for each key to a spot market by (isEnabled, marketID) @@ -116,6 +117,8 @@ var ( TotalGrantAmountPrefix = []byte{0x81} // prefix to store the total granted amount by granter LastGranterDelegationCheckTimePrefix = []byte{0x82} // prefix to store the last timestamp that the granter's delegations were checked ActiveGrantPrefix = []byte{0x83} // prefix to store the grantee's active grant + + MarketBalanceKey = []byte{0x84} // key for each key to a MarketBalance ) func GetSubaccountCidKey(subaccountID common.Hash, cid string) []byte { @@ -552,3 +555,7 @@ func GetActiveGrantKey(grantee sdk.AccAddress) []byte { func GetLastValidGrantDelegationCheckTimeKey(granter sdk.AccAddress) []byte { return append(LastGranterDelegationCheckTimePrefix, granter.Bytes()...) } + +func GetDerivativeMarketBalanceKey(marketID common.Hash) []byte { + return append(MarketBalanceKey, marketID.Bytes()...) +} diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index a4c9fb8d..95db8e62 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -35,6 +35,7 @@ const ( ProposalTypeBinaryOptionsMarketLaunch string = "ProposalTypeBinaryOptionsMarketLaunch" ProposalTypeBinaryOptionsMarketParamUpdate string = "ProposalTypeBinaryOptionsMarketParamUpdate" ProposalAtomicMarketOrderFeeMultiplierSchedule string = "ProposalAtomicMarketOrderFeeMultiplierSchedule" + ProposalDenomMinNotional string = "ProposalDenomMinNotional" ) func init() { @@ -55,6 +56,7 @@ func init() { govtypes.RegisterProposalType(ProposalTypeBinaryOptionsMarketLaunch) govtypes.RegisterProposalType(ProposalTypeBinaryOptionsMarketParamUpdate) govtypes.RegisterProposalType(ProposalAtomicMarketOrderFeeMultiplierSchedule) + govtypes.RegisterProposalType(ProposalDenomMinNotional) } func SafeIsPositiveInt(v math.Int) bool { @@ -210,6 +212,11 @@ func (p *BatchExchangeModificationProposal) ValidateBasic() error { } } + if p.DenomMinNotionalProposal != nil { + if err := p.DenomMinNotionalProposal.ValidateBasic(); err != nil { + return err + } + } return govtypes.ValidateAbstract(p) } @@ -1766,3 +1773,40 @@ func (p *AtomicMarketOrderFeeMultiplierScheduleProposal) ValidateBasic() error { } return govtypes.ValidateAbstract(p) } + +// Implements Proposal Interface +var _ govtypes.Content = &DenomMinNotionalProposal{} + +// GetTitle returns the title of this proposal +func (p *DenomMinNotionalProposal) GetTitle() string { + return p.Title +} + +// GetDescription returns the description of this proposal +func (p *DenomMinNotionalProposal) GetDescription() string { + return p.Description +} + +// ProposalRoute returns router key of this proposal. +func (p *DenomMinNotionalProposal) ProposalRoute() string { return RouterKey } + +// ProposalType returns proposal type of this proposal. +func (p *DenomMinNotionalProposal) ProposalType() string { + return ProposalDenomMinNotional +} + +func (p *DenomMinNotionalProposal) ValidateBasic() error { + for _, minNotional := range p.DenomMinNotionals { + denom := minNotional.Denom + amount := minNotional.MinNotional + + if denom == "" { + return fmt.Errorf("denom cannot be empty") + } + + if amount.IsNil() || amount.IsNegative() { + return fmt.Errorf("min notional must be positive") + } + } + return govtypes.ValidateAbstract(p) +} diff --git a/chain/exchange/types/proposal.pb.go b/chain/exchange/types/proposal.pb.go index ad50518d..c738222b 100644 --- a/chain/exchange/types/proposal.pb.go +++ b/chain/exchange/types/proposal.pb.go @@ -173,6 +173,7 @@ type BatchExchangeModificationProposal struct { DenomDecimalsUpdateProposal *UpdateDenomDecimalsProposal `protobuf:"bytes,11,opt,name=denom_decimals_update_proposal,json=denomDecimalsUpdateProposal,proto3" json:"denom_decimals_update_proposal,omitempty"` FeeDiscountProposal *FeeDiscountProposal `protobuf:"bytes,12,opt,name=fee_discount_proposal,json=feeDiscountProposal,proto3" json:"fee_discount_proposal,omitempty"` MarketForcedSettlementProposals []*MarketForcedSettlementProposal `protobuf:"bytes,13,rep,name=market_forced_settlement_proposals,json=marketForcedSettlementProposals,proto3" json:"market_forced_settlement_proposals,omitempty"` + DenomMinNotionalProposal *DenomMinNotionalProposal `protobuf:"bytes,14,opt,name=denom_min_notional_proposal,json=denomMinNotionalProposal,proto3" json:"denom_min_notional_proposal,omitempty"` } func (m *BatchExchangeModificationProposal) Reset() { *m = BatchExchangeModificationProposal{} } @@ -1199,6 +1200,45 @@ func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) XXX_DiscardUnknown() { var xxx_messageInfo_AtomicMarketOrderFeeMultiplierScheduleProposal proto.InternalMessageInfo +type DenomMinNotionalProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + DenomMinNotionals []*DenomMinNotional `protobuf:"bytes,3,rep,name=denom_min_notionals,json=denomMinNotionals,proto3" json:"denom_min_notionals,omitempty"` +} + +func (m *DenomMinNotionalProposal) Reset() { *m = DenomMinNotionalProposal{} } +func (m *DenomMinNotionalProposal) String() string { return proto.CompactTextString(m) } +func (*DenomMinNotionalProposal) ProtoMessage() {} +func (*DenomMinNotionalProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_32e9ec9b6b22477c, []int{21} +} +func (m *DenomMinNotionalProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DenomMinNotionalProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DenomMinNotionalProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DenomMinNotionalProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_DenomMinNotionalProposal.Merge(m, src) +} +func (m *DenomMinNotionalProposal) XXX_Size() int { + return m.Size() +} +func (m *DenomMinNotionalProposal) XXX_DiscardUnknown() { + xxx_messageInfo_DenomMinNotionalProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_DenomMinNotionalProposal proto.InternalMessageInfo + func init() { proto.RegisterEnum("injective.exchange.v1beta1.ExchangeType", ExchangeType_name, ExchangeType_value) proto.RegisterType((*SpotMarketParamUpdateProposal)(nil), "injective.exchange.v1beta1.SpotMarketParamUpdateProposal") @@ -1222,6 +1262,7 @@ func init() { proto.RegisterType((*FeeDiscountProposal)(nil), "injective.exchange.v1beta1.FeeDiscountProposal") proto.RegisterType((*BatchCommunityPoolSpendProposal)(nil), "injective.exchange.v1beta1.BatchCommunityPoolSpendProposal") proto.RegisterType((*AtomicMarketOrderFeeMultiplierScheduleProposal)(nil), "injective.exchange.v1beta1.AtomicMarketOrderFeeMultiplierScheduleProposal") + proto.RegisterType((*DenomMinNotionalProposal)(nil), "injective.exchange.v1beta1.DenomMinNotionalProposal") } func init() { @@ -1229,163 +1270,167 @@ func init() { } var fileDescriptor_32e9ec9b6b22477c = []byte{ - // 2486 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x1c, 0x49, - 0x19, 0x77, 0xdb, 0x8e, 0xed, 0xa9, 0x99, 0xf1, 0xa3, 0xed, 0x35, 0xb3, 0x4e, 0xe2, 0xc7, 0x38, - 0x0f, 0x6f, 0xd8, 0xcc, 0x90, 0xb0, 0x28, 0x62, 0x24, 0x04, 0x7e, 0xee, 0x5a, 0x24, 0xce, 0xa4, - 0xc7, 0xde, 0x5d, 0x45, 0xa0, 0x56, 0x4d, 0x77, 0xd9, 0x2e, 0x32, 0xfd, 0x48, 0x57, 0x8d, 0x13, - 0xaf, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x2c, 0xe2, 0x10, 0xb1, 0x27, 0xce, 0x48, 0xf0, - 0x0f, 0xc0, 0x01, 0x2d, 0x88, 0xc3, 0xde, 0x40, 0x1c, 0x56, 0x28, 0x11, 0x82, 0xbf, 0x00, 0x71, - 0xe0, 0x80, 0xea, 0xd1, 0x3d, 0x3d, 0x33, 0x3d, 0x3d, 0x3d, 0xe3, 0xb1, 0xf6, 0x40, 0x2e, 0xc9, - 0xf4, 0x57, 0x5f, 0xfd, 0xea, 0xab, 0xaf, 0xea, 0xfb, 0xea, 0x57, 0x0f, 0x83, 0x37, 0xb0, 0xfd, - 0x1d, 0x64, 0x50, 0x7c, 0x82, 0x8a, 0xe8, 0xa9, 0x71, 0x0c, 0xed, 0x23, 0x54, 0x3c, 0xb9, 0x55, - 0x45, 0x14, 0xde, 0x2a, 0xba, 0x9e, 0xe3, 0x3a, 0x04, 0xd6, 0x0a, 0xae, 0xe7, 0x50, 0x47, 0x5d, - 0x08, 0x54, 0x0b, 0xbe, 0x6a, 0x41, 0xaa, 0x2e, 0x2c, 0x1a, 0x0e, 0xb1, 0x1c, 0x52, 0xac, 0x42, - 0xd2, 0xa8, 0x6f, 0x38, 0xd8, 0x16, 0x75, 0x17, 0x0a, 0xb2, 0xdc, 0xc4, 0x84, 0x7a, 0xb8, 0x5a, - 0xa7, 0xd8, 0xb1, 0x03, 0xbd, 0xb0, 0x50, 0xea, 0x7f, 0x41, 0xea, 0x5b, 0xe4, 0xa8, 0x78, 0x72, - 0x8b, 0xfd, 0x27, 0x0b, 0x5e, 0x17, 0x05, 0x3a, 0xff, 0x2a, 0x8a, 0x0f, 0x59, 0x34, 0x77, 0xe4, - 0x1c, 0x39, 0x42, 0xce, 0x7e, 0x49, 0x69, 0x5c, 0x07, 0x83, 0x6e, 0x08, 0xd5, 0xab, 0x0d, 0x55, - 0xc7, 0x83, 0x46, 0xad, 0xa1, 0x28, 0x3e, 0xa5, 0xda, 0x0c, 0xb4, 0xb0, 0xed, 0x14, 0xf9, 0xbf, - 0x42, 0x94, 0xff, 0xe5, 0x38, 0xb8, 0x5c, 0x71, 0x1d, 0x7a, 0x0f, 0x7a, 0x8f, 0x10, 0x2d, 0x43, - 0x0f, 0x5a, 0x07, 0xae, 0x09, 0x29, 0x2a, 0x4b, 0x17, 0xaa, 0x73, 0xe0, 0x02, 0xc5, 0xb4, 0x86, - 0x72, 0xca, 0xb2, 0xb2, 0x96, 0xd2, 0xc4, 0x87, 0xba, 0x0c, 0xd2, 0x26, 0x22, 0x86, 0x87, 0x5d, - 0xd6, 0xf7, 0xdc, 0x30, 0x2f, 0x0b, 0x8b, 0xd4, 0x8b, 0x20, 0x65, 0x71, 0x50, 0x1d, 0x9b, 0xb9, - 0x11, 0x5e, 0x3e, 0x21, 0x04, 0xbb, 0xa6, 0xba, 0x0b, 0x26, 0x2d, 0xf8, 0x08, 0x79, 0xfa, 0x21, - 0x42, 0xba, 0x07, 0x29, 0xca, 0x8d, 0x32, 0x8d, 0x8d, 0xd5, 0x4f, 0x3e, 0x5b, 0x52, 0xfe, 0xf6, - 0xd9, 0xd2, 0x45, 0xe1, 0x1f, 0x62, 0x3e, 0x2a, 0x60, 0xa7, 0x68, 0x41, 0x7a, 0x5c, 0xb8, 0x8b, - 0x8e, 0xa0, 0x71, 0xba, 0x85, 0x0c, 0x2d, 0xc3, 0xab, 0xee, 0x20, 0xa4, 0x41, 0x8a, 0x18, 0x14, - 0x6d, 0x86, 0xba, 0xd0, 0x03, 0x14, 0x0d, 0x43, 0xbd, 0x0f, 0xe6, 0x3d, 0x54, 0x83, 0xa7, 0x12, - 0x8c, 0x1c, 0x43, 0x4f, 0x42, 0x8e, 0x25, 0x87, 0x9c, 0x95, 0x10, 0x3b, 0x08, 0x55, 0x18, 0x00, - 0x47, 0xd6, 0xc0, 0xac, 0x85, 0x6d, 0xdd, 0xf5, 0xb0, 0x81, 0x74, 0x8a, 0x8d, 0x47, 0x3a, 0xc1, - 0x1f, 0xa0, 0xdc, 0x78, 0x72, 0xd8, 0x69, 0x0b, 0xdb, 0x65, 0x56, 0x7d, 0x1f, 0x1b, 0x8f, 0x2a, - 0xf8, 0x03, 0x6e, 0x2d, 0xc3, 0x7c, 0x5c, 0x87, 0x36, 0xc5, 0xf4, 0x34, 0x04, 0x3b, 0xd1, 0x83, - 0xb5, 0x16, 0xb6, 0x1f, 0x48, 0x84, 0x00, 0xf9, 0x1b, 0x60, 0x8c, 0x50, 0x48, 0xeb, 0x24, 0x97, - 0x5a, 0x56, 0xd6, 0x26, 0x6f, 0xaf, 0x15, 0x3a, 0x07, 0x50, 0x41, 0xcc, 0x9c, 0x0a, 0xd7, 0xd7, - 0x64, 0x3d, 0xf5, 0x12, 0x18, 0x63, 0xe6, 0x20, 0x2f, 0x07, 0xb8, 0x2d, 0xa3, 0xcc, 0x16, 0x4d, - 0xca, 0xd4, 0x1d, 0x90, 0x61, 0x96, 0xdb, 0x0e, 0x9b, 0x28, 0xb0, 0x96, 0x4b, 0x27, 0xb7, 0x37, - 0x6d, 0x61, 0x7b, 0x4f, 0xd6, 0x53, 0xb7, 0x00, 0x80, 0x26, 0x43, 0xc2, 0xf6, 0xa1, 0x93, 0xcb, - 0x2c, 0x2b, 0x6b, 0xe9, 0xdb, 0x57, 0xe3, 0x6c, 0x5d, 0x67, 0xda, 0xbb, 0xf6, 0xa1, 0xa3, 0xa5, - 0xa0, 0xff, 0x53, 0x5d, 0x05, 0x59, 0x16, 0xfc, 0xba, 0x89, 0x0c, 0x6c, 0xc1, 0x1a, 0xc9, 0x65, - 0x97, 0x95, 0xb5, 0xac, 0x96, 0x61, 0xc2, 0x2d, 0x29, 0x53, 0xaf, 0x82, 0xc9, 0xc7, 0x75, 0x87, - 0x86, 0xb4, 0x26, 0xb9, 0x56, 0x96, 0x4b, 0x7d, 0xb5, 0xd2, 0x83, 0x1f, 0x7e, 0xbc, 0x34, 0xf4, - 0xaf, 0x8f, 0x97, 0x86, 0xfe, 0xf4, 0xdb, 0x9b, 0x0b, 0x32, 0xc6, 0x8f, 0x9c, 0x93, 0xc0, 0x80, - 0x4d, 0xc7, 0xa6, 0xc8, 0xa6, 0xcf, 0xfe, 0xf9, 0xeb, 0x1b, 0xd7, 0x82, 0xa0, 0x8e, 0x8d, 0xbf, - 0xfc, 0x9f, 0x15, 0x30, 0xbf, 0x2d, 0x55, 0xb7, 0x6d, 0x58, 0xad, 0x9d, 0x3d, 0x34, 0xef, 0x82, - 0x8c, 0xdf, 0xf8, 0xfe, 0xa9, 0x8b, 0x78, 0x74, 0x76, 0x19, 0xe5, 0xed, 0x90, 0xbe, 0xd6, 0x54, - 0xbb, 0xf4, 0xa6, 0xdf, 0x67, 0xd6, 0xab, 0xa5, 0xa0, 0x57, 0xd1, 0x36, 0xe7, 0x3f, 0xca, 0x82, - 0x95, 0x0d, 0x48, 0x8d, 0x63, 0xbf, 0xfc, 0x9e, 0x63, 0xe2, 0x43, 0x6c, 0x40, 0x66, 0xd9, 0x99, - 0x7b, 0xf6, 0xa1, 0x02, 0xf2, 0xc4, 0x75, 0xa8, 0x2e, 0x53, 0x8f, 0xcb, 0x1c, 0xaa, 0xd7, 0xb9, - 0x47, 0x75, 0x7f, 0x55, 0x20, 0xb9, 0x91, 0xe5, 0x91, 0xb5, 0xf4, 0xed, 0xaf, 0xc6, 0x75, 0x38, - 0x76, 0x50, 0xb4, 0x45, 0x12, 0x57, 0x4c, 0xd4, 0x9f, 0x2b, 0x60, 0xcd, 0x44, 0x1e, 0x3e, 0x81, - 0x0c, 0xbd, 0x8b, 0x35, 0xa3, 0xdc, 0x9a, 0xaf, 0xc7, 0x59, 0xb3, 0x15, 0x60, 0x75, 0xb6, 0xe9, - 0x8a, 0xd9, 0x5d, 0x89, 0xa8, 0x75, 0x70, 0x29, 0xec, 0xa0, 0x1a, 0xac, 0xdb, 0xc6, 0x71, 0xc8, - 0x98, 0x0b, 0xdc, 0x98, 0xb7, 0x92, 0xb9, 0xe6, 0x2e, 0xaf, 0x1d, 0x58, 0xf0, 0x3a, 0xe9, 0x50, - 0x42, 0xd4, 0xef, 0x2b, 0x60, 0xc5, 0x45, 0x9e, 0x8b, 0x68, 0x1d, 0xd6, 0x3a, 0x36, 0x3e, 0xd6, - 0x7d, 0x5c, 0xca, 0x3e, 0x48, 0xa4, 0x05, 0x8b, 0x6e, 0x5c, 0x31, 0x51, 0x7f, 0xac, 0x80, 0x6b, - 0xe8, 0xa9, 0x8b, 0xbd, 0x53, 0xfd, 0xb0, 0x4e, 0xeb, 0x1e, 0x22, 0x1d, 0x6d, 0x19, 0xe7, 0xb6, - 0x7c, 0x2d, 0x3e, 0x28, 0x18, 0xd2, 0x8e, 0x00, 0x8a, 0xb4, 0x27, 0x8f, 0xba, 0xa9, 0x10, 0xf5, - 0x67, 0x0a, 0xb8, 0x4e, 0x3d, 0x68, 0x62, 0xfb, 0x48, 0xf7, 0xd0, 0x13, 0xe8, 0x99, 0xba, 0x01, - 0x2d, 0x17, 0xe2, 0x23, 0xbb, 0x75, 0xae, 0xf0, 0xcc, 0xde, 0x65, 0xaa, 0xec, 0x0b, 0x28, 0x8d, - 0x23, 0x6d, 0x4a, 0xa0, 0x96, 0xa9, 0xb2, 0x4a, 0xbb, 0x2b, 0x71, 0x5f, 0x55, 0xb1, 0x0d, 0xbd, - 0x53, 0xdd, 0xe1, 0xd1, 0xd5, 0xd9, 0x57, 0xa9, 0xee, 0xbe, 0xda, 0xe0, 0x48, 0xf7, 0x05, 0x50, - 0xb4, 0xaf, 0xaa, 0xdd, 0x54, 0x88, 0xfa, 0x53, 0x05, 0x5c, 0x6d, 0xb1, 0xa9, 0x43, 0x50, 0x01, - 0x6e, 0xd2, 0x46, 0x8f, 0x26, 0x45, 0xc5, 0xd5, 0x4a, 0x93, 0x5d, 0x91, 0x41, 0xf5, 0x5d, 0xb0, - 0x68, 0x22, 0xdb, 0xb1, 0x82, 0xd5, 0xa1, 0x6d, 0xe0, 0xd2, 0x7c, 0xe0, 0xee, 0xc4, 0x99, 0x23, - 0x40, 0xb7, 0x18, 0x8e, 0xbf, 0x9e, 0x04, 0x36, 0x5c, 0x34, 0xc3, 0xe2, 0x96, 0x81, 0x32, 0xc0, - 0x6b, 0x8c, 0xae, 0x98, 0x98, 0x18, 0x4e, 0xdd, 0xa6, 0x8d, 0x46, 0xc5, 0x8a, 0x58, 0x8c, 0x6b, - 0x74, 0x07, 0xa1, 0x2d, 0x59, 0x2f, 0x68, 0x6c, 0xf6, 0xb0, 0x5d, 0xa8, 0xfe, 0x40, 0x01, 0x79, - 0x39, 0xfc, 0x87, 0x8e, 0x67, 0x20, 0x53, 0x27, 0x88, 0xd2, 0x1a, 0xb2, 0x50, 0xa8, 0x45, 0xb6, - 0x76, 0x32, 0xb7, 0x97, 0xba, 0x13, 0x86, 0x1d, 0x0e, 0x52, 0x09, 0x30, 0x82, 0xd6, 0x97, 0xac, - 0xd8, 0x72, 0x52, 0x3a, 0x48, 0xbe, 0xc6, 0xde, 0x08, 0x56, 0xa3, 0xae, 0x4b, 0x4e, 0xfe, 0xa3, - 0x31, 0x90, 0xeb, 0x94, 0xd9, 0xfa, 0x5e, 0x8f, 0xe6, 0x03, 0x1e, 0x24, 0x18, 0xb0, 0xcf, 0x80, - 0x2e, 0x03, 0x20, 0x39, 0x87, 0xed, 0x58, 0x82, 0xfb, 0x6a, 0x29, 0x41, 0x38, 0x6c, 0xc7, 0x52, - 0x97, 0x40, 0xda, 0x67, 0x1b, 0xac, 0x9c, 0x13, 0x5a, 0x0d, 0x48, 0xaa, 0xc1, 0x14, 0x3a, 0xf0, - 0xc9, 0x06, 0x4d, 0x1d, 0x1a, 0x24, 0x9f, 0x1c, 0x4f, 0x0e, 0x1b, 0xc9, 0x27, 0xdb, 0xd9, 0xfe, - 0xc4, 0xe0, 0xd8, 0x7e, 0xaa, 0x5f, 0xb6, 0xdf, 0xca, 0x42, 0x41, 0xf2, 0x5e, 0xc6, 0xb0, 0xd0, - 0xf4, 0xa0, 0x58, 0xe8, 0x64, 0x22, 0x16, 0x3a, 0x15, 0xc5, 0x42, 0xef, 0x26, 0x8f, 0x90, 0x95, - 0x08, 0x16, 0xda, 0x3c, 0xf7, 0xf3, 0xbf, 0x9a, 0x00, 0x97, 0x63, 0x57, 0xdd, 0x81, 0x47, 0x47, - 0xcb, 0xf4, 0x1f, 0x6d, 0x9b, 0xfe, 0x4b, 0x20, 0x2d, 0x36, 0xb6, 0x3a, 0x73, 0x8f, 0x1f, 0x1f, - 0x42, 0xb4, 0x01, 0x09, 0x52, 0x57, 0x40, 0x46, 0x2a, 0xf0, 0x5a, 0x22, 0x30, 0x34, 0x59, 0xe9, - 0x01, 0x13, 0xa9, 0x05, 0x30, 0x2b, 0x55, 0x88, 0x01, 0x6b, 0x48, 0x3f, 0x84, 0x06, 0x75, 0x3c, - 0x3e, 0xd7, 0xb3, 0xda, 0x8c, 0x28, 0xaa, 0xb0, 0x92, 0x1d, 0x5e, 0xa0, 0x6e, 0x07, 0x6d, 0x52, - 0xc6, 0x99, 0x27, 0x38, 0x67, 0xbe, 0x12, 0x1a, 0x67, 0xb9, 0xd5, 0xf6, 0x9d, 0x7c, 0x9f, 0x7f, - 0x72, 0xbe, 0x2c, 0x2d, 0x63, 0xbf, 0xd5, 0x03, 0x30, 0x87, 0x6d, 0x4c, 0xb1, 0x60, 0x41, 0x47, - 0xd8, 0x66, 0xb3, 0x18, 0x3b, 0xa1, 0x69, 0xdc, 0x75, 0xf6, 0xa9, 0x12, 0xe0, 0x1e, 0xaf, 0xaf, - 0xb1, 0xea, 0xea, 0xb7, 0x41, 0xce, 0x82, 0x98, 0x0d, 0x2b, 0xb4, 0x0d, 0xd4, 0x0c, 0xdd, 0xc3, - 0xc4, 0x9e, 0x0f, 0x81, 0x84, 0xe1, 0xdb, 0x23, 0x38, 0x9d, 0x1c, 0xb4, 0x5b, 0x04, 0x67, 0x7a, - 0x80, 0x6a, 0x8a, 0xe0, 0x0e, 0x59, 0x30, 0x7b, 0x3e, 0x59, 0x70, 0xf2, 0x8c, 0x59, 0xb0, 0x35, - 0xdf, 0x4c, 0x0d, 0x24, 0xdf, 0x4c, 0xf7, 0x97, 0x6f, 0xfa, 0xdb, 0xa9, 0xc6, 0xa6, 0x81, 0xfc, - 0x3f, 0xc6, 0xc1, 0x4a, 0x57, 0x9a, 0x37, 0xf0, 0x64, 0xb1, 0x0a, 0xb2, 0x7e, 0x1c, 0x9f, 0x5a, - 0x55, 0xa7, 0x26, 0xd3, 0x85, 0x8c, 0xff, 0x0a, 0x97, 0xa9, 0xd7, 0xc1, 0x94, 0x54, 0x72, 0x3d, - 0xe7, 0x04, 0x9b, 0xc8, 0x93, 0x49, 0x63, 0x52, 0x88, 0xcb, 0x52, 0xda, 0x1a, 0xe5, 0x63, 0x7d, - 0x46, 0x79, 0xaf, 0xc9, 0xe5, 0x16, 0x98, 0xe3, 0x3b, 0x05, 0x4e, 0x49, 0x74, 0x8a, 0x2d, 0x44, - 0x28, 0xb4, 0x5c, 0x9e, 0x65, 0x46, 0xb4, 0xd9, 0x46, 0xd9, 0xbe, 0x5f, 0xc4, 0xaa, 0x84, 0x18, - 0x58, 0xa3, 0x4a, 0x4a, 0x54, 0x69, 0x94, 0x35, 0xaa, 0xcc, 0x81, 0x0b, 0x7c, 0x02, 0x88, 0x8c, - 0xa0, 0x89, 0x8f, 0xd6, 0x6c, 0x9b, 0x6e, 0xcb, 0xb6, 0xed, 0xc1, 0x9f, 0x19, 0x5c, 0xf0, 0x67, - 0x07, 0x1c, 0xfc, 0x93, 0xe7, 0x13, 0xfc, 0x53, 0x03, 0x0e, 0xfe, 0xe9, 0x3e, 0x83, 0xff, 0x8b, - 0x60, 0x46, 0x04, 0xbf, 0x8b, 0x3c, 0x0b, 0x13, 0xc2, 0xc2, 0x2c, 0x37, 0xc3, 0xa7, 0xd5, 0x34, - 0x2f, 0x28, 0x37, 0xe4, 0x7d, 0x32, 0xe5, 0x6e, 0x11, 0x9c, 0xff, 0xc3, 0x04, 0x58, 0xe9, 0xba, - 0xf5, 0x7d, 0x45, 0x0a, 0x7a, 0x48, 0x17, 0xf3, 0x60, 0x4c, 0x1c, 0x14, 0xc8, 0xe8, 0x95, 0x5f, - 0x1d, 0xc9, 0x02, 0x38, 0x3f, 0xb2, 0x90, 0x3e, 0x0f, 0xb2, 0xf0, 0x2a, 0x5f, 0x7c, 0x5e, 0xf9, - 0xa2, 0x99, 0x2c, 0xcc, 0xf4, 0x49, 0x16, 0xfa, 0x4a, 0x24, 0x5d, 0x53, 0x44, 0xfe, 0x27, 0x00, - 0xac, 0x26, 0x38, 0xd9, 0x3c, 0x9f, 0x2b, 0xa8, 0x4e, 0xb1, 0xd5, 0xc3, 0x45, 0x54, 0xaf, 0xb1, - 0xd5, 0xc3, 0xc5, 0x54, 0xf2, 0xd8, 0x1a, 0x1b, 0xdc, 0x56, 0x7a, 0x7c, 0xf0, 0x17, 0x67, 0x13, - 0xe7, 0x73, 0x71, 0x96, 0x3a, 0x9f, 0x8b, 0x33, 0x70, 0xc6, 0x8b, 0xb3, 0x0a, 0x50, 0xdf, 0x71, - 0xea, 0x5e, 0xed, 0x74, 0xd7, 0xa6, 0xc8, 0x43, 0x84, 0x6a, 0xcd, 0x5b, 0xa5, 0xee, 0x33, 0xaa, - 0xbd, 0xba, 0xfa, 0x1e, 0x98, 0x13, 0xd2, 0x9d, 0xba, 0xcd, 0x0f, 0x6d, 0x21, 0x45, 0x9b, 0xd0, - 0x0d, 0x25, 0xd5, 0xae, 0xb0, 0x91, 0x00, 0xa1, 0x6b, 0xbe, 0x6c, 0x9f, 0xd7, 0x7c, 0xf7, 0x02, - 0xee, 0xcd, 0x4f, 0x61, 0xc5, 0xa1, 0x45, 0x3a, 0x1e, 0x48, 0x2c, 0x81, 0x3c, 0xcc, 0x89, 0xcf, - 0xd2, 0xc5, 0x57, 0xe8, 0xd6, 0x70, 0x2a, 0xc1, 0xad, 0xe1, 0xf4, 0x40, 0x6e, 0x0d, 0xfb, 0x4d, - 0x89, 0xef, 0x25, 0x4f, 0x89, 0x6f, 0x06, 0x29, 0x31, 0x41, 0xb2, 0xcb, 0xef, 0x81, 0x54, 0xd0, - 0x60, 0x83, 0xb1, 0x2b, 0x61, 0xc6, 0x1e, 0x49, 0x02, 0x87, 0xa3, 0x49, 0x60, 0xfe, 0x17, 0xc3, - 0x60, 0x31, 0xfe, 0xc8, 0xf5, 0x7c, 0xf2, 0xeb, 0x1e, 0x98, 0x6e, 0x3a, 0x21, 0xc6, 0x46, 0x4f, - 0x97, 0xfc, 0x53, 0x24, 0x64, 0x27, 0x36, 0x50, 0x49, 0x4b, 0xee, 0xf0, 0xeb, 0x81, 0xc3, 0xe3, - 0x3b, 0x9e, 0xff, 0x8f, 0x02, 0x2e, 0xc6, 0x1c, 0xbb, 0xf7, 0xed, 0x98, 0x32, 0x98, 0x6c, 0xbe, - 0x0f, 0x90, 0x37, 0x8e, 0x6f, 0xc4, 0xdf, 0xf1, 0x85, 0x4c, 0xd0, 0xb2, 0x4d, 0x27, 0xfe, 0xa5, - 0xfb, 0xc9, 0x7b, 0x7f, 0x25, 0xe8, 0x7d, 0x4c, 0xd7, 0xf2, 0xbf, 0x9f, 0x00, 0xd7, 0x92, 0x5d, - 0x80, 0xbc, 0x7a, 0x01, 0xf2, 0xff, 0xf7, 0x02, 0xa4, 0xd3, 0x79, 0x44, 0xaa, 0xf7, 0xf3, 0x08, - 0xd0, 0xf9, 0x3c, 0x22, 0x2a, 0x45, 0xa4, 0xfb, 0x4f, 0x11, 0x8d, 0x6c, 0x99, 0x09, 0x67, 0xcb, - 0xb3, 0x2f, 0x73, 0x07, 0xd1, 0xcb, 0xdc, 0x97, 0x62, 0xef, 0xa9, 0xe5, 0x89, 0xd2, 0xe7, 0xbd, - 0xdc, 0x95, 0x1e, 0x26, 0xcf, 0x1c, 0xc5, 0xb8, 0x43, 0x80, 0xa8, 0xb5, 0xea, 0x77, 0x0a, 0x98, - 0x8b, 0xea, 0x28, 0xdb, 0xd0, 0xca, 0xd3, 0x38, 0x91, 0x33, 0xe4, 0x97, 0xba, 0x00, 0x26, 0x82, - 0x03, 0x38, 0x91, 0x31, 0x82, 0xef, 0x4e, 0x7b, 0xef, 0x91, 0x84, 0x7b, 0xef, 0xd1, 0xfe, 0xf6, - 0xde, 0xf9, 0x3f, 0x2a, 0x20, 0xd3, 0x64, 0x7b, 0xcb, 0x39, 0x82, 0xd2, 0xf5, 0x1c, 0x61, 0x38, - 0xf1, 0x39, 0xc2, 0x79, 0xf7, 0xe5, 0xdf, 0xc3, 0x60, 0x35, 0xf2, 0xfe, 0x7f, 0x40, 0x67, 0x33, - 0x0f, 0x41, 0x36, 0x78, 0x9a, 0xc0, 0xd9, 0xd3, 0x08, 0x0f, 0x84, 0xaf, 0xf4, 0xfc, 0x1e, 0x81, - 0xb3, 0xa9, 0x8c, 0x11, 0xfa, 0x52, 0xab, 0xe0, 0xb5, 0x00, 0x5b, 0x3e, 0x83, 0x70, 0x1d, 0x27, - 0x78, 0x1e, 0x53, 0x88, 0x6b, 0xc3, 0x87, 0x15, 0x8d, 0x94, 0x1d, 0xa7, 0xa6, 0xcd, 0x1a, 0x6d, - 0x32, 0xd2, 0x1f, 0x69, 0x4b, 0xe0, 0xd0, 0xfc, 0x7f, 0x47, 0x3a, 0x38, 0x7e, 0x40, 0x4b, 0xe9, - 0x79, 0x3a, 0xbe, 0x0e, 0x96, 0x22, 0x1d, 0xaf, 0x43, 0xd3, 0xc4, 0x3c, 0x01, 0xf4, 0x39, 0x04, - 0x97, 0x22, 0x86, 0x60, 0xdd, 0xc7, 0x54, 0x1f, 0x83, 0xcb, 0xd1, 0xcd, 0x8a, 0xa7, 0x13, 0xfe, - 0x4b, 0xa4, 0x5e, 0x1b, 0x5d, 0x88, 0x68, 0x54, 0x0c, 0xc2, 0x20, 0x87, 0xbf, 0x25, 0x0f, 0x7e, - 0x4f, 0x01, 0x33, 0x7e, 0x7b, 0xd8, 0xa6, 0xa2, 0x54, 0xbd, 0x0e, 0xa6, 0xa0, 0x21, 0x9e, 0x64, - 0x40, 0xd3, 0xf4, 0x10, 0x21, 0x72, 0xd8, 0x27, 0xa5, 0x78, 0x5d, 0x48, 0xd5, 0x0d, 0x00, 0x6c, - 0xf4, 0x44, 0x77, 0x59, 0x5d, 0xd2, 0xcb, 0x61, 0x59, 0xca, 0x46, 0x4f, 0x78, 0x8b, 0x24, 0xff, - 0x97, 0x61, 0xb0, 0xd6, 0x64, 0x6a, 0x19, 0xf1, 0xcd, 0x9e, 0x28, 0x1e, 0xd0, 0x34, 0x7c, 0x0b, - 0xcc, 0xbb, 0x02, 0x96, 0x8f, 0x55, 0x68, 0x95, 0x1f, 0xe1, 0xab, 0xfc, 0x9c, 0xeb, 0x37, 0xea, - 0xd4, 0x1a, 0xcb, 0xbc, 0x0e, 0xe6, 0x82, 0x01, 0xc6, 0x36, 0x0d, 0x06, 0x58, 0xcc, 0xaa, 0x9b, - 0x71, 0x03, 0xdc, 0xe6, 0x54, 0x4d, 0xf5, 0x5a, 0x45, 0xa4, 0xf4, 0xad, 0xe4, 0xe3, 0x7a, 0x2b, - 0x7a, 0x5c, 0x63, 0x9c, 0x95, 0x7f, 0xa9, 0x80, 0xd9, 0x88, 0x67, 0x32, 0x7d, 0x3b, 0xf1, 0x9b, - 0x60, 0x82, 0x18, 0xc7, 0xc8, 0xac, 0xd7, 0x90, 0x0c, 0xe3, 0xa4, 0x2f, 0x74, 0x2a, 0xb2, 0x9a, - 0x16, 0x00, 0x94, 0xde, 0x4e, 0xde, 0xf5, 0x4b, 0x41, 0xd7, 0x23, 0x7a, 0x93, 0xff, 0x70, 0x18, - 0x2c, 0xf1, 0x47, 0x32, 0x9b, 0x8e, 0x65, 0xd5, 0x6d, 0x4c, 0x4f, 0xd9, 0x20, 0x56, 0xd8, 0x80, - 0x9e, 0xb9, 0xc7, 0x07, 0x20, 0xd5, 0xfa, 0xf6, 0xf2, 0x8e, 0x7c, 0x57, 0x5f, 0x68, 0x7a, 0x42, - 0xdf, 0xb0, 0xba, 0x93, 0x0d, 0x5a, 0x03, 0xa9, 0x54, 0x49, 0xde, 0xf7, 0xb5, 0xe6, 0x87, 0x40, - 0x9d, 0xf1, 0xf3, 0xbf, 0x19, 0x06, 0x85, 0x75, 0xea, 0x58, 0xd8, 0x10, 0xb4, 0xe7, 0xbe, 0x67, - 0x72, 0x26, 0x7f, 0xaf, 0x5e, 0xa3, 0xd8, 0xad, 0x61, 0xe4, 0xf9, 0xa3, 0x70, 0x66, 0xb7, 0x20, - 0x30, 0xef, 0xbf, 0xa8, 0x42, 0x48, 0xb7, 0x82, 0x06, 0x7c, 0x1f, 0x15, 0x13, 0xbc, 0xa2, 0x0a, - 0x1b, 0xa6, 0xcd, 0x59, 0xed, 0x42, 0x52, 0xaa, 0x26, 0x77, 0xd3, 0x9d, 0xc0, 0x4d, 0xbd, 0xb9, - 0xe0, 0xc6, 0x53, 0x90, 0x09, 0xbf, 0x10, 0x56, 0x6f, 0x83, 0xb9, 0xed, 0xf7, 0x37, 0xdf, 0x59, - 0xdf, 0x7b, 0x7b, 0x5b, 0x3f, 0xd8, 0xab, 0x94, 0xb7, 0x37, 0x77, 0x77, 0x76, 0xb7, 0xb7, 0xa6, - 0x87, 0x16, 0x72, 0xcf, 0x9e, 0x2f, 0x47, 0x96, 0xa9, 0x2a, 0x18, 0xad, 0x94, 0xef, 0xef, 0x4f, - 0x2b, 0x0b, 0x13, 0xcf, 0x9e, 0x2f, 0xf3, 0xdf, 0xcc, 0x89, 0x5b, 0xdb, 0xda, 0xee, 0xbb, 0xeb, - 0xfb, 0xbb, 0xef, 0x6e, 0x57, 0xa6, 0x87, 0x17, 0xa6, 0x9e, 0x3d, 0x5f, 0x0e, 0x8b, 0x36, 0x8e, - 0x3f, 0x79, 0xb1, 0xa8, 0x7c, 0xfa, 0x62, 0x51, 0xf9, 0xfb, 0x8b, 0x45, 0xe5, 0x47, 0x2f, 0x17, - 0x87, 0x3e, 0x7d, 0xb9, 0x38, 0xf4, 0xd7, 0x97, 0x8b, 0x43, 0x0f, 0xf7, 0x8e, 0x30, 0x3d, 0xae, - 0x57, 0x0b, 0x86, 0x63, 0x15, 0x77, 0x7d, 0x47, 0xde, 0x85, 0x55, 0x52, 0x0c, 0xdc, 0x7a, 0xd3, - 0x70, 0x3c, 0x14, 0xfe, 0x3c, 0x86, 0xd8, 0x2e, 0x5a, 0x0e, 0xeb, 0x1b, 0x69, 0xb0, 0x61, 0xc6, - 0xc9, 0x48, 0x75, 0x8c, 0xff, 0xc5, 0xc4, 0x97, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x86, 0x3e, - 0x35, 0xf5, 0x79, 0x32, 0x00, 0x00, + // 2551 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x77, 0xdb, 0x8e, 0xed, 0x79, 0x33, 0x1e, 0xdb, 0x6d, 0xaf, 0x99, 0x75, 0x12, 0x7f, 0x8c, + 0x37, 0x89, 0x37, 0x24, 0x33, 0x24, 0x04, 0x45, 0x58, 0x42, 0xe0, 0xcf, 0x5d, 0x8b, 0xd8, 0x99, + 0xf4, 0xd8, 0xbb, 0xab, 0x68, 0x51, 0xab, 0xa6, 0xbb, 0x6c, 0x17, 0x99, 0xfe, 0x48, 0x57, 0x8f, + 0x13, 0xaf, 0x38, 0x70, 0x60, 0x05, 0x0a, 0x17, 0x40, 0x7c, 0x88, 0x43, 0xc4, 0x9e, 0x38, 0x23, + 0xc1, 0x3f, 0x00, 0x07, 0xb4, 0x20, 0x0e, 0x7b, 0x03, 0x71, 0x58, 0xa1, 0x44, 0x08, 0xfe, 0x02, + 0xc4, 0x01, 0x21, 0xd4, 0x55, 0xd5, 0x3d, 0x3d, 0x33, 0x3d, 0x3d, 0x3d, 0xe3, 0xb1, 0xf6, 0x40, + 0x2e, 0xc9, 0xf4, 0xab, 0x57, 0xaf, 0x5e, 0xbd, 0x57, 0xef, 0xd5, 0xaf, 0xaa, 0x9e, 0xe1, 0x4d, + 0x62, 0x7e, 0x13, 0x6b, 0x2e, 0x39, 0xc1, 0x45, 0xfc, 0x54, 0x3b, 0x46, 0xe6, 0x11, 0x2e, 0x9e, + 0xdc, 0xaa, 0x60, 0x17, 0xdd, 0x2a, 0xda, 0x8e, 0x65, 0x5b, 0x14, 0x55, 0x0b, 0xb6, 0x63, 0xb9, + 0x96, 0x3c, 0x17, 0xb0, 0x16, 0x7c, 0xd6, 0x82, 0x60, 0x9d, 0x9b, 0xd7, 0x2c, 0x6a, 0x58, 0xb4, + 0x58, 0x41, 0xb4, 0xde, 0x5f, 0xb3, 0x88, 0xc9, 0xfb, 0xce, 0x15, 0x44, 0xbb, 0x4e, 0xa8, 0xeb, + 0x90, 0x4a, 0xcd, 0x25, 0x96, 0x19, 0xf0, 0x85, 0x89, 0x82, 0xff, 0x73, 0x82, 0xdf, 0xa0, 0x47, + 0xc5, 0x93, 0x5b, 0xde, 0x7f, 0xa2, 0xe1, 0x75, 0xde, 0xa0, 0xb2, 0xaf, 0x22, 0xff, 0x10, 0x4d, + 0x33, 0x47, 0xd6, 0x91, 0xc5, 0xe9, 0xde, 0x2f, 0x41, 0x8d, 0x9b, 0x60, 0x30, 0x0d, 0xce, 0x7a, + 0xa5, 0xce, 0x6a, 0x39, 0x48, 0xab, 0xd6, 0x19, 0xf9, 0xa7, 0x60, 0x9b, 0x42, 0x06, 0x31, 0xad, + 0x22, 0xfb, 0x97, 0x93, 0xf2, 0xbf, 0x18, 0x85, 0xcb, 0x65, 0xdb, 0x72, 0x77, 0x91, 0xf3, 0x08, + 0xbb, 0x25, 0xe4, 0x20, 0xe3, 0xc0, 0xd6, 0x91, 0x8b, 0x4b, 0xc2, 0x84, 0xf2, 0x0c, 0x5c, 0x70, + 0x89, 0x5b, 0xc5, 0x39, 0x69, 0x51, 0x5a, 0x49, 0x29, 0xfc, 0x43, 0x5e, 0x84, 0xb4, 0x8e, 0xa9, + 0xe6, 0x10, 0xdb, 0x9b, 0x7b, 0x6e, 0x90, 0xb5, 0x85, 0x49, 0xf2, 0x45, 0x48, 0x19, 0x4c, 0xa8, + 0x4a, 0xf4, 0xdc, 0x10, 0x6b, 0x1f, 0xe3, 0x84, 0x1d, 0x5d, 0xde, 0x81, 0xac, 0x81, 0x1e, 0x61, + 0x47, 0x3d, 0xc4, 0x58, 0x75, 0x90, 0x8b, 0x73, 0xc3, 0x1e, 0xc7, 0xfa, 0xf2, 0xc7, 0x9f, 0x2e, + 0x48, 0x7f, 0xfd, 0x74, 0xe1, 0x22, 0xb7, 0x0f, 0xd5, 0x1f, 0x15, 0x88, 0x55, 0x34, 0x90, 0x7b, + 0x5c, 0xb8, 0x87, 0x8f, 0x90, 0x76, 0xba, 0x89, 0x35, 0x25, 0xc3, 0xba, 0x6e, 0x63, 0xac, 0x20, + 0x17, 0x7b, 0xa2, 0xdc, 0x46, 0x51, 0x17, 0xba, 0x10, 0xe5, 0x86, 0x45, 0xbd, 0x07, 0xb3, 0x0e, + 0xae, 0xa2, 0x53, 0x21, 0x8c, 0x1e, 0x23, 0x47, 0x88, 0x1c, 0x49, 0x2e, 0x72, 0x5a, 0x88, 0xd8, + 0xc6, 0xb8, 0xec, 0x09, 0x60, 0x92, 0x15, 0x98, 0x36, 0x88, 0xa9, 0xda, 0x0e, 0xd1, 0xb0, 0xea, + 0x12, 0xed, 0x91, 0x4a, 0xc9, 0x07, 0x38, 0x37, 0x9a, 0x5c, 0xec, 0xa4, 0x41, 0xcc, 0x92, 0xd7, + 0x7d, 0x9f, 0x68, 0x8f, 0xca, 0xe4, 0x03, 0xa6, 0xad, 0x27, 0xf3, 0x71, 0x0d, 0x99, 0x2e, 0x71, + 0x4f, 0x43, 0x62, 0xc7, 0xba, 0xd0, 0xd6, 0x20, 0xe6, 0x03, 0x21, 0x21, 0x90, 0xfc, 0x35, 0x18, + 0xa1, 0x2e, 0x72, 0x6b, 0x34, 0x97, 0x5a, 0x94, 0x56, 0xb2, 0xb7, 0x57, 0x0a, 0xed, 0x03, 0xa8, + 0xc0, 0x57, 0x4e, 0x99, 0xf1, 0x2b, 0xa2, 0x9f, 0x7c, 0x09, 0x46, 0x3c, 0x75, 0xb0, 0x93, 0x03, + 0xa6, 0xcb, 0xb0, 0xa7, 0x8b, 0x22, 0x68, 0xf2, 0x36, 0x64, 0x3c, 0xcd, 0x4d, 0xcb, 0x5b, 0x28, + 0xa8, 0x9a, 0x4b, 0x27, 0xd7, 0x37, 0x6d, 0x10, 0x73, 0x4f, 0xf4, 0x93, 0x37, 0x01, 0x90, 0xee, + 0x49, 0x22, 0xe6, 0xa1, 0x95, 0xcb, 0x2c, 0x4a, 0x2b, 0xe9, 0xdb, 0x57, 0xe2, 0x74, 0x5d, 0xf3, + 0xb8, 0x77, 0xcc, 0x43, 0x4b, 0x49, 0x21, 0xff, 0xa7, 0xbc, 0x0c, 0xe3, 0x5e, 0xf0, 0xab, 0x3a, + 0xd6, 0x88, 0x81, 0xaa, 0x34, 0x37, 0xbe, 0x28, 0xad, 0x8c, 0x2b, 0x19, 0x8f, 0xb8, 0x29, 0x68, + 0xf2, 0x15, 0xc8, 0x3e, 0xae, 0x59, 0x6e, 0x88, 0x2b, 0xcb, 0xb8, 0xc6, 0x19, 0xd5, 0x67, 0x5b, + 0x7d, 0xf0, 0xbd, 0x8f, 0x16, 0x06, 0xfe, 0xf9, 0xd1, 0xc2, 0xc0, 0x1f, 0x7f, 0x73, 0x73, 0x4e, + 0xc4, 0xf8, 0x91, 0x75, 0x12, 0x28, 0xb0, 0x61, 0x99, 0x2e, 0x36, 0xdd, 0x67, 0xff, 0xf8, 0xd5, + 0xf5, 0xab, 0x41, 0x50, 0xc7, 0xc6, 0x5f, 0xfe, 0x4f, 0x12, 0xcc, 0x6e, 0x09, 0xd6, 0x2d, 0x13, + 0x55, 0xaa, 0x67, 0x0f, 0xcd, 0x7b, 0x90, 0xf1, 0x07, 0xdf, 0x3f, 0xb5, 0x31, 0x8b, 0xce, 0x0e, + 0x5e, 0xde, 0x0a, 0xf1, 0x2b, 0x0d, 0xbd, 0x57, 0x6f, 0xf8, 0x73, 0xf6, 0x66, 0xb5, 0x10, 0xcc, + 0x2a, 0x5a, 0xe7, 0xfc, 0xf7, 0xb3, 0xb0, 0xb4, 0x8e, 0x5c, 0xed, 0xd8, 0x6f, 0xdf, 0xb5, 0x74, + 0x72, 0x48, 0x34, 0xe4, 0x69, 0x76, 0xe6, 0x99, 0x7d, 0x28, 0x41, 0x9e, 0xda, 0x96, 0xab, 0x8a, + 0xd4, 0x63, 0x7b, 0x06, 0x55, 0x6b, 0xcc, 0xa2, 0xaa, 0xbf, 0x2b, 0xd0, 0xdc, 0xd0, 0xe2, 0xd0, + 0x4a, 0xfa, 0xf6, 0x97, 0xe3, 0x26, 0x1c, 0xeb, 0x14, 0x65, 0x9e, 0xc6, 0x35, 0x53, 0xf9, 0x67, + 0x12, 0xac, 0xe8, 0xd8, 0x21, 0x27, 0xc8, 0x93, 0xde, 0x41, 0x9b, 0x61, 0xa6, 0xcd, 0x57, 0xe3, + 0xb4, 0xd9, 0x0c, 0x64, 0xb5, 0xd7, 0xe9, 0x0d, 0xbd, 0x33, 0x13, 0x95, 0x6b, 0x70, 0x29, 0x6c, + 0xa0, 0x2a, 0xaa, 0x99, 0xda, 0x71, 0x48, 0x99, 0x0b, 0x4c, 0x99, 0x3b, 0xc9, 0x4c, 0x73, 0x8f, + 0xf5, 0x0e, 0x34, 0x78, 0x9d, 0xb6, 0x69, 0xa1, 0xf2, 0x77, 0x24, 0x58, 0xb2, 0xb1, 0x63, 0x63, + 0xb7, 0x86, 0xaa, 0x6d, 0x07, 0x1f, 0xe9, 0xec, 0x97, 0x92, 0x2f, 0x24, 0x52, 0x83, 0x79, 0x3b, + 0xae, 0x99, 0xca, 0x3f, 0x94, 0xe0, 0x2a, 0x7e, 0x6a, 0x13, 0xe7, 0x54, 0x3d, 0xac, 0xb9, 0x35, + 0x07, 0xd3, 0xb6, 0xba, 0x8c, 0x32, 0x5d, 0xbe, 0x12, 0x1f, 0x14, 0x9e, 0xa4, 0x6d, 0x2e, 0x28, + 0x52, 0x9f, 0x3c, 0xee, 0xc4, 0x42, 0xe5, 0x9f, 0x48, 0x70, 0xcd, 0x75, 0x90, 0x4e, 0xcc, 0x23, + 0xd5, 0xc1, 0x4f, 0x90, 0xa3, 0xab, 0x1a, 0x32, 0x6c, 0x44, 0x8e, 0xcc, 0xe6, 0xb5, 0xc2, 0x32, + 0x7b, 0x87, 0xa5, 0xb2, 0xcf, 0x45, 0x29, 0x4c, 0xd2, 0x86, 0x10, 0xd4, 0xb4, 0x54, 0x96, 0xdd, + 0xce, 0x4c, 0xcc, 0x56, 0x15, 0x62, 0x22, 0xe7, 0x54, 0xb5, 0x58, 0x74, 0xb5, 0xb7, 0x55, 0xaa, + 0xb3, 0xad, 0xd6, 0x99, 0xa4, 0xfb, 0x5c, 0x50, 0xb4, 0xad, 0x2a, 0x9d, 0x58, 0xa8, 0xfc, 0x63, + 0x09, 0xae, 0x34, 0xe9, 0xd4, 0x26, 0xa8, 0x80, 0xa9, 0xb4, 0xde, 0xa5, 0x4a, 0x51, 0x71, 0xb5, + 0xd4, 0xa0, 0x57, 0x64, 0x50, 0x7d, 0x0b, 0xe6, 0x75, 0x6c, 0x5a, 0x46, 0xb0, 0x3b, 0xb4, 0x38, + 0x2e, 0xcd, 0x1c, 0x77, 0x37, 0x4e, 0x1d, 0x2e, 0x74, 0xd3, 0x93, 0xe3, 0xef, 0x27, 0x81, 0x0e, + 0x17, 0xf5, 0x30, 0xb9, 0xc9, 0x51, 0x1a, 0xbc, 0xe6, 0xc1, 0x15, 0x9d, 0x50, 0xcd, 0xaa, 0x99, + 0x6e, 0x7d, 0x50, 0xbe, 0x23, 0x16, 0xe3, 0x06, 0xdd, 0xc6, 0x78, 0x53, 0xf4, 0x0b, 0x06, 0x9b, + 0x3e, 0x6c, 0x25, 0xca, 0xdf, 0x95, 0x20, 0x2f, 0xdc, 0x7f, 0x68, 0x39, 0x1a, 0xd6, 0x55, 0x8a, + 0x5d, 0xb7, 0x8a, 0x0d, 0x1c, 0x1a, 0xd1, 0xdb, 0x3b, 0x3d, 0xb3, 0xaf, 0x76, 0x06, 0x0c, 0xdb, + 0x4c, 0x48, 0x39, 0x90, 0x11, 0x8c, 0xbe, 0x60, 0xc4, 0xb6, 0x53, 0x99, 0x02, 0xb7, 0x86, 0x1a, + 0xc6, 0x10, 0xf5, 0x49, 0x67, 0xd9, 0xa4, 0xef, 0xc4, 0x67, 0x53, 0xd3, 0x32, 0x76, 0xeb, 0x40, + 0x22, 0x18, 0x3b, 0xa7, 0xb7, 0x69, 0x59, 0x3d, 0x48, 0xbe, 0xb1, 0x5f, 0x0f, 0xb6, 0xc0, 0x8e, + 0xfb, 0x5c, 0xfe, 0xa7, 0x23, 0x90, 0x6b, 0x97, 0x4e, 0x7b, 0xde, 0x04, 0x67, 0x03, 0xf0, 0xc5, + 0x61, 0xb7, 0x0f, 0xbb, 0x2e, 0x03, 0x08, 0xa0, 0x63, 0x5a, 0x06, 0x07, 0xdc, 0x4a, 0x8a, 0xa3, + 0x1c, 0xd3, 0x32, 0xe4, 0x05, 0x48, 0xfb, 0x10, 0xc7, 0x6b, 0x67, 0x28, 0x5a, 0x01, 0x81, 0x6f, + 0x3c, 0x86, 0x36, 0x20, 0xb6, 0x8e, 0x8d, 0x07, 0xfa, 0x09, 0x62, 0x47, 0x93, 0x8b, 0x8d, 0x04, + 0xb1, 0xad, 0x47, 0x8c, 0xb1, 0xfe, 0x1d, 0x31, 0x52, 0xbd, 0x1e, 0x31, 0x9a, 0xa1, 0x2f, 0x24, + 0x9f, 0x65, 0x0c, 0xf4, 0x4d, 0xf7, 0x0b, 0xfa, 0x66, 0x13, 0x41, 0xdf, 0x89, 0x28, 0xe8, 0x7b, + 0x2f, 0x79, 0x84, 0x2c, 0x45, 0x40, 0xdf, 0xc6, 0xb5, 0x9f, 0xff, 0xe5, 0x18, 0x5c, 0x8e, 0xdd, + 0xea, 0xfb, 0x1e, 0x1d, 0x4d, 0xcb, 0x7f, 0xb8, 0x65, 0xf9, 0x2f, 0x40, 0x9a, 0x9f, 0xa6, 0x55, + 0xcf, 0x3c, 0x7e, 0x7c, 0x70, 0xd2, 0x3a, 0xa2, 0x58, 0x5e, 0x82, 0x8c, 0x60, 0x60, 0xbd, 0x78, + 0x60, 0x28, 0xa2, 0xd3, 0x03, 0x8f, 0x24, 0x17, 0x60, 0x5a, 0xb0, 0x50, 0x0d, 0x55, 0xb1, 0x7a, + 0x88, 0x34, 0xd7, 0x72, 0xd8, 0x5a, 0x1f, 0x57, 0xa6, 0x78, 0x53, 0xd9, 0x6b, 0xd9, 0x66, 0x0d, + 0xf2, 0x56, 0x30, 0xa6, 0xeb, 0x01, 0xf5, 0x31, 0x06, 0xd4, 0xdf, 0x08, 0xf9, 0x59, 0x9c, 0xef, + 0x7d, 0x23, 0xdf, 0x67, 0x9f, 0x0c, 0xa4, 0x0b, 0xcd, 0xbc, 0xdf, 0xf2, 0x01, 0xcc, 0x10, 0x93, + 0xb8, 0x84, 0x43, 0xaf, 0x23, 0x62, 0x7a, 0xab, 0x98, 0x58, 0xa1, 0x65, 0xdc, 0x71, 0xf5, 0xc9, + 0x42, 0xc0, 0x2e, 0xeb, 0xaf, 0x78, 0xdd, 0xe5, 0x6f, 0x40, 0xce, 0x40, 0xc4, 0x73, 0x2b, 0x32, + 0x35, 0xdc, 0x28, 0xba, 0x8b, 0x85, 0x3d, 0x1b, 0x12, 0x12, 0x16, 0xdf, 0x1a, 0xc1, 0xe9, 0xe4, + 0x42, 0x3b, 0x45, 0x70, 0xa6, 0x0b, 0x51, 0x0d, 0x11, 0xdc, 0x26, 0x0b, 0x8e, 0x9f, 0x4f, 0x16, + 0xcc, 0x9e, 0x31, 0x0b, 0x36, 0xe7, 0x9b, 0x89, 0xbe, 0xe4, 0x9b, 0xc9, 0xde, 0xf2, 0x4d, 0x6f, + 0xc7, 0xe3, 0xd8, 0x34, 0x90, 0xff, 0xfb, 0x28, 0x2c, 0x75, 0xc4, 0x96, 0x7d, 0x4f, 0x16, 0xcb, + 0x30, 0xee, 0xc7, 0xf1, 0xa9, 0x51, 0xb1, 0xaa, 0x22, 0x5d, 0x88, 0xf8, 0x2f, 0x33, 0x9a, 0x7c, + 0x0d, 0x26, 0x04, 0x93, 0xed, 0x58, 0x27, 0x44, 0xc7, 0x8e, 0x48, 0x1a, 0x59, 0x4e, 0x2e, 0x09, + 0x6a, 0x73, 0x94, 0x8f, 0xf4, 0x18, 0xe5, 0xdd, 0x26, 0x97, 0x5b, 0x30, 0xc3, 0x8e, 0x27, 0x0c, + 0x92, 0xa8, 0x2e, 0x31, 0x30, 0x75, 0x91, 0x61, 0xb3, 0x2c, 0x33, 0xa4, 0x4c, 0xd7, 0xdb, 0xf6, + 0xfd, 0x26, 0xaf, 0x4b, 0x08, 0xf6, 0xd5, 0xbb, 0xa4, 0x78, 0x97, 0x7a, 0x5b, 0xbd, 0xcb, 0x0c, + 0x5c, 0x60, 0x0b, 0x80, 0x67, 0x04, 0x85, 0x7f, 0x34, 0x67, 0xdb, 0x74, 0x4b, 0xb6, 0x6d, 0x0d, + 0xfe, 0x4c, 0xff, 0x82, 0x7f, 0xbc, 0xcf, 0xc1, 0x9f, 0x3d, 0x9f, 0xe0, 0x9f, 0xe8, 0x73, 0xf0, + 0x4f, 0xf6, 0x18, 0xfc, 0x9f, 0x87, 0x29, 0x1e, 0xfc, 0x36, 0x76, 0x0c, 0x42, 0xa9, 0x17, 0x66, + 0xb9, 0x29, 0xb6, 0xac, 0x26, 0x59, 0x43, 0xa9, 0x4e, 0xef, 0x11, 0x29, 0x77, 0x8a, 0xe0, 0xfc, + 0xef, 0xc7, 0x60, 0xa9, 0xe3, 0x79, 0xfb, 0x15, 0x28, 0xe8, 0x22, 0x5d, 0xcc, 0xc2, 0x08, 0xbf, + 0x9d, 0x10, 0xd1, 0x2b, 0xbe, 0xda, 0x82, 0x05, 0x38, 0x3f, 0xb0, 0x90, 0x3e, 0x0f, 0xb0, 0xf0, + 0x2a, 0x5f, 0x7c, 0x56, 0xf9, 0xa2, 0x11, 0x2c, 0x4c, 0xf5, 0x08, 0x16, 0x7a, 0x4a, 0x24, 0x1d, + 0x53, 0x44, 0xfe, 0x47, 0x00, 0xcb, 0x09, 0xae, 0x53, 0xcf, 0xe7, 0xdd, 0xab, 0x5d, 0x6c, 0x75, + 0xf1, 0xfa, 0xd5, 0x6d, 0x6c, 0x75, 0xf1, 0x1a, 0x96, 0x3c, 0xb6, 0x46, 0xfa, 0x77, 0x94, 0x1e, + 0xed, 0xff, 0x6b, 0xdd, 0xd8, 0xf9, 0xbc, 0xd6, 0xa5, 0xce, 0xe7, 0xb5, 0x0e, 0xce, 0xf8, 0x5a, + 0x57, 0x06, 0xf9, 0x6d, 0xab, 0xe6, 0x54, 0x4f, 0x77, 0x4c, 0x17, 0x3b, 0x98, 0xba, 0x4a, 0xe3, + 0x51, 0xa9, 0xf3, 0x8a, 0x6a, 0xed, 0x2e, 0xbf, 0x0b, 0x33, 0x9c, 0xba, 0x5d, 0x33, 0xd9, 0x4d, + 0x31, 0x72, 0xf1, 0x06, 0xb2, 0x43, 0x49, 0xb5, 0xa3, 0xd8, 0x48, 0x01, 0xa1, 0xb7, 0xc5, 0xf1, + 0x1e, 0xdf, 0x16, 0x77, 0x03, 0xec, 0xcd, 0xae, 0x7e, 0xa9, 0xb8, 0xf1, 0x8b, 0x15, 0xc4, 0xb7, + 0x40, 0x16, 0xe6, 0xd4, 0x47, 0xe9, 0xfc, 0x2b, 0xf4, 0x54, 0x39, 0x91, 0xe0, 0xa9, 0x72, 0xb2, + 0x2f, 0x4f, 0x95, 0xbd, 0xa6, 0xc4, 0x77, 0x93, 0xa7, 0xc4, 0x1b, 0x41, 0x4a, 0x4c, 0x90, 0xec, + 0xf2, 0x7b, 0x90, 0x0a, 0x06, 0xac, 0x23, 0x76, 0x29, 0x8c, 0xd8, 0x23, 0x41, 0xe0, 0x60, 0x34, + 0x08, 0xcc, 0xff, 0x7c, 0x10, 0xe6, 0xe3, 0xef, 0x79, 0xcf, 0x27, 0xbf, 0xee, 0xc1, 0x64, 0xc3, + 0xb5, 0x34, 0xd1, 0xba, 0xaa, 0x2c, 0x98, 0xa0, 0x21, 0x3d, 0x89, 0x86, 0x57, 0x95, 0xe4, 0x06, + 0xbf, 0x16, 0x18, 0x3c, 0x7e, 0xe2, 0xf9, 0x7f, 0x4b, 0x70, 0x31, 0xe6, 0xae, 0xbf, 0x67, 0xc3, + 0x94, 0x20, 0xdb, 0xf8, 0x08, 0x21, 0x9e, 0x39, 0xdf, 0xec, 0x78, 0x15, 0xee, 0xab, 0xa0, 0x8c, + 0x37, 0x3c, 0x33, 0xac, 0xde, 0x4f, 0x3e, 0xfb, 0x37, 0x82, 0xd9, 0xc7, 0x4c, 0x2d, 0xff, 0xbb, + 0x31, 0xb8, 0x9a, 0xec, 0xd5, 0xe5, 0x55, 0xd9, 0xc9, 0xff, 0x5f, 0xd9, 0x49, 0xbb, 0xfb, 0x88, + 0x54, 0xf7, 0xf7, 0x11, 0xd0, 0xfe, 0x3e, 0x22, 0x2a, 0x45, 0xa4, 0x7b, 0x4f, 0x11, 0xf5, 0x6c, + 0x99, 0x09, 0x67, 0xcb, 0xb3, 0x6f, 0x73, 0x07, 0xd1, 0xdb, 0xdc, 0x17, 0x62, 0x1f, 0xc7, 0xc5, + 0x8d, 0xd2, 0x67, 0xbd, 0xdd, 0xad, 0x3e, 0x4c, 0x9e, 0x39, 0x8a, 0x71, 0x97, 0x00, 0x51, 0x7b, + 0xd5, 0x6f, 0x25, 0x98, 0x89, 0x9a, 0xa8, 0x77, 0xa0, 0x15, 0xb7, 0x71, 0x3c, 0x67, 0x88, 0x2f, + 0x79, 0x0e, 0xc6, 0x82, 0x0b, 0x38, 0x9e, 0x31, 0x82, 0xef, 0x76, 0x67, 0xef, 0xa1, 0x84, 0x67, + 0xef, 0xe1, 0xde, 0xce, 0xde, 0xf9, 0x3f, 0x48, 0x90, 0x69, 0xd0, 0xbd, 0xe9, 0x1e, 0x41, 0xea, + 0x78, 0x8f, 0x30, 0x98, 0xf8, 0x1e, 0xe1, 0xbc, 0xe7, 0xf2, 0xaf, 0x41, 0x58, 0x8e, 0x2c, 0x3a, + 0xe8, 0xd3, 0xdd, 0xcc, 0x43, 0x18, 0x0f, 0xea, 0x21, 0x18, 0x7a, 0x1a, 0x62, 0x81, 0xf0, 0xa5, + 0xae, 0x8b, 0x20, 0x18, 0x9a, 0xca, 0x68, 0xa1, 0x2f, 0xb9, 0x02, 0xaf, 0x05, 0xb2, 0x45, 0xed, + 0x85, 0x6d, 0x59, 0x41, 0x4d, 0x4e, 0x21, 0x6e, 0x0c, 0x5f, 0x2c, 0x1f, 0xa4, 0x64, 0x59, 0x55, + 0x65, 0x5a, 0x6b, 0xa1, 0xd1, 0xde, 0x40, 0x5b, 0x02, 0x83, 0xe6, 0xff, 0x33, 0xd4, 0xc6, 0xf0, + 0x7d, 0xda, 0x4a, 0xcf, 0xd3, 0xf0, 0x35, 0x58, 0x88, 0x34, 0xbc, 0x8a, 0x74, 0x9d, 0xb0, 0x04, + 0xd0, 0xa3, 0x0b, 0x2e, 0x45, 0xb8, 0x60, 0xcd, 0x97, 0x29, 0x3f, 0x86, 0xcb, 0xd1, 0xc3, 0xf2, + 0x7a, 0x0d, 0xbf, 0xfc, 0xa9, 0xdb, 0x41, 0xe7, 0x22, 0x06, 0xe5, 0x4e, 0xe8, 0xa7, 0xfb, 0x9b, + 0xf2, 0xe0, 0xb7, 0x25, 0x98, 0xf2, 0xc7, 0x23, 0xa6, 0xcb, 0x5b, 0xe5, 0x6b, 0x30, 0x81, 0x34, + 0x5e, 0x07, 0x82, 0x74, 0xdd, 0xc1, 0x94, 0x0a, 0xb7, 0x67, 0x05, 0x79, 0x8d, 0x53, 0xe5, 0x75, + 0x00, 0x13, 0x3f, 0x51, 0x6d, 0xaf, 0x2f, 0xed, 0xe6, 0xb2, 0x2c, 0x65, 0xe2, 0x27, 0x6c, 0x44, + 0x9a, 0xff, 0xf3, 0x20, 0xac, 0x34, 0xa8, 0x5a, 0xc2, 0xec, 0xb0, 0xc7, 0x9b, 0xfb, 0xb4, 0x0c, + 0xef, 0xc0, 0xac, 0xcd, 0xc5, 0x32, 0x5f, 0x85, 0x76, 0xf9, 0x21, 0xb6, 0xcb, 0xcf, 0xd8, 0xfe, + 0xa0, 0x56, 0xb5, 0xbe, 0xcd, 0xab, 0x30, 0x13, 0x38, 0x98, 0x98, 0x6e, 0xe0, 0x60, 0xbe, 0xaa, + 0x6e, 0xc6, 0x39, 0xb8, 0xc5, 0xa8, 0x8a, 0xec, 0x34, 0x93, 0xe8, 0xea, 0xfb, 0xc9, 0xfd, 0x7a, + 0x2b, 0xda, 0xaf, 0x31, 0xc6, 0xca, 0xbf, 0x94, 0x60, 0x3a, 0xa2, 0x36, 0xa7, 0x67, 0x23, 0x7e, + 0x1d, 0xc6, 0xa8, 0x76, 0x8c, 0xf5, 0x5a, 0x15, 0x8b, 0x30, 0x4e, 0x5a, 0x16, 0x54, 0x16, 0xdd, + 0x94, 0x40, 0xc0, 0xea, 0x5b, 0xc9, 0xa7, 0x7e, 0x29, 0x98, 0x7a, 0xc4, 0x6c, 0xf2, 0x1f, 0x0e, + 0xc2, 0x02, 0x2b, 0x92, 0xd9, 0xb0, 0x0c, 0xa3, 0x66, 0x12, 0xf7, 0xd4, 0x73, 0x62, 0xd9, 0x73, + 0xe8, 0x99, 0x67, 0x7c, 0x00, 0xa9, 0xe6, 0x82, 0xcf, 0xbb, 0xa2, 0x98, 0xbf, 0xd0, 0x50, 0xb7, + 0x5f, 0xd7, 0xba, 0x9d, 0x0e, 0x4a, 0x5d, 0xd2, 0x6a, 0x39, 0xf9, 0xdc, 0x57, 0x1a, 0x0b, 0x81, + 0xda, 0xcb, 0xcf, 0xff, 0x7a, 0x10, 0x0a, 0x6b, 0xae, 0x65, 0x10, 0x8d, 0xc3, 0x9e, 0xfb, 0x8e, + 0xce, 0x90, 0xfc, 0x6e, 0xad, 0xea, 0x12, 0xbb, 0x4a, 0xb0, 0xe3, 0x7b, 0xe1, 0xcc, 0x66, 0xc1, + 0x30, 0xeb, 0x97, 0x71, 0x61, 0xac, 0x1a, 0xc1, 0x00, 0xbe, 0x8d, 0x8a, 0x09, 0x4a, 0xb7, 0xc2, + 0x8a, 0x29, 0x33, 0x46, 0x2b, 0x91, 0xae, 0x56, 0x92, 0x9b, 0xe9, 0x6e, 0x60, 0xa6, 0xee, 0x4c, + 0x90, 0xff, 0xaf, 0x04, 0xb9, 0x76, 0xa5, 0x5c, 0x3d, 0xdb, 0xe7, 0x7d, 0x98, 0x6e, 0xad, 0x2e, + 0xf3, 0x8d, 0x73, 0xa3, 0x9b, 0xaa, 0x32, 0x65, 0xaa, 0xb9, 0x9a, 0xac, 0xc7, 0x22, 0x99, 0x76, + 0x73, 0xbc, 0xfe, 0x14, 0x32, 0xe1, 0xba, 0x6c, 0xf9, 0x36, 0xcc, 0x6c, 0xbd, 0xb7, 0xf1, 0xf6, + 0xda, 0xde, 0x5b, 0x5b, 0xea, 0xc1, 0x5e, 0xb9, 0xb4, 0xb5, 0xb1, 0xb3, 0xbd, 0xb3, 0xb5, 0x39, + 0x39, 0x30, 0x97, 0x7b, 0xf6, 0x7c, 0x31, 0xb2, 0x4d, 0x96, 0x61, 0xb8, 0x5c, 0xba, 0xbf, 0x3f, + 0x29, 0xcd, 0x8d, 0x3d, 0x7b, 0xbe, 0xc8, 0x7e, 0x7b, 0x56, 0xda, 0xdc, 0x52, 0x76, 0xde, 0x59, + 0xdb, 0xdf, 0x79, 0x67, 0xab, 0x3c, 0x39, 0x38, 0x37, 0xf1, 0xec, 0xf9, 0x62, 0x98, 0xb4, 0x7e, + 0xfc, 0xf1, 0x8b, 0x79, 0xe9, 0x93, 0x17, 0xf3, 0xd2, 0xdf, 0x5e, 0xcc, 0x4b, 0x3f, 0x78, 0x39, + 0x3f, 0xf0, 0xc9, 0xcb, 0xf9, 0x81, 0xbf, 0xbc, 0x9c, 0x1f, 0x78, 0xb8, 0x77, 0x44, 0xdc, 0xe3, + 0x5a, 0xa5, 0xa0, 0x59, 0x46, 0x71, 0xc7, 0x37, 0xd6, 0x3d, 0x54, 0xa1, 0xc5, 0xc0, 0x74, 0x37, + 0x35, 0xcb, 0xc1, 0xe1, 0xcf, 0x63, 0x44, 0xcc, 0xa2, 0x61, 0x79, 0xce, 0xa5, 0xf5, 0xe3, 0x80, + 0x07, 0x4a, 0x69, 0x65, 0x84, 0xfd, 0x9d, 0xca, 0x17, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0xb0, + 0xf8, 0x37, 0x4a, 0xef, 0x33, 0x00, 0x00, } func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) { @@ -1600,6 +1645,18 @@ func (m *BatchExchangeModificationProposal) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + if m.DenomMinNotionalProposal != nil { + { + size, err := m.DenomMinNotionalProposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } if len(m.MarketForcedSettlementProposals) > 0 { for iNdEx := len(m.MarketForcedSettlementProposals) - 1; iNdEx >= 0; iNdEx-- { { @@ -3373,6 +3430,57 @@ func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } +func (m *DenomMinNotionalProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DenomMinNotionalProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DenomMinNotionalProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.DenomMinNotionals) > 0 { + for iNdEx := len(m.DenomMinNotionals) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomMinNotionals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintProposal(dAtA []byte, offset int, v uint64) int { offset -= sovProposal(v) base := offset @@ -3540,6 +3648,10 @@ func (m *BatchExchangeModificationProposal) Size() (n int) { n += 1 + l + sovProposal(uint64(l)) } } + if m.DenomMinNotionalProposal != nil { + l = m.DenomMinNotionalProposal.Size() + n += 1 + l + sovProposal(uint64(l)) + } return n } @@ -4199,6 +4311,29 @@ func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) Size() (n int) { return n } +func (m *DenomMinNotionalProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if len(m.DenomMinNotionals) > 0 { + for _, e := range m.DenomMinNotionals { + l = e.Size() + n += 1 + l + sovProposal(uint64(l)) + } + } + return n +} + func sovProposal(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -5298,6 +5433,42 @@ func (m *BatchExchangeModificationProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionalProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DenomMinNotionalProposal == nil { + m.DenomMinNotionalProposal = &DenomMinNotionalProposal{} + } + if err := m.DenomMinNotionalProposal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -10493,6 +10664,154 @@ func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) Unmarshal(dAtA []byte) } return nil } +func (m *DenomMinNotionalProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DenomMinNotionalProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DenomMinNotionalProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionals", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomMinNotionals = append(m.DenomMinNotionals, &DenomMinNotional{}) + if err := m.DenomMinNotionals[len(m.DenomMinNotionals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProposal(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProposal + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipProposal(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go index 00a13881..a637fa2c 100644 --- a/chain/exchange/types/query.pb.go +++ b/chain/exchange/types/query.pb.go @@ -6887,6 +6887,374 @@ func (m *QueryGrantAuthorizationsResponse) GetGrants() []*GrantAuthorization { return nil } +type QueryMarketBalanceRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryMarketBalanceRequest) Reset() { *m = QueryMarketBalanceRequest{} } +func (m *QueryMarketBalanceRequest) String() string { return proto.CompactTextString(m) } +func (*QueryMarketBalanceRequest) ProtoMessage() {} +func (*QueryMarketBalanceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{135} +} +func (m *QueryMarketBalanceRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryMarketBalanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryMarketBalanceRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryMarketBalanceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryMarketBalanceRequest.Merge(m, src) +} +func (m *QueryMarketBalanceRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryMarketBalanceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryMarketBalanceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryMarketBalanceRequest proto.InternalMessageInfo + +func (m *QueryMarketBalanceRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryMarketBalanceResponse struct { + Balance cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=balance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance"` +} + +func (m *QueryMarketBalanceResponse) Reset() { *m = QueryMarketBalanceResponse{} } +func (m *QueryMarketBalanceResponse) String() string { return proto.CompactTextString(m) } +func (*QueryMarketBalanceResponse) ProtoMessage() {} +func (*QueryMarketBalanceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{136} +} +func (m *QueryMarketBalanceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryMarketBalanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryMarketBalanceResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryMarketBalanceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryMarketBalanceResponse.Merge(m, src) +} +func (m *QueryMarketBalanceResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryMarketBalanceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryMarketBalanceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryMarketBalanceResponse proto.InternalMessageInfo + +type QueryMarketBalancesRequest struct { +} + +func (m *QueryMarketBalancesRequest) Reset() { *m = QueryMarketBalancesRequest{} } +func (m *QueryMarketBalancesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryMarketBalancesRequest) ProtoMessage() {} +func (*QueryMarketBalancesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{137} +} +func (m *QueryMarketBalancesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryMarketBalancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryMarketBalancesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryMarketBalancesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryMarketBalancesRequest.Merge(m, src) +} +func (m *QueryMarketBalancesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryMarketBalancesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryMarketBalancesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryMarketBalancesRequest proto.InternalMessageInfo + +type QueryMarketBalancesResponse struct { + Balances []*MarketBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` +} + +func (m *QueryMarketBalancesResponse) Reset() { *m = QueryMarketBalancesResponse{} } +func (m *QueryMarketBalancesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryMarketBalancesResponse) ProtoMessage() {} +func (*QueryMarketBalancesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{138} +} +func (m *QueryMarketBalancesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryMarketBalancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryMarketBalancesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryMarketBalancesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryMarketBalancesResponse.Merge(m, src) +} +func (m *QueryMarketBalancesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryMarketBalancesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryMarketBalancesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryMarketBalancesResponse proto.InternalMessageInfo + +func (m *QueryMarketBalancesResponse) GetBalances() []*MarketBalance { + if m != nil { + return m.Balances + } + return nil +} + +type MarketBalance struct { + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Balance cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=balance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance"` +} + +func (m *MarketBalance) Reset() { *m = MarketBalance{} } +func (m *MarketBalance) String() string { return proto.CompactTextString(m) } +func (*MarketBalance) ProtoMessage() {} +func (*MarketBalance) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{139} +} +func (m *MarketBalance) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MarketBalance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MarketBalance.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MarketBalance) XXX_Merge(src proto.Message) { + xxx_messageInfo_MarketBalance.Merge(m, src) +} +func (m *MarketBalance) XXX_Size() int { + return m.Size() +} +func (m *MarketBalance) XXX_DiscardUnknown() { + xxx_messageInfo_MarketBalance.DiscardUnknown(m) +} + +var xxx_messageInfo_MarketBalance proto.InternalMessageInfo + +func (m *MarketBalance) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryDenomMinNotionalRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *QueryDenomMinNotionalRequest) Reset() { *m = QueryDenomMinNotionalRequest{} } +func (m *QueryDenomMinNotionalRequest) String() string { return proto.CompactTextString(m) } +func (*QueryDenomMinNotionalRequest) ProtoMessage() {} +func (*QueryDenomMinNotionalRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{140} +} +func (m *QueryDenomMinNotionalRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDenomMinNotionalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDenomMinNotionalRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryDenomMinNotionalRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDenomMinNotionalRequest.Merge(m, src) +} +func (m *QueryDenomMinNotionalRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryDenomMinNotionalRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDenomMinNotionalRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDenomMinNotionalRequest proto.InternalMessageInfo + +func (m *QueryDenomMinNotionalRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +type QueryDenomMinNotionalResponse struct { + Amount cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=amount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"amount"` +} + +func (m *QueryDenomMinNotionalResponse) Reset() { *m = QueryDenomMinNotionalResponse{} } +func (m *QueryDenomMinNotionalResponse) String() string { return proto.CompactTextString(m) } +func (*QueryDenomMinNotionalResponse) ProtoMessage() {} +func (*QueryDenomMinNotionalResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{141} +} +func (m *QueryDenomMinNotionalResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDenomMinNotionalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDenomMinNotionalResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryDenomMinNotionalResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDenomMinNotionalResponse.Merge(m, src) +} +func (m *QueryDenomMinNotionalResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryDenomMinNotionalResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDenomMinNotionalResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDenomMinNotionalResponse proto.InternalMessageInfo + +type QueryDenomMinNotionalsRequest struct { +} + +func (m *QueryDenomMinNotionalsRequest) Reset() { *m = QueryDenomMinNotionalsRequest{} } +func (m *QueryDenomMinNotionalsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryDenomMinNotionalsRequest) ProtoMessage() {} +func (*QueryDenomMinNotionalsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{142} +} +func (m *QueryDenomMinNotionalsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDenomMinNotionalsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDenomMinNotionalsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryDenomMinNotionalsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDenomMinNotionalsRequest.Merge(m, src) +} +func (m *QueryDenomMinNotionalsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryDenomMinNotionalsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDenomMinNotionalsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDenomMinNotionalsRequest proto.InternalMessageInfo + +type QueryDenomMinNotionalsResponse struct { + DenomMinNotionals []*DenomMinNotional `protobuf:"bytes,1,rep,name=denom_min_notionals,json=denomMinNotionals,proto3" json:"denom_min_notionals,omitempty"` +} + +func (m *QueryDenomMinNotionalsResponse) Reset() { *m = QueryDenomMinNotionalsResponse{} } +func (m *QueryDenomMinNotionalsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryDenomMinNotionalsResponse) ProtoMessage() {} +func (*QueryDenomMinNotionalsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{143} +} +func (m *QueryDenomMinNotionalsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDenomMinNotionalsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDenomMinNotionalsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryDenomMinNotionalsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDenomMinNotionalsResponse.Merge(m, src) +} +func (m *QueryDenomMinNotionalsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryDenomMinNotionalsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDenomMinNotionalsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDenomMinNotionalsResponse proto.InternalMessageInfo + +func (m *QueryDenomMinNotionalsResponse) GetDenomMinNotionals() []*DenomMinNotional { + if m != nil { + return m.DenomMinNotionals + } + return nil +} + func init() { proto.RegisterEnum("injective.exchange.v1beta1.OrderSide", OrderSide_name, OrderSide_value) proto.RegisterEnum("injective.exchange.v1beta1.CancellationStrategy", CancellationStrategy_name, CancellationStrategy_value) @@ -7026,6 +7394,15 @@ func init() { proto.RegisterType((*QueryGrantAuthorizationResponse)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationResponse") proto.RegisterType((*QueryGrantAuthorizationsRequest)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationsRequest") proto.RegisterType((*QueryGrantAuthorizationsResponse)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationsResponse") + proto.RegisterType((*QueryMarketBalanceRequest)(nil), "injective.exchange.v1beta1.QueryMarketBalanceRequest") + proto.RegisterType((*QueryMarketBalanceResponse)(nil), "injective.exchange.v1beta1.QueryMarketBalanceResponse") + proto.RegisterType((*QueryMarketBalancesRequest)(nil), "injective.exchange.v1beta1.QueryMarketBalancesRequest") + proto.RegisterType((*QueryMarketBalancesResponse)(nil), "injective.exchange.v1beta1.QueryMarketBalancesResponse") + proto.RegisterType((*MarketBalance)(nil), "injective.exchange.v1beta1.MarketBalance") + proto.RegisterType((*QueryDenomMinNotionalRequest)(nil), "injective.exchange.v1beta1.QueryDenomMinNotionalRequest") + proto.RegisterType((*QueryDenomMinNotionalResponse)(nil), "injective.exchange.v1beta1.QueryDenomMinNotionalResponse") + proto.RegisterType((*QueryDenomMinNotionalsRequest)(nil), "injective.exchange.v1beta1.QueryDenomMinNotionalsRequest") + proto.RegisterType((*QueryDenomMinNotionalsResponse)(nil), "injective.exchange.v1beta1.QueryDenomMinNotionalsResponse") } func init() { @@ -7033,382 +7410,397 @@ func init() { } var fileDescriptor_523db28b8af54781 = []byte{ - // 5988 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x6d, 0x8c, 0x1c, 0xc9, - 0x55, 0xee, 0xd9, 0x0f, 0xef, 0xbe, 0xfd, 0x74, 0xed, 0x7a, 0xbd, 0x9e, 0xbb, 0xf3, 0x47, 0x3b, - 0xbe, 0xf3, 0x39, 0xe7, 0x1d, 0x7b, 0xfd, 0xfd, 0xed, 0x9d, 0x5d, 0xaf, 0xbd, 0xe7, 0x5d, 0xdb, - 0x37, 0xbb, 0xbe, 0xcb, 0x5d, 0x80, 0x49, 0xef, 0x4c, 0xef, 0x6c, 0x9f, 0x7b, 0xa6, 0xc7, 0xd3, - 0x3d, 0x7b, 0x5e, 0x8c, 0x11, 0x10, 0x50, 0x22, 0x90, 0x00, 0x29, 0x02, 0x84, 0x40, 0x08, 0xf8, - 0xc1, 0x0f, 0x44, 0x84, 0x44, 0x84, 0x40, 0x89, 0x94, 0x28, 0x04, 0xa1, 0x70, 0x41, 0x70, 0x90, - 0x23, 0xa0, 0x08, 0x8e, 0xe8, 0x2e, 0x10, 0xe5, 0x04, 0x12, 0xbf, 0x90, 0x10, 0x28, 0x41, 0x5d, - 0xf5, 0xaa, 0xa6, 0xbf, 0xa7, 0x7a, 0x76, 0x4f, 0xbe, 0x90, 0x5f, 0xde, 0xa9, 0xae, 0xf7, 0xea, - 0xbd, 0x7a, 0xaf, 0xde, 0x7b, 0x55, 0xf5, 0x5e, 0x19, 0x9e, 0x35, 0x6a, 0xaf, 0xeb, 0x25, 0xc7, - 0xd8, 0xd0, 0x73, 0xfa, 0xc3, 0xd2, 0xba, 0x56, 0xab, 0xe8, 0xb9, 0x8d, 0x13, 0xab, 0xba, 0xa3, - 0x9d, 0xc8, 0x3d, 0x68, 0xea, 0x8d, 0xcd, 0xa9, 0x7a, 0xc3, 0x72, 0x2c, 0x92, 0x15, 0xfd, 0xa6, - 0x78, 0xbf, 0x29, 0xec, 0x97, 0x7d, 0xba, 0x62, 0x59, 0x15, 0x53, 0xcf, 0x69, 0x75, 0x23, 0xa7, - 0xd5, 0x6a, 0x96, 0xa3, 0x39, 0x86, 0x55, 0xb3, 0x19, 0x64, 0xf6, 0xf9, 0x84, 0x11, 0x04, 0x2a, - 0xd6, 0xf5, 0x48, 0x42, 0xd7, 0x8a, 0x5e, 0xd3, 0x6d, 0x83, 0x23, 0x3d, 0xdc, 0xea, 0x69, 0x35, - 0xb4, 0x92, 0xd9, 0xea, 0xc7, 0x7e, 0x62, 0xb7, 0xf1, 0x8a, 0x55, 0xb1, 0xe8, 0x9f, 0x39, 0xf7, - 0x2f, 0xd6, 0xaa, 0xde, 0x01, 0x58, 0x6e, 0xae, 0x6a, 0xa5, 0x92, 0xd5, 0xac, 0x39, 0x64, 0x02, - 0x7a, 0x9d, 0x86, 0x56, 0xd6, 0x1b, 0x93, 0xca, 0x01, 0xe5, 0x48, 0x7f, 0x01, 0x7f, 0x91, 0xe7, - 0x61, 0xd4, 0x16, 0xbd, 0x8a, 0x35, 0xab, 0x56, 0xd2, 0x27, 0x33, 0x07, 0x94, 0x23, 0x43, 0x85, - 0x91, 0x56, 0xfb, 0x6d, 0xb7, 0x59, 0xfd, 0x04, 0x3c, 0xfd, 0x92, 0x3b, 0x57, 0x2d, 0xac, 0x77, - 0x1a, 0x65, 0xbd, 0x61, 0x17, 0xf4, 0x07, 0x4d, 0xdd, 0x76, 0xc8, 0x21, 0x18, 0xf2, 0xa0, 0x32, - 0xca, 0x38, 0xd2, 0x60, 0xab, 0x71, 0xa1, 0x4c, 0x9e, 0x82, 0xfe, 0xaa, 0xd6, 0xb8, 0xaf, 0xd3, - 0x0e, 0x19, 0xda, 0xa1, 0x8f, 0x35, 0x2c, 0x94, 0xd5, 0x2f, 0x2b, 0xf0, 0x4c, 0xcc, 0x10, 0x76, - 0xdd, 0xaa, 0xd9, 0x3a, 0xb9, 0x0d, 0xb0, 0xda, 0xdc, 0x2c, 0x5a, 0xb4, 0x75, 0x52, 0x39, 0xd0, - 0x75, 0x64, 0x60, 0x3a, 0x37, 0x15, 0x2f, 0xb5, 0xa9, 0x00, 0xa6, 0x39, 0xcd, 0xd1, 0x0a, 0xfd, - 0xab, 0xcd, 0x4d, 0x86, 0x97, 0xdc, 0x85, 0x01, 0x5b, 0x37, 0x4d, 0x8e, 0x30, 0xd3, 0x19, 0x42, - 0x70, 0x71, 0x30, 0x8c, 0xea, 0x1f, 0x2a, 0x70, 0x38, 0xd0, 0x67, 0xd5, 0xb2, 0xee, 0x2f, 0xe9, - 0x8e, 0x56, 0xd6, 0x1c, 0xed, 0x15, 0xc3, 0x59, 0x5f, 0xa2, 0xfc, 0x92, 0x65, 0xe8, 0xab, 0x62, - 0x2b, 0x9d, 0xaa, 0x81, 0xe9, 0xb3, 0x29, 0x06, 0xf6, 0x22, 0x2d, 0x08, 0x44, 0x89, 0xf3, 0x4b, - 0xc6, 0xa1, 0xc7, 0xb0, 0xf3, 0xcd, 0xcd, 0xc9, 0xae, 0x03, 0xca, 0x91, 0xbe, 0x02, 0xfb, 0xa1, - 0x3e, 0x0d, 0x59, 0x3a, 0xe9, 0xd7, 0x71, 0xc4, 0xbb, 0x5a, 0x43, 0xab, 0x72, 0xa9, 0xaa, 0x45, - 0x78, 0x2a, 0xf2, 0x2b, 0x0a, 0xe4, 0x1a, 0xf4, 0xd6, 0x69, 0x0b, 0xb2, 0xa0, 0x26, 0xb1, 0xc0, - 0x60, 0xf3, 0xdd, 0x5f, 0x7d, 0x67, 0xff, 0x8e, 0x02, 0xc2, 0xa9, 0x9f, 0x51, 0x60, 0x5f, 0x40, - 0xe8, 0x73, 0x7a, 0xdd, 0xb2, 0x0d, 0x27, 0x9d, 0x66, 0x2d, 0x02, 0xb4, 0x7e, 0x53, 0xd6, 0x07, - 0xa6, 0x9f, 0x95, 0x9b, 0x50, 0x4a, 0x91, 0x52, 0xf0, 0xc0, 0xab, 0xef, 0x2b, 0xb0, 0x3f, 0x96, - 0x2a, 0xe4, 0x5d, 0x87, 0xbe, 0x32, 0xb6, 0xa1, 0x2a, 0x2e, 0x24, 0x8d, 0xd7, 0x06, 0xdd, 0x14, - 0x6f, 0xb8, 0x5e, 0x73, 0x1a, 0x9b, 0x05, 0x81, 0x3a, 0xfb, 0x09, 0x18, 0xf2, 0x7d, 0x22, 0xa3, - 0xd0, 0x75, 0x5f, 0xdf, 0xc4, 0x49, 0x70, 0xff, 0x24, 0xe7, 0xa1, 0x67, 0x43, 0x33, 0x9b, 0x3a, - 0xb2, 0x7d, 0x28, 0x89, 0x0c, 0xc4, 0x55, 0x60, 0x10, 0x17, 0x32, 0xe7, 0x14, 0x75, 0x1f, 0xae, - 0x6c, 0x2e, 0xe3, 0xbc, 0x66, 0x6a, 0xb5, 0x92, 0x2e, 0x74, 0x60, 0x0d, 0x97, 0x65, 0xf8, 0x3b, - 0xce, 0xc4, 0x75, 0xe8, 0x5b, 0xc5, 0x36, 0x9c, 0x89, 0x44, 0x12, 0x10, 0x1e, 0x15, 0x41, 0x80, - 0xaa, 0x67, 0x51, 0xd7, 0x66, 0x2a, 0x95, 0x86, 0x5e, 0xd1, 0x1c, 0xfd, 0x65, 0xcb, 0x6c, 0x56, - 0x75, 0xae, 0x06, 0x93, 0xb0, 0x93, 0x8b, 0x97, 0xf1, 0xce, 0x7f, 0xaa, 0x4d, 0x64, 0x20, 0x04, - 0x88, 0xf4, 0xdd, 0x83, 0x5d, 0x1a, 0xff, 0x54, 0xdc, 0xa0, 0xdf, 0x38, 0xa1, 0x47, 0x92, 0x08, - 0x65, 0x2b, 0x15, 0x91, 0x8d, 0x6a, 0x7e, 0xec, 0xb6, 0xfa, 0x6a, 0xf4, 0xb0, 0x42, 0x6f, 0xb3, - 0xd0, 0x87, 0x14, 0xb2, 0xd1, 0xfa, 0x0b, 0xe2, 0x37, 0x79, 0x06, 0x40, 0x2c, 0x54, 0x66, 0x78, - 0xfa, 0x0b, 0xfd, 0x7c, 0xa5, 0xda, 0xea, 0x7f, 0x73, 0x53, 0x18, 0xc6, 0x8d, 0x3c, 0x39, 0xb0, - 0xb7, 0xc5, 0x13, 0x5f, 0x1b, 0x7e, 0xde, 0xce, 0x25, 0xf1, 0x26, 0x10, 0xcf, 0x30, 0x58, 0x3e, - 0x65, 0x25, 0xab, 0x51, 0x2e, 0xec, 0xd1, 0x22, 0xbf, 0xda, 0x64, 0x15, 0x26, 0x5b, 0xa3, 0x22, - 0x03, 0x7c, 0xd0, 0x4c, 0xca, 0x09, 0x9d, 0x10, 0x98, 0xbc, 0xcd, 0xb6, 0x7a, 0x0d, 0x0e, 0xfa, - 0x59, 0xf7, 0x41, 0xe1, 0xdc, 0xfa, 0x0c, 0x9d, 0x12, 0x70, 0x24, 0x26, 0xa8, 0x49, 0x18, 0x70, - 0x06, 0xe7, 0xa1, 0x97, 0x91, 0x8e, 0xb6, 0x2b, 0x91, 0x72, 0xef, 0xf4, 0x70, 0x0b, 0xc6, 0xa0, - 0xd5, 0xe3, 0x30, 0x49, 0x47, 0x9b, 0xd3, 0x6b, 0x56, 0x75, 0x4e, 0x2f, 0x19, 0x55, 0xcd, 0xe4, - 0x64, 0x8e, 0x43, 0x4f, 0xd9, 0x6d, 0x46, 0x12, 0xd9, 0x0f, 0xf5, 0x34, 0xec, 0x8d, 0x80, 0x40, - 0xb2, 0x26, 0x61, 0x67, 0x99, 0x35, 0x51, 0xa0, 0xee, 0x02, 0xff, 0xa9, 0x9e, 0x8c, 0x00, 0x13, - 0xca, 0x36, 0x01, 0xbd, 0x14, 0x39, 0x57, 0x35, 0xfc, 0xa5, 0x3a, 0x68, 0xde, 0x03, 0x40, 0x38, - 0xd8, 0xcb, 0x30, 0x4c, 0xfb, 0x15, 0x71, 0x0c, 0xae, 0x3a, 0xcf, 0x27, 0x9b, 0x10, 0x0f, 0x2a, - 0x9c, 0x8c, 0xa1, 0xb2, 0xb7, 0x51, 0x9d, 0x4d, 0x92, 0x80, 0xa0, 0xd9, 0xbf, 0x08, 0x94, 0xe0, - 0x22, 0x30, 0xe0, 0x50, 0x22, 0x12, 0xe4, 0x21, 0x0f, 0x3b, 0x3b, 0x5d, 0xd3, 0x1c, 0x50, 0x7d, - 0x2d, 0x14, 0x79, 0x70, 0x3b, 0x99, 0xc6, 0x07, 0x09, 0x69, 0x67, 0xbc, 0xd2, 0xd6, 0xe2, 0x1c, - 0x9c, 0xe0, 0xe0, 0xaa, 0xcf, 0x93, 0x48, 0x9b, 0x70, 0x01, 0xa4, 0xde, 0x85, 0x3d, 0x6c, 0x88, - 0xba, 0xe5, 0x30, 0x06, 0xbd, 0x7a, 0x61, 0x3b, 0x9a, 0xd3, 0xb4, 0x79, 0xe4, 0xc7, 0x7e, 0xb5, - 0x33, 0x40, 0x3f, 0x82, 0x4a, 0xed, 0xc3, 0x28, 0x9c, 0xfe, 0x4e, 0xd6, 0x91, 0x4f, 0x78, 0xb2, - 0x9f, 0x15, 0x18, 0x0a, 0x1c, 0x4c, 0x3d, 0x0d, 0x13, 0x01, 0xec, 0x52, 0xeb, 0xfa, 0xd5, 0x10, - 0x9b, 0x82, 0xa6, 0x2b, 0xd0, 0xcb, 0xba, 0xe1, 0x04, 0xca, 0x92, 0x84, 0x50, 0xea, 0x37, 0x32, - 0xb8, 0xb8, 0xdc, 0x6f, 0x22, 0xc2, 0x92, 0xa1, 0xca, 0x95, 0xba, 0x69, 0x54, 0x0d, 0x16, 0x74, - 0x74, 0x17, 0xd8, 0x0f, 0x32, 0x07, 0x40, 0xa3, 0xca, 0xa2, 0x6d, 0x94, 0x75, 0x1a, 0x71, 0x0d, - 0x4f, 0x1f, 0x4e, 0x22, 0x8a, 0x0e, 0xba, 0x6c, 0x94, 0xf5, 0x42, 0xbf, 0xc5, 0xff, 0x24, 0x45, - 0xd8, 0x4b, 0xd1, 0x15, 0x4b, 0xcd, 0x6a, 0xd3, 0xd4, 0x5c, 0xc8, 0x62, 0xcd, 0x72, 0x77, 0x1e, - 0x9a, 0x39, 0xd9, 0xed, 0x12, 0x92, 0x3f, 0xe4, 0x06, 0x2f, 0xdf, 0x7c, 0x67, 0xff, 0x53, 0x25, - 0xcb, 0xae, 0x5a, 0xb6, 0x5d, 0xbe, 0x3f, 0x65, 0x58, 0xb9, 0xaa, 0xe6, 0xac, 0x4f, 0x2d, 0xea, - 0x15, 0xad, 0xb4, 0x39, 0xa7, 0x97, 0x0a, 0x7b, 0x28, 0x96, 0x59, 0x81, 0xe4, 0x36, 0xe2, 0x88, - 0x1c, 0xe0, 0x41, 0x53, 0xab, 0x39, 0x86, 0xb3, 0x39, 0xd9, 0xd3, 0xf9, 0x00, 0x2f, 0x21, 0x0e, - 0xf5, 0x4f, 0x15, 0x34, 0x40, 0x81, 0x89, 0x45, 0xb9, 0xdd, 0x82, 0xd1, 0xd5, 0xe6, 0xa6, 0x5d, - 0xac, 0x37, 0x8c, 0x92, 0x5e, 0x34, 0xf5, 0x0d, 0xdd, 0x44, 0xa5, 0x3a, 0x98, 0x34, 0x59, 0x8b, - 0x6e, 0xc7, 0xc2, 0xb0, 0x0b, 0x7a, 0xd7, 0x85, 0xa4, 0xbf, 0xc9, 0x12, 0xec, 0x72, 0x43, 0x71, - 0x3f, 0xb6, 0x8c, 0x2c, 0xb6, 0x11, 0x0a, 0xdb, 0x42, 0xa7, 0x7e, 0x56, 0x81, 0xe1, 0xf9, 0xa6, - 0x69, 0xb6, 0xd4, 0x65, 0xab, 0x6a, 0x46, 0x3e, 0x0e, 0xbb, 0xaa, 0x46, 0x19, 0xe9, 0xd3, 0x6a, - 0xe5, 0xa2, 0x63, 0xad, 0x62, 0xd4, 0x76, 0x34, 0xd1, 0x6a, 0x19, 0x65, 0x4a, 0xd8, 0x4c, 0xad, - 0xbc, 0x72, 0x27, 0x8f, 0x01, 0xeb, 0x70, 0xd5, 0xd3, 0x6a, 0xad, 0xaa, 0x9f, 0x56, 0x30, 0x80, - 0xf2, 0x13, 0xbd, 0x45, 0x53, 0x40, 0xa6, 0x61, 0xe2, 0x0d, 0xc3, 0x59, 0x2f, 0x86, 0x09, 0x67, - 0xfb, 0x08, 0xe2, 0x7e, 0x5d, 0xf2, 0x93, 0x52, 0xc6, 0xd0, 0x28, 0x44, 0x09, 0x8a, 0x7d, 0x2e, - 0x68, 0x42, 0x12, 0xb9, 0xf7, 0x63, 0x69, 0x99, 0x91, 0x2a, 0xaa, 0x56, 0xe0, 0xbb, 0xcc, 0xa2, - 0x8d, 0x67, 0x2a, 0x13, 0xcb, 0x94, 0x16, 0x39, 0xbd, 0x1e, 0x3f, 0xe4, 0xd7, 0x8d, 0x34, 0x2c, - 0x71, 0x33, 0xf4, 0x73, 0x62, 0x37, 0xc4, 0x57, 0x8b, 0x9d, 0xdf, 0xbc, 0xa9, 0xd9, 0xeb, 0x2d, - 0xa7, 0x99, 0xc8, 0x56, 0xc8, 0x4d, 0x65, 0x22, 0xdc, 0xd4, 0x41, 0x18, 0x64, 0xa6, 0x69, 0x9d, - 0x22, 0x9e, 0xec, 0xa2, 0x12, 0x1f, 0xa0, 0x6d, 0x6c, 0x2c, 0xd5, 0xe4, 0xdb, 0x9f, 0x08, 0x32, - 0x90, 0xdd, 0x05, 0xe8, 0xf5, 0xed, 0xc3, 0x4f, 0x24, 0xb1, 0xbb, 0xd2, 0x30, 0xaa, 0x55, 0xbd, - 0xec, 0xa2, 0x5b, 0x74, 0x0d, 0x05, 0xc5, 0x59, 0x40, 0x04, 0xe2, 0x68, 0x61, 0x85, 0x1e, 0x4a, - 0xb4, 0xc6, 0xdc, 0x36, 0x96, 0x55, 0x13, 0x3e, 0xc2, 0x42, 0x09, 0xd6, 0x32, 0x53, 0x2e, 0x37, - 0x74, 0xdb, 0x4e, 0x39, 0xd2, 0x73, 0x30, 0xc2, 0x87, 0xd1, 0x18, 0x02, 0x1c, 0x6b, 0x58, 0xf3, - 0xa1, 0x55, 0x7f, 0x23, 0x03, 0xbb, 0x23, 0x39, 0x76, 0x77, 0x6a, 0x54, 0xdb, 0x18, 0x6e, 0x6a, - 0x5a, 0x77, 0xb4, 0x33, 0xad, 0x0c, 0xc2, 0x0d, 0x12, 0x84, 0x61, 0xce, 0xc8, 0x43, 0x0b, 0x20, - 0x17, 0xc1, 0x9a, 0x61, 0x9a, 0xda, 0xaa, 0xc9, 0xfc, 0x91, 0x2c, 0x02, 0x0e, 0xd4, 0x3a, 0x3f, - 0xe8, 0xf6, 0x9c, 0x1f, 0xb8, 0xd6, 0xa3, 0xa5, 0x4d, 0xcc, 0x65, 0xa0, 0x07, 0x73, 0x15, 0xc6, - 0xdd, 0xad, 0x96, 0x8c, 0xf2, 0x64, 0x2f, 0xdb, 0xad, 0x96, 0x8c, 0xb2, 0xfa, 0x3a, 0xc6, 0x5a, - 0x61, 0x69, 0x6f, 0xbf, 0x66, 0x35, 0xe0, 0x70, 0x1b, 0xb9, 0x6f, 0xff, 0x98, 0x97, 0x3d, 0x4b, - 0xd8, 0x6f, 0xb7, 0xa5, 0x82, 0x9c, 0xff, 0x51, 0x3c, 0x6b, 0x2f, 0x08, 0x2f, 0x22, 0xb0, 0x7e, - 0x61, 0xb8, 0x3c, 0xaa, 0xd4, 0xd6, 0x4b, 0xf7, 0x71, 0x8f, 0x41, 0x16, 0x60, 0x78, 0x55, 0xb7, - 0x9d, 0xe2, 0x6a, 0x73, 0x13, 0xd1, 0x64, 0xe4, 0xd1, 0x0c, 0xba, 0xa0, 0xf9, 0xe6, 0x26, 0x43, - 0x75, 0x0b, 0x46, 0x28, 0x2a, 0x7a, 0x92, 0xc6, 0x70, 0x75, 0xc9, 0xe3, 0x1a, 0x72, 0x61, 0x97, - 0x75, 0xd3, 0xa4, 0xc8, 0xd4, 0x59, 0x5c, 0xa8, 0x73, 0x7a, 0xc3, 0xd8, 0xa0, 0x91, 0x44, 0x07, - 0x53, 0xf8, 0xd3, 0x19, 0x14, 0x7b, 0x3c, 0x96, 0xff, 0xf7, 0x13, 0xf9, 0xc7, 0x5c, 0x8d, 0x5a, - 0x73, 0xb0, 0x1d, 0x61, 0x6d, 0x62, 0x40, 0xda, 0xb5, 0xf5, 0x80, 0x54, 0xfd, 0xa2, 0x02, 0x07, - 0xe2, 0xe9, 0xfe, 0x01, 0x88, 0x1a, 0x7f, 0xb3, 0x0b, 0xa6, 0x22, 0xed, 0xdb, 0x8a, 0x35, 0xab, - 0xd5, 0x4a, 0xba, 0x79, 0xaf, 0xbe, 0x62, 0xcd, 0x54, 0x5d, 0x73, 0xb4, 0x7d, 0x2e, 0x7d, 0x0e, - 0x06, 0x56, 0x35, 0x5b, 0x2f, 0x6a, 0x14, 0x6f, 0x1a, 0xf3, 0x0e, 0x2e, 0x1c, 0x23, 0x87, 0xcc, - 0xc3, 0xe0, 0x83, 0xa6, 0xe5, 0x08, 0x34, 0xdd, 0xf2, 0x68, 0x06, 0x28, 0x20, 0xe2, 0x59, 0x84, - 0x3e, 0xdb, 0x69, 0x68, 0x8e, 0x5e, 0x61, 0x7b, 0x88, 0xe1, 0xe9, 0xe3, 0x49, 0x13, 0xc9, 0xa6, - 0xc5, 0xa4, 0x17, 0x2a, 0xcb, 0x08, 0x57, 0x10, 0x18, 0xc8, 0x22, 0x8c, 0x34, 0xf4, 0x35, 0xbd, - 0xa1, 0xd7, 0x4a, 0x3a, 0x2e, 0x8b, 0x5e, 0x79, 0x45, 0x1b, 0x16, 0xb0, 0x6c, 0x5d, 0xfc, 0x53, - 0x06, 0x4e, 0x79, 0xc4, 0x13, 0xd0, 0xb2, 0x0f, 0x54, 0x48, 0xc1, 0xe9, 0xed, 0xda, 0x86, 0xe9, - 0xed, 0xfe, 0x20, 0xa6, 0xb7, 0xa7, 0xf3, 0xe9, 0x5d, 0xc3, 0x83, 0x9f, 0xe8, 0xd9, 0xdd, 0xbe, - 0x80, 0xae, 0x01, 0x47, 0x23, 0x1c, 0x7b, 0x47, 0xe3, 0x49, 0x87, 0x75, 0xdf, 0xcd, 0xc0, 0x53, - 0xe8, 0xfa, 0x5b, 0x03, 0x7d, 0x48, 0x82, 0xbb, 0x8b, 0x74, 0xf3, 0x51, 0x31, 0x6a, 0x69, 0xb4, - 0x0a, 0x41, 0x7c, 0x91, 0x61, 0x77, 0x27, 0x91, 0xe1, 0x7e, 0x1e, 0x19, 0xba, 0x9a, 0xd3, 0x97, - 0xef, 0x7f, 0xff, 0x9d, 0xfd, 0xac, 0x21, 0x3a, 0x48, 0xec, 0x8d, 0x09, 0x12, 0x77, 0xb6, 0x82, - 0xc4, 0x0d, 0x3c, 0xfb, 0x8b, 0xd3, 0x23, 0x74, 0x04, 0x77, 0x02, 0x61, 0xdb, 0x59, 0x89, 0xb0, - 0x2d, 0x4a, 0x76, 0x22, 0x78, 0xfb, 0x49, 0xf8, 0xa8, 0x94, 0x5e, 0x7d, 0x50, 0xe3, 0xff, 0x82, - 0x12, 0x0a, 0x80, 0x9e, 0xe0, 0x36, 0xf0, 0x61, 0x28, 0x8e, 0x8a, 0xd9, 0x0c, 0x6e, 0xfb, 0x3c, - 0xfc, 0x3c, 0xbf, 0x00, 0xf1, 0x84, 0x70, 0x4f, 0xec, 0x34, 0xe3, 0xd3, 0x0a, 0x80, 0x27, 0x60, - 0x78, 0x82, 0xeb, 0x5c, 0xfd, 0x92, 0x02, 0xe3, 0x77, 0xf5, 0x46, 0x5d, 0x77, 0x9a, 0x9a, 0xc9, - 0x66, 0x64, 0xd9, 0xd1, 0x1c, 0x9d, 0xdc, 0x85, 0x01, 0xce, 0x76, 0x6d, 0xcd, 0xc2, 0x23, 0x88, - 0xc4, 0xab, 0xec, 0x00, 0x9a, 0x85, 0xda, 0x9a, 0x55, 0xc0, 0xa9, 0x73, 0xff, 0x26, 0xf7, 0x60, - 0x70, 0xad, 0x59, 0x2b, 0x1b, 0xb5, 0x0a, 0x43, 0xc9, 0x8e, 0xa9, 0xa6, 0x53, 0xa0, 0x9c, 0x67, - 0xe0, 0x85, 0x01, 0xc4, 0xe3, 0xa2, 0x55, 0x3f, 0xdf, 0x05, 0xe3, 0xf3, 0x4d, 0xd3, 0x0c, 0x0a, - 0x96, 0xcc, 0x05, 0xce, 0x4f, 0x5e, 0x48, 0x3e, 0x03, 0xf7, 0x43, 0x8b, 0x13, 0xb6, 0x57, 0x61, - 0xb8, 0xce, 0xa9, 0xf0, 0xd2, 0x7d, 0x3c, 0x05, 0xdd, 0x74, 0x46, 0x6f, 0xee, 0x28, 0x0c, 0x09, - 0x4c, 0x74, 0x42, 0x3e, 0xe6, 0x4e, 0x88, 0xd3, 0x6c, 0xe8, 0x36, 0x43, 0xdc, 0x45, 0x11, 0x9f, - 0x4c, 0x42, 0x7c, 0xfd, 0x61, 0xdd, 0x68, 0x6c, 0xce, 0x33, 0xa8, 0xd6, 0x3c, 0xdf, 0xdc, 0xe1, - 0xce, 0x09, 0x6d, 0xa4, 0x98, 0xf3, 0x4c, 0x67, 0xd1, 0xfd, 0xa6, 0x30, 0xc1, 0x54, 0xb1, 0xd9, - 0xee, 0x21, 0xf2, 0x68, 0xb1, 0x67, 0x7b, 0x8e, 0x16, 0xf3, 0xbd, 0xd0, 0xed, 0xb2, 0xac, 0x9a, - 0xb8, 0xb7, 0x8d, 0x58, 0x95, 0x68, 0x09, 0x5e, 0x0c, 0x9e, 0xec, 0x1d, 0x6f, 0x77, 0x0c, 0x16, - 0x12, 0xa5, 0x38, 0xdf, 0xbb, 0x88, 0xe7, 0x42, 0xa1, 0x1e, 0x32, 0x9b, 0x40, 0x23, 0xc6, 0x80, - 0x08, 0x4a, 0x6f, 0x06, 0xf4, 0x2d, 0x3d, 0xa1, 0xfc, 0xd4, 0x2e, 0x8f, 0xce, 0x2a, 0xd8, 0x01, - 0xbd, 0x87, 0x14, 0xb9, 0x7a, 0x78, 0xe3, 0xeb, 0xc7, 0xd1, 0xba, 0x1e, 0xe4, 0x51, 0x0a, 0xbf, - 0x05, 0x67, 0x3f, 0xe5, 0xe2, 0xa6, 0x1b, 0xb8, 0xbb, 0x6a, 0x5d, 0x46, 0x51, 0x0f, 0x4b, 0x53, - 0x7c, 0xd2, 0xdc, 0x75, 0xa9, 0xf3, 0xa1, 0x04, 0x89, 0xbb, 0x96, 0x6d, 0xd0, 0x9c, 0xa8, 0x54, - 0x78, 0x5e, 0x87, 0x67, 0x63, 0xf0, 0x2c, 0xd4, 0xfc, 0xd2, 0xde, 0x7a, 0x82, 0x91, 0x0d, 0xb9, - 0xc0, 0x58, 0xd7, 0xd7, 0xd6, 0x98, 0xc4, 0x3f, 0xb8, 0x41, 0x5f, 0x44, 0xe5, 0x08, 0x24, 0xf0, - 0x88, 0xe4, 0x9d, 0x34, 0x93, 0x55, 0x0b, 0x49, 0xcf, 0x33, 0xe9, 0x62, 0x01, 0xf6, 0xb8, 0x9e, - 0x50, 0xc7, 0xe5, 0x37, 0x25, 0x67, 0x45, 0x39, 0x1e, 0xbc, 0xce, 0x65, 0x28, 0xd4, 0xfb, 0xf0, - 0x5c, 0x5b, 0xe1, 0x88, 0x93, 0x14, 0x31, 0xac, 0xbb, 0x98, 0x3e, 0x92, 0x68, 0x6e, 0xbd, 0x83, - 0x29, 0x7c, 0xb0, 0x4f, 0x66, 0x60, 0x57, 0x48, 0x1e, 0x64, 0x0f, 0xec, 0x34, 0xec, 0xa2, 0x69, - 0xd5, 0x2a, 0x14, 0x73, 0x5f, 0xa1, 0xd7, 0xb0, 0x17, 0xad, 0x5a, 0x65, 0xeb, 0x21, 0xf3, 0x1c, - 0x0c, 0xe8, 0x35, 0xa7, 0xb1, 0x19, 0x3a, 0x6a, 0x69, 0xbf, 0x67, 0xa6, 0x70, 0xcc, 0xec, 0xde, - 0x86, 0x51, 0x9d, 0x13, 0x5d, 0xc4, 0x10, 0x3c, 0x85, 0x01, 0x1f, 0x11, 0xc0, 0x4b, 0x14, 0x56, - 0x7d, 0x0c, 0xc7, 0xe5, 0x75, 0x54, 0x1c, 0x5e, 0xfa, 0xe6, 0xfe, 0x58, 0xa2, 0x47, 0x0a, 0x62, - 0xf3, 0x0b, 0xe1, 0x0a, 0x2e, 0xeb, 0xa8, 0xe0, 0x40, 0xc6, 0x8c, 0x55, 0x51, 0x43, 0x23, 0xe1, - 0x05, 0xb9, 0xdd, 0x5b, 0x88, 0x51, 0x50, 0x43, 0x99, 0x3f, 0xe2, 0x96, 0x37, 0xc6, 0xcf, 0x4a, - 0x91, 0xdc, 0x44, 0xcb, 0x1b, 0x8b, 0x03, 0xc9, 0x5e, 0xf2, 0x91, 0xdd, 0x89, 0xdb, 0xf7, 0x91, - 0x3e, 0x83, 0x3b, 0xe5, 0x98, 0x98, 0x49, 0x8e, 0xf2, 0x43, 0x89, 0x28, 0x44, 0xd6, 0xa4, 0x4f, - 0x3d, 0x3a, 0x88, 0xe0, 0xfc, 0x56, 0x41, 0xec, 0x51, 0x62, 0x4d, 0x1a, 0x0e, 0x5c, 0xf2, 0xa5, - 0x38, 0xba, 0xd6, 0x68, 0xa6, 0xc3, 0x14, 0xc7, 0x56, 0xde, 0x24, 0xcf, 0x1a, 0xe3, 0x88, 0xd5, - 0xf3, 0x98, 0x2e, 0x14, 0xed, 0xd1, 0x90, 0x92, 0x71, 0xe8, 0x61, 0xc9, 0xad, 0x0a, 0x4d, 0x6e, - 0x65, 0x3f, 0xd4, 0xbd, 0x98, 0x4f, 0xb0, 0x64, 0x95, 0x9b, 0xa6, 0x4e, 0xa3, 0x3e, 0x9e, 0xf3, - 0xf6, 0x1a, 0xe6, 0x3f, 0xf8, 0x3e, 0x89, 0x5c, 0x03, 0xdf, 0x7c, 0x26, 0xa6, 0x9b, 0xdc, 0x60, - 0x19, 0xbd, 0x0c, 0x01, 0xce, 0xdf, 0x1e, 0xd8, 0xcd, 0xc4, 0x16, 0x70, 0x98, 0x6a, 0x19, 0xd3, - 0x22, 0x3e, 0x58, 0xa3, 0xfe, 0xc0, 0x7b, 0xff, 0x52, 0xd0, 0xdf, 0xd0, 0x1a, 0xe5, 0xbb, 0x96, - 0x51, 0x73, 0xa4, 0xf2, 0xd6, 0x4e, 0xc1, 0x44, 0x5d, 0x67, 0x9b, 0x82, 0xba, 0x65, 0x99, 0x45, - 0xc7, 0xa8, 0xea, 0xb6, 0xa3, 0x55, 0xeb, 0xd4, 0x06, 0x77, 0x15, 0xc6, 0xf1, 0xeb, 0x5d, 0xcb, - 0x32, 0x57, 0xf8, 0x37, 0xf5, 0x67, 0xf9, 0xb5, 0x66, 0xc4, 0x98, 0xc8, 0xe1, 0x2a, 0x3c, 0xc5, - 0x9d, 0x1f, 0xcd, 0x4d, 0x2e, 0x36, 0x68, 0xaf, 0x62, 0x9d, 0x76, 0x63, 0x74, 0xc8, 0x99, 0xd4, - 0x49, 0xaf, 0x1a, 0x78, 0xc7, 0x52, 0x0f, 0xa2, 0x71, 0xf3, 0x7c, 0x99, 0xd5, 0xaa, 0x75, 0xcd, - 0xa8, 0xd4, 0xb8, 0x08, 0xbe, 0xd7, 0x8d, 0x06, 0x2c, 0xb2, 0x0f, 0xd2, 0xba, 0x01, 0x4f, 0xbb, - 0x34, 0xba, 0x93, 0x80, 0x54, 0x96, 0xb0, 0x8b, 0x77, 0xf3, 0x75, 0x3a, 0x79, 0x0f, 0xac, 0xb1, - 0x35, 0xea, 0x1d, 0x80, 0x9a, 0x9b, 0xbd, 0x4e, 0xdc, 0x27, 0xf2, 0x53, 0x0a, 0x1c, 0x0e, 0x0c, - 0x4c, 0x85, 0x20, 0x46, 0xb7, 0x4b, 0xeb, 0xba, 0xab, 0xaf, 0x78, 0x7c, 0x3d, 0x95, 0x7c, 0x2c, - 0xc8, 0xb9, 0x62, 0x33, 0x64, 0x99, 0x85, 0x83, 0xbe, 0xa1, 0xdd, 0x26, 0xde, 0x69, 0x19, 0x11, - 0x93, 0x1f, 0x83, 0xbd, 0x8e, 0xe5, 0x68, 0x66, 0xa4, 0x90, 0x52, 0xb8, 0xd0, 0x09, 0x8a, 0x25, - 0x24, 0x22, 0xf2, 0x4b, 0x0a, 0x1c, 0xe3, 0x0a, 0x26, 0xc7, 0x6a, 0x77, 0x47, 0xac, 0x1e, 0xc1, - 0x41, 0x56, 0xda, 0x72, 0x5c, 0x85, 0x83, 0x82, 0xa0, 0x58, 0xce, 0x7b, 0xe4, 0xd5, 0xf3, 0x19, - 0x3e, 0x72, 0xe4, 0x04, 0xa8, 0x17, 0x51, 0x47, 0x17, 0xec, 0x3b, 0x75, 0x47, 0x2f, 0xdf, 0x69, - 0x3a, 0x77, 0xd6, 0x58, 0x07, 0xbb, 0x7d, 0x22, 0xec, 0x1c, 0x2a, 0x6f, 0x24, 0x30, 0x2a, 0xef, - 0x01, 0x18, 0x34, 0xec, 0xa2, 0xe5, 0x7e, 0x2f, 0x5a, 0x4d, 0x07, 0xa3, 0x2a, 0x30, 0x04, 0x88, - 0xfa, 0x1c, 0x9e, 0xfa, 0x84, 0x70, 0xe0, 0xa1, 0x98, 0xb0, 0x57, 0x73, 0x18, 0xbb, 0x27, 0x74, - 0xc4, 0x41, 0x13, 0x4c, 0x8a, 0x7a, 0x05, 0x1d, 0xe1, 0xbc, 0xae, 0xcf, 0x19, 0x36, 0x3b, 0x76, - 0xc3, 0x88, 0xd7, 0xe3, 0xc2, 0xe3, 0x99, 0xfe, 0xae, 0x82, 0x6e, 0x30, 0x0e, 0x01, 0xd2, 0xf0, - 0x0c, 0x80, 0x63, 0xe8, 0x0d, 0x71, 0x5d, 0xa4, 0x1c, 0xe9, 0x2e, 0xf4, 0xbb, 0x2d, 0xec, 0x54, - 0xa7, 0x00, 0x83, 0x22, 0xfa, 0x6e, 0x1d, 0x1b, 0x24, 0x46, 0x27, 0x9e, 0x01, 0x57, 0x0c, 0xbd, - 0x41, 0x47, 0x1b, 0xd0, 0x5a, 0x43, 0x93, 0x3b, 0x30, 0x20, 0x8c, 0x9a, 0x63, 0xe2, 0x81, 0xc1, - 0x54, 0x0a, 0x94, 0x2b, 0x2b, 0x8b, 0x05, 0xe0, 0xf6, 0xcc, 0x31, 0x85, 0x05, 0xf3, 0x74, 0xe3, - 0x8a, 0xca, 0x85, 0xf2, 0x29, 0x7e, 0x81, 0x16, 0xd9, 0x47, 0x78, 0xe6, 0xdd, 0x6b, 0xba, 0x5e, - 0x2c, 0xe3, 0xf7, 0xd6, 0x6a, 0x52, 0x52, 0x71, 0x2d, 0xf0, 0x8e, 0xad, 0x85, 0x1b, 0xd5, 0x6b, - 0xe8, 0x68, 0x30, 0xdf, 0x7b, 0xc9, 0xb0, 0xab, 0x9a, 0x53, 0xf2, 0x9c, 0x61, 0xee, 0x87, 0x81, - 0x72, 0xd3, 0x76, 0x8a, 0x6b, 0x5a, 0xc9, 0xb1, 0x58, 0x69, 0x4a, 0x57, 0x01, 0xdc, 0xa6, 0x79, - 0xda, 0xa2, 0xfe, 0x6e, 0x17, 0x8c, 0x04, 0xa0, 0x89, 0x0a, 0xbe, 0x3d, 0x91, 0x7c, 0x22, 0x26, - 0x99, 0x81, 0x7e, 0x6d, 0x43, 0x33, 0x52, 0x67, 0x40, 0xb4, 0xa0, 0xc8, 0x79, 0xe8, 0xa1, 0x46, - 0x20, 0x4d, 0x88, 0xcf, 0x20, 0xc8, 0x3c, 0x0c, 0x62, 0xa6, 0x7b, 0x71, 0xdd, 0x32, 0xcb, 0x9e, - 0x4b, 0x96, 0xf6, 0xb7, 0x3f, 0x08, 0x78, 0xd3, 0x32, 0xcb, 0xe4, 0x45, 0x18, 0xd6, 0x1f, 0xd6, - 0xf5, 0x92, 0xbb, 0x7e, 0x19, 0x2d, 0xbd, 0xf2, 0x98, 0x86, 0x38, 0x28, 0xb5, 0x3e, 0x64, 0x16, - 0xa0, 0x6c, 0xac, 0xe1, 0x05, 0x0e, 0x3b, 0x7e, 0x97, 0xdc, 0x01, 0xb5, 0xc0, 0xd4, 0x9f, 0x40, - 0xdf, 0x1e, 0x21, 0x66, 0xd4, 0xb6, 0xd7, 0x80, 0x70, 0xd6, 0xab, 0xe2, 0x2b, 0x86, 0x32, 0x1f, - 0x95, 0xa8, 0x14, 0xe0, 0x28, 0x0b, 0xbb, 0x56, 0x83, 0x63, 0xa8, 0x87, 0x71, 0xf1, 0x63, 0x57, - 0x37, 0x50, 0xcc, 0xb7, 0x66, 0x4b, 0x98, 0xaa, 0x5f, 0xcb, 0xc0, 0x6e, 0x4f, 0x17, 0xb6, 0xd9, - 0xa2, 0xf3, 0xf9, 0x43, 0xae, 0x4f, 0xea, 0xaf, 0xf2, 0x68, 0x3e, 0x76, 0x06, 0x51, 0x8a, 0x35, - 0xc8, 0xf2, 0x01, 0xe9, 0x09, 0xba, 0x77, 0x74, 0xa9, 0xb4, 0x99, 0xc8, 0xf9, 0x2f, 0xec, 0x59, - 0x8d, 0x1e, 0x57, 0xb8, 0xa1, 0x80, 0x49, 0x74, 0x43, 0x69, 0xc3, 0x76, 0x8c, 0x92, 0x90, 0xed, - 0x79, 0x18, 0xf2, 0x7d, 0x20, 0x04, 0xba, 0x5d, 0xbb, 0x8e, 0x36, 0x9e, 0xfe, 0xed, 0x8a, 0xb0, - 0x55, 0x1a, 0xd4, 0x5d, 0x60, 0x3f, 0x54, 0x1b, 0x3d, 0x58, 0xc2, 0x18, 0x62, 0xd3, 0x0a, 0xb6, - 0x68, 0x95, 0xc9, 0x92, 0xf7, 0xe1, 0x29, 0x78, 0x80, 0xdd, 0xf8, 0x7f, 0xc9, 0x70, 0xac, 0x97, - 0xb5, 0xa6, 0x49, 0xdd, 0x84, 0x60, 0xe4, 0xcf, 0x15, 0x98, 0x08, 0x7e, 0xc1, 0xe1, 0x9f, 0x87, - 0xd1, 0xaa, 0x66, 0x3b, 0x7a, 0x83, 0xdf, 0x51, 0xea, 0xdc, 0x91, 0x8e, 0xb0, 0xf6, 0x19, 0xde, - 0x4c, 0x4e, 0xc0, 0x78, 0x59, 0x6c, 0x01, 0x3c, 0xdd, 0xd9, 0x55, 0xc8, 0x58, 0xeb, 0x5b, 0x0b, - 0xe4, 0x30, 0x0c, 0xdb, 0x75, 0xcb, 0xf1, 0x74, 0x66, 0x97, 0x41, 0x43, 0x6e, 0xab, 0xaf, 0x5b, - 0xe9, 0x8d, 0xe9, 0xe3, 0x9e, 0x6e, 0xdd, 0xac, 0x9b, 0xdb, 0x2a, 0xba, 0xa9, 0x73, 0x68, 0xf7, - 0x71, 0xe3, 0x3b, 0x37, 0xdf, 0xb0, 0xaa, 0x94, 0x25, 0xcf, 0x59, 0xd7, 0x86, 0xfb, 0xbb, 0xe8, - 0x3f, 0xc9, 0x1c, 0xa4, 0x8d, 0xfc, 0xb6, 0x95, 0xa7, 0x51, 0x45, 0x60, 0xc1, 0x39, 0x49, 0xdc, - 0x1b, 0xf3, 0xed, 0xf5, 0x4d, 0xc3, 0x76, 0xac, 0x86, 0x51, 0x12, 0xb1, 0x56, 0xc9, 0xf2, 0x84, - 0x52, 0x89, 0x28, 0x1c, 0x34, 0x2d, 0x71, 0x28, 0xc4, 0xb9, 0xc0, 0x10, 0x0f, 0x09, 0xe9, 0x07, - 0x99, 0x2a, 0x04, 0x1f, 0xa2, 0x41, 0xc7, 0xf3, 0x4b, 0xfd, 0x13, 0x05, 0xc6, 0xe8, 0x67, 0x36, - 0xac, 0x1b, 0x5c, 0xb9, 0x5b, 0x41, 0xf2, 0x02, 0x10, 0x36, 0x4c, 0xa5, 0x61, 0x35, 0xeb, 0x6e, - 0x38, 0x6a, 0xeb, 0x25, 0x54, 0xf1, 0x51, 0xfa, 0xe5, 0x06, 0x7e, 0x58, 0xd6, 0x4b, 0x64, 0x0f, - 0xec, 0xac, 0x6a, 0x0f, 0x8b, 0x5a, 0x45, 0x47, 0x85, 0xef, 0xad, 0x6a, 0x0f, 0x67, 0x2a, 0x3a, - 0x99, 0x82, 0x31, 0xa3, 0x56, 0x32, 0x9b, 0x2e, 0xbd, 0xda, 0x1b, 0xc5, 0x75, 0x36, 0x08, 0xa6, - 0xf4, 0xed, 0xc2, 0x4f, 0x05, 0xed, 0x0d, 0x1c, 0xdd, 0x55, 0x3c, 0xde, 0x5f, 0xec, 0xe5, 0xe9, - 0x2d, 0x6f, 0x61, 0x04, 0xdb, 0xf9, 0x1e, 0x5d, 0xfd, 0x6d, 0x05, 0xcf, 0xeb, 0x45, 0x8d, 0x85, - 0xe6, 0x18, 0xa6, 0xe1, 0x6c, 0x4a, 0xdd, 0x59, 0x96, 0x60, 0x37, 0xe3, 0x0f, 0x49, 0x72, 0x43, - 0x54, 0x97, 0x71, 0x99, 0x40, 0x2c, 0x62, 0xbe, 0x0a, 0x63, 0x4e, 0xb8, 0x51, 0xfd, 0x64, 0xc6, - 0xa7, 0x9b, 0x5e, 0x12, 0x45, 0x2d, 0x06, 0x6c, 0x88, 0x56, 0xbc, 0xe1, 0xdb, 0xdf, 0xd6, 0x1d, - 0xb6, 0x40, 0xc8, 0x2b, 0x30, 0xca, 0x39, 0x10, 0x13, 0x96, 0x09, 0x5d, 0x68, 0x61, 0x05, 0xaf, - 0xb8, 0x84, 0xc1, 0x9e, 0x1e, 0xc3, 0x33, 0x82, 0x58, 0xf8, 0x27, 0x72, 0x13, 0x06, 0xbc, 0x12, - 0xeb, 0xa2, 0x5a, 0xf6, 0x9c, 0xa4, 0x96, 0x15, 0xa0, 0x21, 0x64, 0x2a, 0x0a, 0x89, 0xf2, 0x46, - 0x4d, 0xe3, 0x53, 0xd1, 0xee, 0x5e, 0x55, 0xad, 0x60, 0xb2, 0x75, 0x00, 0x48, 0x98, 0xc7, 0xc0, - 0xb5, 0x4f, 0xa2, 0xbc, 0x18, 0x0e, 0x14, 0x4a, 0xf0, 0xd6, 0xe7, 0x01, 0x1c, 0x8b, 0xbc, 0xfa, - 0x9f, 0xb5, 0x6a, 0x65, 0x83, 0x65, 0x89, 0x6d, 0x77, 0xe5, 0xf1, 0x6f, 0x75, 0xc1, 0xc1, 0xd0, - 0xad, 0x74, 0x70, 0xbc, 0x1f, 0xdc, 0xfc, 0x8e, 0x1b, 0x30, 0xe8, 0x34, 0x8c, 0x4a, 0x45, 0x6f, - 0xdc, 0x4d, 0x7b, 0xc1, 0xe8, 0x03, 0x6c, 0x9f, 0xe7, 0x71, 0x18, 0x76, 0x1a, 0x36, 0xbd, 0xce, - 0xa7, 0x51, 0x69, 0x5f, 0x7e, 0xe0, 0xfd, 0x77, 0xf6, 0xf3, 0xa6, 0x02, 0xff, 0x23, 0x90, 0x0e, - 0xb2, 0x33, 0x26, 0x1d, 0xa4, 0xaf, 0x95, 0x0e, 0xf2, 0x29, 0xc5, 0x97, 0x54, 0x97, 0xa8, 0x14, - 0xa2, 0xe8, 0xd3, 0x9f, 0x92, 0x70, 0x39, 0x55, 0x4a, 0x42, 0x10, 0xaf, 0x48, 0x4c, 0xb8, 0x84, - 0x06, 0x84, 0x27, 0xf0, 0xa7, 0x4a, 0xaa, 0x54, 0x7f, 0x8f, 0x1f, 0x84, 0x45, 0x80, 0x23, 0xdd, - 0x33, 0xd0, 0x9d, 0x37, 0x84, 0x17, 0x39, 0x26, 0x41, 0xb5, 0x27, 0x7d, 0x82, 0x82, 0xba, 0x28, - 0x66, 0xec, 0xfb, 0xbc, 0x22, 0x33, 0x2d, 0x0a, 0x17, 0x54, 0x1c, 0xac, 0xfb, 0xef, 0x3d, 0xd3, - 0x31, 0xfb, 0x07, 0x3c, 0xb2, 0x8c, 0x45, 0xf2, 0xa1, 0x62, 0xf9, 0xeb, 0x0a, 0xec, 0x0a, 0x7d, - 0x7b, 0xa2, 0x8b, 0xde, 0xbf, 0x4c, 0xba, 0x82, 0xcb, 0x24, 0x64, 0xf7, 0xba, 0x23, 0xae, 0x0c, - 0x97, 0x70, 0xe1, 0xe0, 0x6d, 0xb2, 0x63, 0x55, 0x8d, 0xd2, 0xf5, 0x87, 0x7a, 0xa9, 0xe9, 0x2a, - 0xf7, 0xbc, 0xae, 0x2f, 0x35, 0x4d, 0xc7, 0xa8, 0x9b, 0x86, 0xde, 0x90, 0x92, 0xe9, 0x06, 0x5e, - 0xa1, 0xca, 0xa0, 0x43, 0xe9, 0xce, 0x02, 0x54, 0x45, 0x6b, 0x9a, 0x69, 0xf4, 0x80, 0xa9, 0xe7, - 0x78, 0xad, 0x35, 0x15, 0xea, 0xb2, 0xa3, 0xdd, 0xd7, 0x6f, 0x34, 0xb4, 0x56, 0x76, 0xe6, 0x24, - 0xec, 0xac, 0xb8, 0xbf, 0x75, 0x9d, 0x1f, 0x0f, 0xe1, 0x4f, 0xf5, 0x73, 0xa2, 0x94, 0x3a, 0x04, - 0x8a, 0x04, 0x5e, 0x86, 0x1e, 0xda, 0x19, 0x0f, 0x3f, 0x12, 0x5d, 0x2a, 0x43, 0xc2, 0xe0, 0x19, - 0x14, 0x59, 0x86, 0xd6, 0x25, 0x5e, 0x91, 0x21, 0x92, 0xa8, 0xe8, 0x12, 0xf7, 0x70, 0x0c, 0xd7, - 0xb0, 0xee, 0xfb, 0xad, 0xae, 0xa0, 0x9d, 0xa0, 0xbf, 0x66, 0x9a, 0xce, 0xba, 0xd5, 0x30, 0x7e, - 0x9c, 0xa6, 0x70, 0x86, 0x38, 0x6e, 0xf8, 0x39, 0x6e, 0x78, 0xe7, 0x22, 0xe3, 0x9f, 0x8b, 0x8f, - 0xe1, 0xf1, 0x51, 0x14, 0x56, 0x9c, 0x8c, 0xd3, 0xd0, 0x8b, 0xe9, 0xa9, 0x4c, 0x52, 0xcf, 0xa0, - 0xa4, 0x76, 0x87, 0x25, 0xb5, 0x50, 0x73, 0x0a, 0xd8, 0x59, 0x1c, 0x5b, 0x86, 0x31, 0xdb, 0x6d, - 0x09, 0x76, 0x43, 0xde, 0x03, 0xf1, 0xd0, 0x22, 0xe7, 0x9b, 0xb0, 0xf3, 0x57, 0x0a, 0x55, 0x4c, - 0x43, 0xe4, 0x28, 0x05, 0x64, 0xc8, 0x79, 0xa6, 0x73, 0x2f, 0x45, 0x63, 0xcb, 0x9c, 0x94, 0x47, - 0xcc, 0x16, 0x42, 0x1f, 0x3d, 0x05, 0xfd, 0xa2, 0x6e, 0x93, 0x8c, 0xc3, 0xa8, 0xfb, 0x6f, 0xf1, - 0x5e, 0xcd, 0xae, 0xeb, 0x25, 0x63, 0xcd, 0xd0, 0xcb, 0xa3, 0x3b, 0xc8, 0x4e, 0xe8, 0xca, 0x37, - 0x37, 0x47, 0x15, 0xd2, 0x07, 0xdd, 0xcb, 0xba, 0x69, 0x8e, 0x66, 0x8e, 0xbe, 0x0c, 0xe3, 0x51, - 0x49, 0xb9, 0x2e, 0x02, 0x0f, 0x2c, 0x45, 0x3c, 0xba, 0x83, 0x8c, 0xc1, 0x88, 0xbb, 0xf7, 0x79, - 0xc5, 0x6a, 0xd8, 0xce, 0x8a, 0x95, 0xd7, 0x6d, 0x67, 0x54, 0xe1, 0x8d, 0xee, 0xaf, 0x15, 0x8b, - 0x7e, 0x1a, 0xcd, 0x4c, 0x7f, 0x7f, 0x1d, 0x7a, 0xe8, 0x3c, 0x92, 0x77, 0x15, 0xd8, 0xbd, 0x78, - 0x32, 0x60, 0x73, 0xf3, 0x96, 0x75, 0x9f, 0x5c, 0x6d, 0xfb, 0x46, 0x45, 0xb2, 0xc9, 0xcf, 0x5e, - 0xeb, 0x1c, 0x01, 0x93, 0xa4, 0x3a, 0xff, 0x33, 0x5f, 0xff, 0xf6, 0x67, 0x32, 0xd7, 0xc8, 0x95, - 0x5c, 0xc2, 0x53, 0x38, 0xad, 0x6d, 0x6a, 0x6e, 0xf1, 0xa4, 0x20, 0x3f, 0xf7, 0x48, 0x98, 0xa6, - 0xc7, 0xe4, 0x4d, 0x05, 0x46, 0x16, 0x4f, 0x0a, 0x2f, 0x4a, 0xd9, 0x3b, 0x2f, 0x45, 0x5d, 0x94, - 0xe3, 0xce, 0x5e, 0xe8, 0x04, 0x14, 0x59, 0xba, 0x46, 0x59, 0xba, 0x40, 0xce, 0x25, 0xb1, 0xe4, - 0x6e, 0xa6, 0x63, 0x99, 0xf9, 0xbc, 0x02, 0x63, 0x11, 0x2f, 0xad, 0x90, 0x33, 0x6d, 0xa9, 0x8a, - 0x7c, 0xb8, 0x25, 0x7b, 0x36, 0x35, 0x1c, 0xb2, 0x32, 0x4d, 0x59, 0x79, 0x81, 0x1c, 0xcd, 0x49, - 0xbc, 0x69, 0x84, 0x44, 0xfe, 0xb5, 0x02, 0x24, 0xfc, 0xb4, 0x09, 0xb9, 0xd0, 0xd1, 0x7b, 0x28, - 0x8c, 0xfe, 0x8b, 0x5b, 0x78, 0x4b, 0x45, 0xbd, 0x4a, 0x79, 0x38, 0x4f, 0xce, 0xca, 0xf0, 0x90, - 0xb3, 0xc3, 0x94, 0xbf, 0xa9, 0xc0, 0xae, 0x10, 0x7e, 0x09, 0xe5, 0x8a, 0x7b, 0x3f, 0x20, 0x7b, - 0xa1, 0x13, 0x50, 0xe4, 0xe6, 0x0a, 0xe5, 0xe6, 0x1c, 0x39, 0xd3, 0x19, 0x37, 0xe4, 0x2f, 0x14, - 0x18, 0x0d, 0xbe, 0xdd, 0x42, 0xce, 0x49, 0xeb, 0x47, 0xe0, 0x39, 0x98, 0xec, 0xf9, 0x0e, 0x20, - 0x91, 0x93, 0xcb, 0x94, 0x93, 0xb3, 0xe4, 0xb4, 0x14, 0x27, 0x7a, 0x90, 0xe6, 0xbf, 0x52, 0x60, - 0x24, 0xf0, 0x20, 0x0a, 0x69, 0xaf, 0xe7, 0xd1, 0xcf, 0xc9, 0x64, 0xcf, 0xa5, 0x07, 0x4c, 0x63, - 0xbf, 0x44, 0x43, 0xe0, 0xd9, 0x98, 0xdc, 0x23, 0x94, 0xce, 0x63, 0x2a, 0x97, 0xe0, 0xfb, 0x2e, - 0x24, 0x35, 0x59, 0x29, 0xe4, 0x12, 0xf7, 0x98, 0x4c, 0x4a, 0xb9, 0x04, 0x1f, 0xc2, 0x21, 0xff, - 0xa6, 0xc0, 0xee, 0xc8, 0x47, 0x3a, 0xc8, 0x65, 0x79, 0x9a, 0x22, 0x5e, 0x79, 0xc9, 0x5e, 0xe9, - 0x14, 0x1c, 0xf9, 0xba, 0x4d, 0xf9, 0xba, 0x49, 0xe6, 0xd3, 0xf1, 0xe5, 0xc5, 0xe5, 0x33, 0xd2, - 0xef, 0x28, 0x30, 0x11, 0xfd, 0x1a, 0x09, 0xe9, 0x90, 0x54, 0x21, 0xbd, 0xab, 0x1d, 0xc3, 0x23, - 0xaf, 0xb3, 0x94, 0xd7, 0xcb, 0xe4, 0x62, 0xe7, 0xbc, 0xda, 0xe4, 0x4b, 0x0a, 0x0c, 0x7a, 0x9f, - 0x77, 0x21, 0xa7, 0xda, 0x92, 0x15, 0xf1, 0xec, 0x4d, 0xf6, 0x74, 0x4a, 0x28, 0x64, 0x21, 0x4f, - 0x59, 0xb8, 0x44, 0x2e, 0x48, 0xb1, 0xe0, 0x7b, 0xb8, 0x26, 0xf7, 0x88, 0xfe, 0x7c, 0x4c, 0xbe, - 0xa0, 0xc0, 0x90, 0xef, 0x81, 0x1a, 0x92, 0x8e, 0x18, 0x21, 0x90, 0x33, 0x69, 0xc1, 0x90, 0x89, - 0x8b, 0x94, 0x89, 0xd3, 0xe4, 0x64, 0x7a, 0x26, 0x6c, 0xf2, 0xfb, 0x0a, 0x0c, 0x78, 0xde, 0x4b, - 0x20, 0x27, 0xdb, 0xbb, 0x8d, 0xd0, 0x3b, 0x0f, 0xd9, 0x53, 0xe9, 0x80, 0x90, 0xee, 0xe3, 0x94, - 0xee, 0xa3, 0xe4, 0x48, 0xdb, 0x10, 0x06, 0x0f, 0xea, 0xc8, 0xe7, 0x14, 0x00, 0xcf, 0xdb, 0x18, - 0xd3, 0x29, 0x86, 0xe5, 0xa4, 0x9e, 0x4c, 0x05, 0x83, 0x94, 0x5e, 0xa2, 0x94, 0x9e, 0x21, 0xa7, - 0x64, 0x29, 0xf5, 0xad, 0xe1, 0x2f, 0x28, 0x30, 0x12, 0x78, 0x96, 0x42, 0xc2, 0x89, 0x44, 0x3f, - 0xa9, 0x21, 0xe1, 0x44, 0x62, 0x5e, 0xc0, 0x50, 0x4f, 0x53, 0x26, 0x72, 0xe4, 0x58, 0x5b, 0x26, - 0xd6, 0x9a, 0xa6, 0x59, 0xe4, 0x73, 0xfe, 0x95, 0xf0, 0x9b, 0x24, 0x67, 0x52, 0xd2, 0x20, 0x1f, - 0x21, 0x46, 0x3f, 0x74, 0x91, 0x22, 0xd8, 0xf5, 0x90, 0xee, 0x93, 0xc1, 0x17, 0x15, 0x18, 0xf2, - 0x05, 0xd2, 0x12, 0x8b, 0x34, 0x32, 0x66, 0x3f, 0x93, 0x16, 0x2c, 0x4d, 0x48, 0x45, 0x59, 0xb0, - 0x38, 0xac, 0x8f, 0x81, 0xb7, 0x15, 0x18, 0x0d, 0xd6, 0xf7, 0x4a, 0xb8, 0xee, 0x98, 0x07, 0x2e, - 0x24, 0x5c, 0x77, 0xdc, 0x63, 0x09, 0xea, 0x2d, 0xca, 0xc9, 0x75, 0x32, 0x2b, 0xc7, 0x89, 0x6f, - 0x2d, 0xe4, 0x1e, 0xf9, 0xce, 0x8f, 0x1e, 0x93, 0xff, 0x52, 0x60, 0x32, 0xee, 0xa9, 0x04, 0xd2, - 0x7e, 0xe3, 0xd7, 0xe6, 0x75, 0x8d, 0xec, 0xcc, 0x16, 0x30, 0x20, 0xbb, 0xf7, 0x28, 0xbb, 0x77, - 0xc8, 0x52, 0x27, 0xec, 0x22, 0xab, 0x22, 0x04, 0xe3, 0xf7, 0x8f, 0x8f, 0xc9, 0xb7, 0xdd, 0x0d, - 0x4c, 0xe8, 0xad, 0x13, 0x99, 0x0d, 0x4c, 0xdc, 0x3b, 0x2d, 0x32, 0x1b, 0x98, 0xd8, 0xc7, 0x55, - 0x52, 0xb3, 0x59, 0x5c, 0xdd, 0xc4, 0x32, 0xbe, 0x44, 0xf9, 0x7e, 0x45, 0x81, 0xd1, 0xe0, 0xe3, - 0xaa, 0x12, 0x6a, 0x1b, 0xf3, 0xe4, 0x6b, 0xf6, 0x7c, 0x07, 0x90, 0xc8, 0xe0, 0x05, 0xca, 0xe0, - 0x29, 0x32, 0x9d, 0xc4, 0x20, 0x17, 0x61, 0x80, 0x8b, 0xef, 0x28, 0xb0, 0xb7, 0xb5, 0x1e, 0x56, - 0x1a, 0x5a, 0xcd, 0x36, 0xf4, 0xda, 0x13, 0x5d, 0x85, 0xf2, 0xf2, 0x72, 0x38, 0xb9, 0x45, 0x89, - 0xf5, 0xf8, 0xf7, 0xa8, 0x96, 0xfe, 0x1a, 0x2d, 0x49, 0xb5, 0x8c, 0x7c, 0x38, 0x43, 0x52, 0x2d, - 0xa3, 0x9f, 0xcb, 0x90, 0xdb, 0xf9, 0x30, 0xcf, 0x1b, 0x2c, 0x45, 0xf3, 0x99, 0xcf, 0xff, 0x50, - 0x60, 0x32, 0xee, 0x6d, 0x0e, 0x09, 0x3b, 0xd3, 0xe6, 0x71, 0x10, 0x09, 0x3b, 0xd3, 0xee, 0x61, - 0x10, 0x75, 0x91, 0x72, 0x3a, 0x4f, 0xe6, 0x24, 0xcf, 0xa8, 0x92, 0xf9, 0xfd, 0x86, 0x02, 0x63, - 0x11, 0x27, 0x62, 0xe4, 0x62, 0x0a, 0x42, 0x43, 0xbe, 0xef, 0x52, 0x67, 0xc0, 0xc8, 0xe0, 0x1c, - 0x65, 0xf0, 0x0a, 0xb9, 0x24, 0xc9, 0x60, 0xb4, 0x1f, 0xfc, 0x77, 0x05, 0x26, 0xa2, 0x4b, 0xb4, - 0x25, 0x36, 0x44, 0x89, 0x6f, 0x04, 0x48, 0x6c, 0x88, 0x92, 0x6b, 0xc3, 0xd5, 0x97, 0x28, 0x87, - 0xb7, 0xc8, 0x42, 0x1a, 0x0e, 0x93, 0xd7, 0xe3, 0x2f, 0x66, 0x60, 0x5f, 0x72, 0x65, 0x38, 0x99, - 0x4f, 0xe9, 0xe3, 0xe2, 0xd8, 0xbf, 0xb1, 0x65, 0x3c, 0x38, 0x0d, 0x1f, 0xa7, 0xd3, 0x70, 0x8f, - 0x2c, 0x77, 0x3e, 0x0d, 0xf1, 0x7e, 0xf3, 0x7f, 0x7d, 0x0b, 0x39, 0xe0, 0x3d, 0xaf, 0xa5, 0x55, - 0xd0, 0x90, 0x0f, 0x9d, 0xd9, 0x02, 0x86, 0x2d, 0xb1, 0x2f, 0xe9, 0x4f, 0xbf, 0xaf, 0xc0, 0xfe, - 0xa0, 0x16, 0x06, 0xfd, 0xd1, 0x13, 0x5f, 0x07, 0x69, 0x67, 0x20, 0x95, 0x87, 0xfa, 0x33, 0x05, - 0x76, 0x85, 0x8a, 0x81, 0x25, 0x0e, 0x4a, 0xe3, 0xca, 0xfa, 0x25, 0x0e, 0x4a, 0x63, 0x6b, 0x8f, - 0xd5, 0x33, 0x94, 0xd3, 0xe3, 0x64, 0x4a, 0xd6, 0x68, 0x23, 0xb9, 0x5f, 0x53, 0x60, 0x34, 0x54, - 0x8e, 0x7e, 0x2e, 0x35, 0x21, 0xf2, 0x71, 0x44, 0x5c, 0x4d, 0xb2, 0xdc, 0x09, 0x48, 0x98, 0x03, - 0x9f, 0x4d, 0xfe, 0x8e, 0x02, 0x7b, 0x62, 0xaa, 0x88, 0x25, 0x6e, 0x7f, 0x92, 0x6b, 0x98, 0xb3, - 0xd7, 0x3a, 0x47, 0x80, 0x2c, 0x2e, 0x50, 0x16, 0x67, 0xc9, 0x4c, 0x2a, 0x16, 0xb9, 0xc9, 0xf1, - 0x71, 0xfa, 0xb7, 0x0a, 0x8c, 0x47, 0x95, 0x7d, 0x91, 0x4b, 0x29, 0x02, 0xd3, 0x50, 0xfd, 0x73, - 0xf6, 0x72, 0x87, 0xd0, 0x69, 0x8e, 0x27, 0x44, 0x43, 0x70, 0x41, 0xfd, 0x91, 0x02, 0x63, 0xfc, - 0xfc, 0xdc, 0x53, 0x7c, 0x26, 0x71, 0x12, 0x14, 0xae, 0x62, 0x93, 0x38, 0x09, 0x8a, 0xa8, 0x6f, - 0x93, 0x3b, 0x09, 0xaa, 0x52, 0xc0, 0x22, 0x2d, 0x29, 0x23, 0xbf, 0xa3, 0x40, 0xbf, 0x28, 0x5a, - 0x23, 0x27, 0xda, 0x8e, 0x1a, 0xac, 0x7c, 0xcb, 0x4e, 0xa7, 0x01, 0x41, 0x32, 0x8f, 0x51, 0x32, - 0x9f, 0x23, 0x87, 0x93, 0xc8, 0xac, 0x0b, 0xaa, 0xfe, 0x46, 0x81, 0xb1, 0x88, 0xba, 0x69, 0x92, - 0xe6, 0xa2, 0x29, 0x44, 0xf7, 0xa5, 0xce, 0x80, 0xd3, 0x1c, 0xbb, 0x0b, 0x0e, 0x42, 0xaa, 0xf2, - 0x9f, 0x0a, 0x64, 0xe3, 0x2b, 0xb3, 0x49, 0xbe, 0x03, 0xda, 0x02, 0xe5, 0xef, 0xd9, 0xd9, 0x2d, - 0xe1, 0x48, 0xb3, 0xe2, 0x63, 0xd9, 0xf4, 0xad, 0xf8, 0x5f, 0xc9, 0xc0, 0x21, 0x89, 0xca, 0x68, - 0x72, 0x2b, 0x05, 0xdd, 0xed, 0xde, 0x00, 0xc8, 0x2e, 0x6e, 0x0f, 0x32, 0x9c, 0x8d, 0x65, 0x3a, - 0x1b, 0x4b, 0xe4, 0x56, 0xa2, 0x79, 0x10, 0x09, 0x25, 0x72, 0xf3, 0xf2, 0x0f, 0x0a, 0x8c, 0x45, - 0xd4, 0x4a, 0x4b, 0x28, 0x77, 0x7c, 0xa1, 0xb7, 0x84, 0x72, 0x27, 0x54, 0x79, 0xab, 0xd7, 0x29, - 0x9f, 0x57, 0xc9, 0xe5, 0x44, 0xa9, 0x8b, 0xa7, 0x5a, 0x3c, 0x8f, 0xd7, 0xf8, 0x38, 0xfb, 0x96, - 0x02, 0x7b, 0x62, 0xca, 0xa9, 0x25, 0xbc, 0x59, 0x72, 0x5d, 0xb8, 0x84, 0x37, 0x6b, 0x53, 0x14, - 0x2e, 0x7b, 0x65, 0xe1, 0x22, 0x89, 0x65, 0xf1, 0x3d, 0x05, 0x26, 0xa2, 0xeb, 0xae, 0x25, 0x82, - 0xc7, 0xc4, 0xf2, 0x71, 0x89, 0xe0, 0x31, 0xb9, 0x76, 0x5c, 0xbd, 0x49, 0xf9, 0xcb, 0x93, 0x6b, - 0xa9, 0xa4, 0x88, 0xef, 0xfd, 0x84, 0x04, 0x19, 0x53, 0x30, 0x2e, 0x21, 0xc8, 0xe4, 0xd7, 0x33, - 0x24, 0x04, 0xd9, 0xa6, 0x56, 0x5d, 0x4e, 0x90, 0x2c, 0x1b, 0x8f, 0xa7, 0x75, 0x47, 0x1d, 0xaf, - 0xed, 0x0a, 0x97, 0xb4, 0x4a, 0x1e, 0x2b, 0x45, 0x54, 0x62, 0x4b, 0x04, 0xc3, 0xb1, 0x05, 0xd5, - 0xea, 0x59, 0xca, 0xd0, 0x09, 0x92, 0x4b, 0x62, 0x28, 0xa2, 0x96, 0x95, 0xfc, 0x9d, 0x02, 0x93, - 0x77, 0x5b, 0xd5, 0xb1, 0x1f, 0x0a, 0x66, 0xa4, 0x12, 0x3a, 0xbc, 0x75, 0xc3, 0x41, 0xa6, 0xbe, - 0xc6, 0xab, 0x2a, 0xfc, 0x65, 0xd5, 0x12, 0x06, 0x32, 0xbe, 0x58, 0x5c, 0xc2, 0x40, 0x26, 0x54, - 0x91, 0xab, 0xe7, 0x29, 0x4f, 0x27, 0xc9, 0x09, 0x69, 0x01, 0xf1, 0xe2, 0x67, 0xf2, 0xae, 0x02, - 0x13, 0xd1, 0xd5, 0xae, 0x12, 0x16, 0x23, 0xb1, 0xce, 0x56, 0xc2, 0x62, 0x24, 0x97, 0xd9, 0xaa, - 0x37, 0x28, 0x5b, 0x33, 0xe4, 0x6a, 0x12, 0x5b, 0xbe, 0xe2, 0x53, 0x6f, 0xd9, 0xad, 0x27, 0x3d, - 0xc2, 0x15, 0x59, 0x44, 0xad, 0xa9, 0x84, 0xc8, 0xe2, 0xab, 0x63, 0x25, 0x44, 0x96, 0x50, 0x36, - 0x2b, 0x27, 0xb2, 0xc8, 0xc2, 0x5a, 0xf2, 0x96, 0x02, 0xbb, 0x42, 0x15, 0x92, 0x12, 0xcb, 0x29, - 0xae, 0x78, 0x56, 0x62, 0x39, 0xc5, 0x16, 0x64, 0xca, 0x1d, 0xfe, 0x85, 0x4b, 0x36, 0x73, 0x8f, - 0x3c, 0xe5, 0xba, 0x8f, 0xc9, 0x3f, 0x2b, 0xb0, 0x27, 0xa6, 0x68, 0x50, 0xc2, 0xa2, 0x27, 0x17, - 0x6c, 0x4a, 0x58, 0xf4, 0x36, 0xf5, 0x8a, 0x72, 0x36, 0x83, 0xff, 0xe7, 0x53, 0x11, 0x25, 0x8d, - 0xe4, 0x5f, 0x14, 0xd8, 0x1b, 0x5b, 0x18, 0x48, 0x66, 0xd2, 0x68, 0x52, 0x64, 0xe1, 0x62, 0x36, - 0xbf, 0x15, 0x14, 0x69, 0xd2, 0x0d, 0x7c, 0x2a, 0x49, 0x8b, 0xe0, 0xdd, 0x7d, 0x9b, 0x4d, 0x3e, - 0xab, 0xc0, 0xb0, 0xbf, 0xe0, 0x30, 0x79, 0xf3, 0x16, 0x59, 0xb6, 0x98, 0xbc, 0x79, 0x8b, 0xae, - 0x67, 0x54, 0x4f, 0x51, 0xb2, 0xa7, 0xc8, 0x0b, 0x89, 0x7b, 0x4c, 0xc3, 0xb1, 0x8a, 0xac, 0x52, - 0xd0, 0xa0, 0xc4, 0xbd, 0xad, 0xe0, 0x0b, 0x29, 0xa1, 0xa2, 0x40, 0x89, 0x95, 0x14, 0x57, 0x8e, - 0x28, 0xb1, 0x92, 0x62, 0x6b, 0x10, 0xe5, 0xb2, 0x6e, 0x18, 0x0b, 0x22, 0x16, 0xca, 0x3d, 0xf2, - 0x55, 0x3f, 0xd2, 0xe8, 0x7d, 0x22, 0xba, 0xc8, 0x50, 0xc2, 0x9c, 0x27, 0x16, 0x38, 0x4a, 0x98, - 0xf3, 0xe4, 0xea, 0x46, 0xb9, 0xd3, 0x8c, 0x75, 0x81, 0xa3, 0xe8, 0x2b, 0x85, 0xa4, 0xfb, 0x92, - 0x88, 0xc7, 0x28, 0x24, 0x6c, 0x78, 0xfc, 0xfb, 0x17, 0x12, 0x36, 0x3c, 0xe1, 0xfd, 0x0b, 0xb9, - 0x7d, 0x89, 0xf7, 0x85, 0x8c, 0xa2, 0xb5, 0x86, 0x0e, 0xd8, 0xf6, 0x78, 0xa7, 0x7f, 0x55, 0x60, - 0x6f, 0xec, 0xbb, 0x17, 0x12, 0xc6, 0xa1, 0xdd, 0xe3, 0x1a, 0x12, 0xc6, 0xa1, 0xed, 0xb3, 0x1b, - 0xea, 0x0c, 0xe5, 0xf5, 0x22, 0x39, 0x9f, 0x18, 0xd4, 0x46, 0x30, 0x5a, 0x14, 0x0f, 0xfe, 0xbc, - 0xa9, 0xc0, 0x68, 0xb0, 0x58, 0x52, 0xe2, 0x6c, 0x34, 0xa6, 0x04, 0x34, 0x7b, 0xbe, 0x03, 0xc8, - 0x34, 0xcc, 0xb4, 0xfe, 0x4f, 0x3a, 0x04, 0xf7, 0xed, 0x41, 0xbe, 0xac, 0xc0, 0x78, 0x44, 0xed, - 0xa1, 0x4c, 0x8e, 0x58, 0x54, 0xad, 0xa4, 0x44, 0xfa, 0x49, 0x64, 0xb5, 0xa4, 0xdc, 0xed, 0xf7, - 0x2a, 0x05, 0xe5, 0x65, 0xb0, 0xe2, 0xb0, 0xfa, 0xd7, 0x33, 0x70, 0xb0, 0x6d, 0x15, 0x1c, 0x59, - 0x48, 0x7d, 0x6b, 0x10, 0x57, 0x5e, 0x99, 0x7d, 0x71, 0x3b, 0x50, 0x21, 0xe3, 0x3f, 0x4a, 0x19, - 0x7f, 0x85, 0xdc, 0x4b, 0x77, 0x19, 0x55, 0x6a, 0x21, 0x4c, 0xbc, 0x8d, 0xf8, 0x9e, 0x02, 0x6a, - 0xfb, 0xca, 0x24, 0xf2, 0xa2, 0xa4, 0x12, 0x4a, 0x54, 0x4b, 0x65, 0x6f, 0x6d, 0x0b, 0xae, 0x34, - 0x21, 0x8b, 0x46, 0x31, 0xb1, 0xcb, 0x99, 0xa2, 0xeb, 0xd9, 0x5b, 0x65, 0x52, 0xe4, 0x2f, 0x15, - 0x18, 0x0d, 0xd6, 0x39, 0xc9, 0xa4, 0x14, 0x47, 0x57, 0x55, 0xc9, 0xa4, 0x14, 0xc7, 0x14, 0x55, - 0xc9, 0x25, 0x89, 0x69, 0xec, 0x8c, 0xcb, 0x76, 0xc1, 0x59, 0x5d, 0x4f, 0xee, 0x11, 0xd6, 0x2a, - 0x3d, 0x26, 0xdf, 0x54, 0x80, 0x84, 0x4b, 0x6f, 0x24, 0x92, 0x1f, 0x62, 0x6b, 0xa6, 0x24, 0x92, - 0x1f, 0xe2, 0x2b, 0xa3, 0xe4, 0x32, 0xad, 0xb0, 0x38, 0xc9, 0x8b, 0x80, 0xb3, 0xd4, 0x78, 0xec, - 0x61, 0xee, 0x6d, 0x05, 0xc6, 0x22, 0xaa, 0x9d, 0x48, 0x27, 0x14, 0xa6, 0x70, 0x8c, 0x09, 0x05, - 0x56, 0x72, 0x27, 0x20, 0x11, 0xfc, 0xd9, 0x2d, 0x06, 0xf3, 0xeb, 0x5f, 0x7d, 0x77, 0x9f, 0xf2, - 0xd6, 0xbb, 0xfb, 0x94, 0x6f, 0xbd, 0xbb, 0x4f, 0xf9, 0xe5, 0xf7, 0xf6, 0xed, 0x78, 0xeb, 0xbd, - 0x7d, 0x3b, 0xfe, 0xf1, 0xbd, 0x7d, 0x3b, 0x5e, 0xbb, 0x5d, 0x31, 0x9c, 0xf5, 0xe6, 0xea, 0x54, - 0xc9, 0xaa, 0xe6, 0x16, 0x38, 0xfe, 0x45, 0x6d, 0xd5, 0x6e, 0x8d, 0x76, 0xac, 0x64, 0x35, 0x74, - 0xef, 0xcf, 0x75, 0xcd, 0xa8, 0xe1, 0x45, 0x83, 0xdd, 0x22, 0xc5, 0xd9, 0xac, 0xeb, 0xf6, 0x6a, - 0x2f, 0xfd, 0x6f, 0xae, 0x4f, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0xe4, 0x86, 0x01, - 0xdc, 0x7b, 0x00, 0x00, + // 6226 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7d, 0x8c, 0x1c, 0xc9, + 0x55, 0xb8, 0x7b, 0xf6, 0xfb, 0xed, 0x77, 0xed, 0x7a, 0xbd, 0x1e, 0xdf, 0xf9, 0xa3, 0x1d, 0xe7, + 0x7c, 0xce, 0x79, 0xd7, 0x5e, 0x7f, 0x7f, 0x7b, 0x67, 0xd7, 0x6b, 0xef, 0x79, 0xd7, 0x76, 0x66, + 0xd7, 0x77, 0xc9, 0x25, 0xbf, 0xdf, 0xa4, 0x77, 0xa6, 0x77, 0xb6, 0xe3, 0x9e, 0xe9, 0xf1, 0x74, + 0xcf, 0x9e, 0x17, 0xe3, 0x08, 0x08, 0x28, 0x01, 0x24, 0x40, 0x8a, 0x00, 0x21, 0x10, 0x02, 0xfe, + 0xe0, 0x0f, 0x44, 0x84, 0x44, 0xc4, 0x87, 0x12, 0x29, 0x51, 0x38, 0x04, 0xe1, 0x82, 0xe0, 0x20, + 0x47, 0x40, 0x11, 0x1c, 0xd1, 0x5d, 0x20, 0xca, 0x09, 0x24, 0xfe, 0x42, 0x42, 0xa0, 0x80, 0xba, + 0xea, 0x55, 0x4d, 0x7f, 0x4f, 0xf5, 0xec, 0x9e, 0x7c, 0x81, 0xbf, 0xbc, 0x53, 0x5d, 0xef, 0xd5, + 0x7b, 0xf5, 0x5e, 0xbd, 0x7a, 0x55, 0xf5, 0xde, 0x33, 0x7c, 0xd0, 0xa8, 0x7e, 0x52, 0x2f, 0x3a, + 0xc6, 0xa6, 0x3e, 0xad, 0x3f, 0x2a, 0x6e, 0x68, 0xd5, 0xb2, 0x3e, 0xbd, 0x79, 0x72, 0x4d, 0x77, + 0xb4, 0x93, 0xd3, 0x0f, 0x1b, 0x7a, 0x7d, 0x6b, 0xaa, 0x56, 0xb7, 0x1c, 0x8b, 0x64, 0x45, 0xbf, + 0x29, 0xde, 0x6f, 0x0a, 0xfb, 0x65, 0x9f, 0x29, 0x5b, 0x56, 0xd9, 0xd4, 0xa7, 0xb5, 0x9a, 0x31, + 0xad, 0x55, 0xab, 0x96, 0xa3, 0x39, 0x86, 0x55, 0xb5, 0x19, 0x64, 0xf6, 0xf9, 0x84, 0x11, 0x04, + 0x2a, 0xd6, 0xf5, 0x68, 0x42, 0xd7, 0xb2, 0x5e, 0xd5, 0x6d, 0x83, 0x23, 0x3d, 0xd2, 0xec, 0x69, + 0xd5, 0xb5, 0xa2, 0xd9, 0xec, 0xc7, 0x7e, 0x62, 0xb7, 0xf1, 0xb2, 0x55, 0xb6, 0xe8, 0x9f, 0xd3, + 0xee, 0x5f, 0xac, 0x55, 0xbd, 0x0b, 0xb0, 0xd2, 0x58, 0xd3, 0x8a, 0x45, 0xab, 0x51, 0x75, 0xc8, + 0x04, 0x74, 0x3b, 0x75, 0xad, 0xa4, 0xd7, 0x27, 0x95, 0x83, 0xca, 0xd1, 0xbe, 0x3c, 0xfe, 0x22, + 0xcf, 0xc3, 0x88, 0x2d, 0x7a, 0x15, 0xaa, 0x56, 0xb5, 0xa8, 0x4f, 0x66, 0x0e, 0x2a, 0x47, 0x07, + 0xf3, 0xc3, 0xcd, 0xf6, 0x3b, 0x6e, 0xb3, 0xfa, 0x09, 0x78, 0xe6, 0xc3, 0xee, 0x5c, 0x35, 0xb1, + 0xde, 0xad, 0x97, 0xf4, 0xba, 0x9d, 0xd7, 0x1f, 0x36, 0x74, 0xdb, 0x21, 0x87, 0x61, 0xd0, 0x83, + 0xca, 0x28, 0xe1, 0x48, 0x03, 0xcd, 0xc6, 0xc5, 0x12, 0xd9, 0x07, 0x7d, 0x15, 0xad, 0xfe, 0x40, + 0xa7, 0x1d, 0x32, 0xb4, 0x43, 0x2f, 0x6b, 0x58, 0x2c, 0xa9, 0x5f, 0x55, 0xe0, 0xd9, 0x98, 0x21, + 0xec, 0x9a, 0x55, 0xb5, 0x75, 0x72, 0x07, 0x60, 0xad, 0xb1, 0x55, 0xb0, 0x68, 0xeb, 0xa4, 0x72, + 0xb0, 0xe3, 0x68, 0xff, 0xcc, 0xf4, 0x54, 0xbc, 0xd4, 0xa6, 0x02, 0x98, 0xe6, 0x35, 0x47, 0xcb, + 0xf7, 0xad, 0x35, 0xb6, 0x18, 0x5e, 0x72, 0x0f, 0xfa, 0x6d, 0xdd, 0x34, 0x39, 0xc2, 0x4c, 0x7b, + 0x08, 0xc1, 0xc5, 0xc1, 0x30, 0xaa, 0xbf, 0xa3, 0xc0, 0x91, 0x40, 0x9f, 0x35, 0xcb, 0x7a, 0xb0, + 0xac, 0x3b, 0x5a, 0x49, 0x73, 0xb4, 0x97, 0x0d, 0x67, 0x63, 0x99, 0xf2, 0x4b, 0x56, 0xa0, 0xb7, + 0x82, 0xad, 0x74, 0xaa, 0xfa, 0x67, 0xce, 0xa5, 0x18, 0xd8, 0x8b, 0x34, 0x2f, 0x10, 0x25, 0xce, + 0x2f, 0x19, 0x87, 0x2e, 0xc3, 0xce, 0x35, 0xb6, 0x26, 0x3b, 0x0e, 0x2a, 0x47, 0x7b, 0xf3, 0xec, + 0x87, 0xfa, 0x0c, 0x64, 0xe9, 0xa4, 0xdf, 0xc0, 0x11, 0xef, 0x69, 0x75, 0xad, 0xc2, 0xa5, 0xaa, + 0x16, 0x60, 0x5f, 0xe4, 0x57, 0x14, 0xc8, 0x75, 0xe8, 0xae, 0xd1, 0x16, 0x64, 0x41, 0x4d, 0x62, + 0x81, 0xc1, 0xe6, 0x3a, 0xbf, 0xf6, 0xd6, 0x81, 0x5d, 0x79, 0x84, 0x53, 0x3f, 0xa7, 0xc0, 0xfe, + 0x80, 0xd0, 0xe7, 0xf5, 0x9a, 0x65, 0x1b, 0x4e, 0x3a, 0xcd, 0x5a, 0x02, 0x68, 0xfe, 0xa6, 0xac, + 0xf7, 0xcf, 0x7c, 0x50, 0x6e, 0x42, 0x29, 0x45, 0x4a, 0xde, 0x03, 0xaf, 0xbe, 0xab, 0xc0, 0x81, + 0x58, 0xaa, 0x90, 0x77, 0x1d, 0x7a, 0x4b, 0xd8, 0x86, 0xaa, 0xb8, 0x98, 0x34, 0x5e, 0x0b, 0x74, + 0x53, 0xbc, 0xe1, 0x46, 0xd5, 0xa9, 0x6f, 0xe5, 0x05, 0xea, 0xec, 0x27, 0x60, 0xd0, 0xf7, 0x89, + 0x8c, 0x40, 0xc7, 0x03, 0x7d, 0x0b, 0x27, 0xc1, 0xfd, 0x93, 0x5c, 0x80, 0xae, 0x4d, 0xcd, 0x6c, + 0xe8, 0xc8, 0xf6, 0xe1, 0x24, 0x32, 0x10, 0x57, 0x9e, 0x41, 0x5c, 0xcc, 0x9c, 0x57, 0xd4, 0xfd, + 0xb8, 0xb2, 0xb9, 0x8c, 0x73, 0x9a, 0xa9, 0x55, 0x8b, 0xba, 0xd0, 0x81, 0x75, 0x5c, 0x96, 0xe1, + 0xef, 0x38, 0x13, 0x37, 0xa0, 0x77, 0x0d, 0xdb, 0x70, 0x26, 0x12, 0x49, 0x40, 0x78, 0x54, 0x04, + 0x01, 0xaa, 0x9e, 0x43, 0x5d, 0x9b, 0x2d, 0x97, 0xeb, 0x7a, 0x59, 0x73, 0xf4, 0x97, 0x2c, 0xb3, + 0x51, 0xd1, 0xb9, 0x1a, 0x4c, 0x42, 0x0f, 0x17, 0x2f, 0xe3, 0x9d, 0xff, 0x54, 0x1b, 0xc8, 0x40, + 0x08, 0x10, 0xe9, 0xbb, 0x0f, 0xa3, 0x1a, 0xff, 0x54, 0xd8, 0xa4, 0xdf, 0x38, 0xa1, 0x47, 0x93, + 0x08, 0x65, 0x2b, 0x15, 0x91, 0x8d, 0x68, 0x7e, 0xec, 0xb6, 0xfa, 0xd1, 0xe8, 0x61, 0x85, 0xde, + 0x66, 0xa1, 0x17, 0x29, 0x64, 0xa3, 0xf5, 0xe5, 0xc5, 0x6f, 0xf2, 0x2c, 0x80, 0x58, 0xa8, 0xcc, + 0xf0, 0xf4, 0xe5, 0xfb, 0xf8, 0x4a, 0xb5, 0xd5, 0xff, 0xe0, 0xa6, 0x30, 0x8c, 0x1b, 0x79, 0x72, + 0x60, 0x6f, 0x93, 0x27, 0xbe, 0x36, 0xfc, 0xbc, 0x9d, 0x4f, 0xe2, 0x4d, 0x20, 0x9e, 0x65, 0xb0, + 0x7c, 0xca, 0x8a, 0x56, 0xbd, 0x94, 0xdf, 0xa3, 0x45, 0x7e, 0xb5, 0xc9, 0x1a, 0x4c, 0x36, 0x47, + 0x45, 0x06, 0xf8, 0xa0, 0x99, 0x94, 0x13, 0x3a, 0x21, 0x30, 0x79, 0x9b, 0x6d, 0xf5, 0x3a, 0x1c, + 0xf2, 0xb3, 0xee, 0x83, 0xc2, 0xb9, 0xf5, 0x19, 0x3a, 0x25, 0xb0, 0x91, 0x98, 0xa0, 0x26, 0x61, + 0xc0, 0x19, 0x5c, 0x80, 0x6e, 0x46, 0x3a, 0xda, 0xae, 0x44, 0xca, 0xbd, 0xd3, 0xc3, 0x2d, 0x18, + 0x83, 0x56, 0x4f, 0xc0, 0x24, 0x1d, 0x6d, 0x5e, 0xaf, 0x5a, 0x95, 0x79, 0xbd, 0x68, 0x54, 0x34, + 0x93, 0x93, 0x39, 0x0e, 0x5d, 0x25, 0xb7, 0x19, 0x49, 0x64, 0x3f, 0xd4, 0x33, 0xb0, 0x37, 0x02, + 0x02, 0xc9, 0x9a, 0x84, 0x9e, 0x12, 0x6b, 0xa2, 0x40, 0x9d, 0x79, 0xfe, 0x53, 0x3d, 0x15, 0x01, + 0x26, 0x94, 0x6d, 0x02, 0xba, 0x29, 0x72, 0xae, 0x6a, 0xf8, 0x4b, 0x75, 0xd0, 0xbc, 0x07, 0x80, + 0x70, 0xb0, 0x97, 0x60, 0x88, 0xf6, 0x2b, 0xe0, 0x18, 0x5c, 0x75, 0x9e, 0x4f, 0x36, 0x21, 0x1e, + 0x54, 0x38, 0x19, 0x83, 0x25, 0x6f, 0xa3, 0x3a, 0x97, 0x24, 0x01, 0x41, 0xb3, 0x7f, 0x11, 0x28, + 0xc1, 0x45, 0x60, 0xc0, 0xe1, 0x44, 0x24, 0xc8, 0x43, 0x0e, 0x7a, 0xda, 0x5d, 0xd3, 0x1c, 0x50, + 0x7d, 0x25, 0xe4, 0x79, 0x70, 0x3b, 0x99, 0x66, 0x0f, 0x12, 0xd2, 0xce, 0x78, 0xa5, 0xad, 0xc5, + 0x6d, 0x70, 0x82, 0x83, 0x6b, 0xbe, 0x9d, 0x44, 0xda, 0x84, 0x0b, 0x20, 0xf5, 0x1e, 0xec, 0x61, + 0x43, 0xd4, 0x2c, 0x87, 0x31, 0xe8, 0xd5, 0x0b, 0xdb, 0xd1, 0x9c, 0x86, 0xcd, 0x3d, 0x3f, 0xf6, + 0xab, 0x95, 0x01, 0xfa, 0x38, 0x2a, 0xb5, 0x0f, 0xa3, 0xd8, 0xf4, 0x7b, 0x58, 0x47, 0x3e, 0xe1, + 0xc9, 0xfb, 0xac, 0xc0, 0x90, 0xe7, 0x60, 0xea, 0x19, 0x98, 0x08, 0x60, 0x97, 0x5a, 0xd7, 0x1f, + 0x0d, 0xb1, 0x29, 0x68, 0xba, 0x0a, 0xdd, 0xac, 0x1b, 0x4e, 0xa0, 0x2c, 0x49, 0x08, 0xa5, 0x7e, + 0x33, 0x83, 0x8b, 0xcb, 0xfd, 0x26, 0x3c, 0x2c, 0x19, 0xaa, 0x5c, 0xa9, 0x9b, 0x46, 0xc5, 0x60, + 0x4e, 0x47, 0x67, 0x9e, 0xfd, 0x20, 0xf3, 0x00, 0xd4, 0xab, 0x2c, 0xd8, 0x46, 0x49, 0xa7, 0x1e, + 0xd7, 0xd0, 0xcc, 0x91, 0x24, 0xa2, 0xe8, 0xa0, 0x2b, 0x46, 0x49, 0xcf, 0xf7, 0x59, 0xfc, 0x4f, + 0x52, 0x80, 0xbd, 0x14, 0x5d, 0xa1, 0xd8, 0xa8, 0x34, 0x4c, 0xcd, 0x85, 0x2c, 0x54, 0x2d, 0xf7, + 0xe4, 0xa1, 0x99, 0x93, 0x9d, 0x2e, 0x21, 0xb9, 0xc3, 0xae, 0xf3, 0xf2, 0xad, 0xb7, 0x0e, 0xec, + 0x2b, 0x5a, 0x76, 0xc5, 0xb2, 0xed, 0xd2, 0x83, 0x29, 0xc3, 0x9a, 0xae, 0x68, 0xce, 0xc6, 0xd4, + 0x92, 0x5e, 0xd6, 0x8a, 0x5b, 0xf3, 0x7a, 0x31, 0xbf, 0x87, 0x62, 0x99, 0x13, 0x48, 0xee, 0x20, + 0x8e, 0xc8, 0x01, 0x1e, 0x36, 0xb4, 0xaa, 0x63, 0x38, 0x5b, 0x93, 0x5d, 0xed, 0x0f, 0xf0, 0x61, + 0xc4, 0xa1, 0xfe, 0xa1, 0x82, 0x06, 0x28, 0x30, 0xb1, 0x28, 0xb7, 0xdb, 0x30, 0xb2, 0xd6, 0xd8, + 0xb2, 0x0b, 0xb5, 0xba, 0x51, 0xd4, 0x0b, 0xa6, 0xbe, 0xa9, 0x9b, 0xa8, 0x54, 0x87, 0x92, 0x26, + 0x6b, 0xc9, 0xed, 0x98, 0x1f, 0x72, 0x41, 0xef, 0xb9, 0x90, 0xf4, 0x37, 0x59, 0x86, 0x51, 0xd7, + 0x15, 0xf7, 0x63, 0xcb, 0xc8, 0x62, 0x1b, 0xa6, 0xb0, 0x4d, 0x74, 0xea, 0xe7, 0x15, 0x18, 0x5a, + 0x68, 0x98, 0x66, 0x53, 0x5d, 0xb6, 0xab, 0x66, 0xe4, 0x63, 0x30, 0x5a, 0x31, 0x4a, 0x48, 0x9f, + 0x56, 0x2d, 0x15, 0x1c, 0x6b, 0x0d, 0xbd, 0xb6, 0x63, 0x89, 0x56, 0xcb, 0x28, 0x51, 0xc2, 0x66, + 0xab, 0xa5, 0xd5, 0xbb, 0x39, 0x74, 0x58, 0x87, 0x2a, 0x9e, 0x56, 0x6b, 0x4d, 0xfd, 0xac, 0x82, + 0x0e, 0x94, 0x9f, 0xe8, 0x6d, 0x9a, 0x02, 0x32, 0x03, 0x13, 0xaf, 0x1a, 0xce, 0x46, 0x21, 0x4c, + 0x38, 0x3b, 0x47, 0x10, 0xf7, 0xeb, 0xb2, 0x9f, 0x94, 0x12, 0xba, 0x46, 0x21, 0x4a, 0x50, 0xec, + 0xf3, 0x41, 0x13, 0x92, 0xc8, 0xbd, 0x1f, 0x4b, 0xd3, 0x8c, 0x54, 0x50, 0xb5, 0x02, 0xdf, 0x65, + 0x16, 0x6d, 0x3c, 0x53, 0x99, 0x58, 0xa6, 0xb4, 0xc8, 0xe9, 0xf5, 0xec, 0x43, 0x7e, 0xdd, 0x48, + 0xc3, 0x12, 0x37, 0x43, 0x3f, 0x21, 0x4e, 0x43, 0x7c, 0xb5, 0xd8, 0xb9, 0xad, 0x5b, 0x9a, 0xbd, + 0xd1, 0xdc, 0x34, 0x13, 0xd9, 0x0a, 0x6d, 0x53, 0x99, 0x88, 0x6d, 0xea, 0x10, 0x0c, 0x30, 0xd3, + 0xb4, 0x41, 0x11, 0x4f, 0x76, 0x50, 0x89, 0xf7, 0xd3, 0x36, 0x36, 0x96, 0x6a, 0xf2, 0xe3, 0x4f, + 0x04, 0x19, 0xc8, 0xee, 0x22, 0x74, 0xfb, 0xce, 0xe1, 0x27, 0x93, 0xd8, 0x5d, 0xad, 0x1b, 0x95, + 0x8a, 0x5e, 0x72, 0xd1, 0x2d, 0xb9, 0x86, 0x82, 0xe2, 0xcc, 0x23, 0x02, 0x71, 0xb5, 0xb0, 0x4a, + 0x2f, 0x25, 0x9a, 0x63, 0xee, 0x18, 0xcb, 0xaa, 0x09, 0x1f, 0x60, 0xae, 0x04, 0x6b, 0x99, 0x2d, + 0x95, 0xea, 0xba, 0x6d, 0xa7, 0x1c, 0xe9, 0x39, 0x18, 0xe6, 0xc3, 0x68, 0x0c, 0x01, 0x8e, 0x35, + 0xa4, 0xf9, 0xd0, 0xaa, 0xbf, 0x9c, 0x81, 0xdd, 0x91, 0x1c, 0xbb, 0x27, 0x35, 0xaa, 0x6d, 0x0c, + 0x37, 0x35, 0xad, 0xbb, 0x5a, 0x99, 0x56, 0x06, 0xe1, 0x3a, 0x09, 0xc2, 0x30, 0x67, 0xe4, 0xa1, + 0x05, 0x90, 0x8b, 0x60, 0xdd, 0x30, 0x4d, 0x6d, 0xcd, 0x64, 0xfb, 0x91, 0x2c, 0x02, 0x0e, 0xd4, + 0xbc, 0x3f, 0xe8, 0xf4, 0xdc, 0x1f, 0xb8, 0xd6, 0xa3, 0xa9, 0x4d, 0x6c, 0xcb, 0xc0, 0x1d, 0xcc, + 0x55, 0x18, 0xf7, 0xb4, 0x5a, 0x34, 0x4a, 0x93, 0xdd, 0xec, 0xb4, 0x5a, 0x34, 0x4a, 0xea, 0x27, + 0xd1, 0xd7, 0x0a, 0x4b, 0x7b, 0xe7, 0x35, 0xab, 0x0e, 0x47, 0x5a, 0xc8, 0x7d, 0xe7, 0xc7, 0xbc, + 0xe2, 0x59, 0xc2, 0x7e, 0xbb, 0x2d, 0xe5, 0xe4, 0xfc, 0xa7, 0xe2, 0x59, 0x7b, 0x41, 0x78, 0xe1, + 0x81, 0xf5, 0x09, 0xc3, 0xe5, 0x51, 0xa5, 0x96, 0xbb, 0x74, 0x2f, 0xdf, 0x31, 0xc8, 0x22, 0x0c, + 0xad, 0xe9, 0xb6, 0x53, 0x58, 0x6b, 0x6c, 0x21, 0x9a, 0x8c, 0x3c, 0x9a, 0x01, 0x17, 0x34, 0xd7, + 0xd8, 0x62, 0xa8, 0x6e, 0xc3, 0x30, 0x45, 0x45, 0x6f, 0xd2, 0x18, 0xae, 0x0e, 0x79, 0x5c, 0x83, + 0x2e, 0xec, 0x8a, 0x6e, 0x9a, 0x14, 0x99, 0x3a, 0x87, 0x0b, 0x75, 0x5e, 0xaf, 0x1b, 0x9b, 0xd4, + 0x93, 0x68, 0x63, 0x0a, 0x7f, 0x34, 0x83, 0x62, 0x8f, 0xc7, 0xf2, 0xbf, 0x7e, 0x22, 0x7f, 0x8f, + 0xab, 0x51, 0x73, 0x0e, 0x76, 0xc2, 0xad, 0x4d, 0x74, 0x48, 0x3b, 0xb6, 0xef, 0x90, 0xaa, 0x5f, + 0x56, 0xe0, 0x60, 0x3c, 0xdd, 0x3f, 0x00, 0x5e, 0xe3, 0xaf, 0x74, 0xc0, 0x54, 0xa4, 0x7d, 0x5b, + 0xb5, 0xe6, 0xb4, 0x6a, 0x51, 0x37, 0xef, 0xd7, 0x56, 0xad, 0xd9, 0x8a, 0x6b, 0x8e, 0x76, 0x6e, + 0x4b, 0x9f, 0x87, 0xfe, 0x35, 0xcd, 0xd6, 0x0b, 0x1a, 0xc5, 0x9b, 0xc6, 0xbc, 0x83, 0x0b, 0xc7, + 0xc8, 0x21, 0x0b, 0x30, 0xf0, 0xb0, 0x61, 0x39, 0x02, 0x4d, 0xa7, 0x3c, 0x9a, 0x7e, 0x0a, 0x88, + 0x78, 0x96, 0xa0, 0xd7, 0x76, 0xea, 0x9a, 0xa3, 0x97, 0xd9, 0x19, 0x62, 0x68, 0xe6, 0x44, 0xd2, + 0x44, 0xb2, 0x69, 0x31, 0xe9, 0x83, 0xca, 0x0a, 0xc2, 0xe5, 0x05, 0x06, 0xb2, 0x04, 0xc3, 0x75, + 0x7d, 0x5d, 0xaf, 0xeb, 0xd5, 0xa2, 0x8e, 0xcb, 0xa2, 0x5b, 0x5e, 0xd1, 0x86, 0x04, 0x2c, 0x5b, + 0x17, 0x7f, 0x9f, 0x81, 0xd3, 0x1e, 0xf1, 0x04, 0xb4, 0xec, 0x3d, 0x15, 0x52, 0x70, 0x7a, 0x3b, + 0x76, 0x60, 0x7a, 0x3b, 0xdf, 0x8b, 0xe9, 0xed, 0x6a, 0x7f, 0x7a, 0xd7, 0xf1, 0xe2, 0x27, 0x7a, + 0x76, 0x77, 0xce, 0xa1, 0xab, 0xc3, 0xb1, 0x88, 0x8d, 0xbd, 0xad, 0xf1, 0xa4, 0xdd, 0xba, 0xef, + 0x65, 0x60, 0x1f, 0x6e, 0xfd, 0xcd, 0x81, 0xde, 0x27, 0xce, 0xdd, 0x25, 0x7a, 0xf8, 0x28, 0x1b, + 0xd5, 0x34, 0x5a, 0x85, 0x20, 0x3e, 0xcf, 0xb0, 0xb3, 0x1d, 0xcf, 0xf0, 0x00, 0xf7, 0x0c, 0x5d, + 0xcd, 0xe9, 0xcd, 0xf5, 0xbd, 0xfb, 0xd6, 0x01, 0xd6, 0x10, 0xed, 0x24, 0x76, 0xc7, 0x38, 0x89, + 0x3d, 0x4d, 0x27, 0x71, 0x13, 0xef, 0xfe, 0xe2, 0xf4, 0x08, 0x37, 0x82, 0xbb, 0x01, 0xb7, 0xed, + 0x9c, 0x84, 0xdb, 0x16, 0x25, 0x3b, 0xe1, 0xbc, 0x7d, 0x0a, 0x3e, 0x24, 0xa5, 0x57, 0xef, 0xd5, + 0xf8, 0x3f, 0xad, 0x84, 0x1c, 0xa0, 0xa7, 0x78, 0x0c, 0x7c, 0x14, 0xf2, 0xa3, 0x62, 0x0e, 0x83, + 0x3b, 0x3e, 0x0f, 0x3f, 0xc5, 0x1f, 0x40, 0x3c, 0x2e, 0xdc, 0x53, 0xbb, 0xcd, 0xf8, 0xac, 0x02, + 0xe0, 0x71, 0x18, 0x9e, 0xe2, 0x3a, 0x57, 0xbf, 0xa2, 0xc0, 0xf8, 0x3d, 0xbd, 0x5e, 0xd3, 0x9d, + 0x86, 0x66, 0xb2, 0x19, 0x59, 0x71, 0x34, 0x47, 0x27, 0xf7, 0xa0, 0x9f, 0xb3, 0x5d, 0x5d, 0xb7, + 0xf0, 0x0a, 0x22, 0xf1, 0x29, 0x3b, 0x80, 0x66, 0xb1, 0xba, 0x6e, 0xe5, 0x71, 0xea, 0xdc, 0xbf, + 0xc9, 0x7d, 0x18, 0x58, 0x6f, 0x54, 0x4b, 0x46, 0xb5, 0xcc, 0x50, 0xb2, 0x6b, 0xaa, 0x99, 0x14, + 0x28, 0x17, 0x18, 0x78, 0xbe, 0x1f, 0xf1, 0xb8, 0x68, 0xd5, 0x2f, 0x76, 0xc0, 0xf8, 0x42, 0xc3, + 0x34, 0x83, 0x82, 0x25, 0xf3, 0x81, 0xfb, 0x93, 0x17, 0x92, 0xef, 0xc0, 0xfd, 0xd0, 0xe2, 0x86, + 0xed, 0xa3, 0x30, 0x54, 0xe3, 0x54, 0x78, 0xe9, 0x3e, 0x91, 0x82, 0x6e, 0x3a, 0xa3, 0xb7, 0x76, + 0xe5, 0x07, 0x05, 0x26, 0x3a, 0x21, 0x1f, 0x71, 0x27, 0xc4, 0x69, 0xd4, 0x75, 0x9b, 0x21, 0xee, + 0xa0, 0x88, 0x4f, 0x25, 0x21, 0xbe, 0xf1, 0xa8, 0x66, 0xd4, 0xb7, 0x16, 0x18, 0x54, 0x73, 0x9e, + 0x6f, 0xed, 0x72, 0xe7, 0x84, 0x36, 0x52, 0xcc, 0x39, 0xa6, 0xb3, 0xb8, 0xfd, 0xa6, 0x30, 0xc1, + 0x54, 0xb1, 0xd9, 0xe9, 0x21, 0xf2, 0x6a, 0xb1, 0x6b, 0x67, 0xae, 0x16, 0x73, 0xdd, 0xd0, 0xe9, + 0xb2, 0xac, 0x9a, 0x78, 0xb6, 0x8d, 0x58, 0x95, 0x68, 0x09, 0x5e, 0x0c, 0xde, 0xec, 0x9d, 0x68, + 0x75, 0x0d, 0x16, 0x12, 0xa5, 0xb8, 0xdf, 0xbb, 0x84, 0xf7, 0x42, 0xa1, 0x1e, 0x32, 0x87, 0x40, + 0x23, 0xc6, 0x80, 0x08, 0x4a, 0x6f, 0x05, 0xf4, 0x2d, 0x3d, 0xa1, 0xfc, 0xd6, 0x2e, 0x87, 0x9b, + 0x55, 0xb0, 0x03, 0xee, 0x1e, 0x52, 0xe4, 0xea, 0xe1, 0x83, 0xaf, 0x1f, 0x47, 0xf3, 0x79, 0x90, + 0x7b, 0x29, 0xfc, 0x15, 0x9c, 0xfd, 0x94, 0xf3, 0x9b, 0x6e, 0xe2, 0xe9, 0xaa, 0xf9, 0x18, 0x45, + 0x77, 0x58, 0x1a, 0xe2, 0x93, 0xe6, 0xad, 0x4b, 0x5d, 0x08, 0x05, 0x48, 0xdc, 0xb3, 0x6c, 0x83, + 0xc6, 0x44, 0xa5, 0xc2, 0xf3, 0x49, 0xf8, 0x60, 0x0c, 0x9e, 0xc5, 0xaa, 0x5f, 0xda, 0xdb, 0x0f, + 0x30, 0xb2, 0x61, 0x3a, 0x30, 0xd6, 0x8d, 0xf5, 0x75, 0x26, 0xf1, 0xf7, 0x6e, 0xd0, 0x17, 0x51, + 0x39, 0x02, 0x01, 0x3c, 0x22, 0x78, 0x27, 0xcd, 0x64, 0x55, 0x43, 0xd2, 0xf3, 0x4c, 0xba, 0x58, + 0x80, 0x5d, 0xee, 0x4e, 0xa8, 0xe3, 0xf2, 0x9b, 0x92, 0xb3, 0xa2, 0x1c, 0x0f, 0x3e, 0xe7, 0x32, + 0x14, 0xea, 0x03, 0x78, 0xae, 0xa5, 0x70, 0xc4, 0x4d, 0x8a, 0x18, 0xd6, 0x5d, 0x4c, 0x1f, 0x48, + 0x34, 0xb7, 0xde, 0xc1, 0x14, 0x3e, 0xd8, 0xa7, 0x33, 0x30, 0x1a, 0x92, 0x07, 0xd9, 0x03, 0x3d, + 0x86, 0x5d, 0x30, 0xad, 0x6a, 0x99, 0x62, 0xee, 0xcd, 0x77, 0x1b, 0xf6, 0x92, 0x55, 0x2d, 0x6f, + 0xdf, 0x65, 0x9e, 0x87, 0x7e, 0xbd, 0xea, 0xd4, 0xb7, 0x42, 0x57, 0x2d, 0xad, 0xcf, 0xcc, 0x14, + 0x8e, 0x99, 0xdd, 0x3b, 0x30, 0xa2, 0x73, 0xa2, 0x0b, 0xe8, 0x82, 0xa7, 0x30, 0xe0, 0xc3, 0x02, + 0x78, 0x99, 0xc2, 0xaa, 0x4f, 0xe0, 0x84, 0xbc, 0x8e, 0x8a, 0xcb, 0x4b, 0xdf, 0xdc, 0x1f, 0x4f, + 0xdc, 0x91, 0x82, 0xd8, 0xfc, 0x42, 0xb8, 0x8a, 0xcb, 0x3a, 0xca, 0x39, 0x90, 0x31, 0x63, 0x15, + 0xd4, 0xd0, 0x48, 0x78, 0x41, 0x6e, 0xe7, 0x36, 0x7c, 0x14, 0xd4, 0x50, 0xb6, 0x1f, 0x71, 0xcb, + 0x1b, 0xb3, 0xcf, 0x4a, 0x91, 0xdc, 0x40, 0xcb, 0x1b, 0x8b, 0x03, 0xc9, 0x5e, 0xf6, 0x91, 0xdd, + 0xce, 0xb6, 0xef, 0x23, 0x7d, 0x16, 0x4f, 0xca, 0x31, 0x3e, 0x93, 0x1c, 0xe5, 0x87, 0x13, 0x51, + 0x88, 0xa8, 0x49, 0x9f, 0x7a, 0xb4, 0xe1, 0xc1, 0xf9, 0xad, 0x82, 0x38, 0xa3, 0xc4, 0x9a, 0x34, + 0x1c, 0xb8, 0xe8, 0x0b, 0x71, 0x74, 0xad, 0xd1, 0x6c, 0x9b, 0x21, 0x8e, 0xcd, 0xb8, 0x49, 0x1e, + 0x35, 0xc6, 0x11, 0xab, 0x17, 0x30, 0x5c, 0x28, 0x7a, 0x47, 0x43, 0x4a, 0xc6, 0xa1, 0x8b, 0x05, + 0xb7, 0x2a, 0x34, 0xb8, 0x95, 0xfd, 0x50, 0xf7, 0x62, 0x3c, 0xc1, 0xb2, 0x55, 0x6a, 0x98, 0x3a, + 0xf5, 0xfa, 0x78, 0xcc, 0xdb, 0x2b, 0x18, 0xff, 0xe0, 0xfb, 0x24, 0x62, 0x0d, 0x7c, 0xf3, 0x99, + 0x18, 0x6e, 0x72, 0x93, 0x45, 0xf4, 0x32, 0x04, 0x38, 0x7f, 0x7b, 0x60, 0x37, 0x13, 0x5b, 0x60, + 0xc3, 0x54, 0x4b, 0x18, 0x16, 0xf1, 0xde, 0x1a, 0xf5, 0x87, 0xde, 0xf7, 0x97, 0xbc, 0xfe, 0xaa, + 0x56, 0x2f, 0xdd, 0xb3, 0x8c, 0xaa, 0x23, 0x15, 0xb7, 0x76, 0x1a, 0x26, 0x6a, 0x3a, 0x3b, 0x14, + 0xd4, 0x2c, 0xcb, 0x2c, 0x38, 0x46, 0x45, 0xb7, 0x1d, 0xad, 0x52, 0xa3, 0x36, 0xb8, 0x23, 0x3f, + 0x8e, 0x5f, 0xef, 0x59, 0x96, 0xb9, 0xca, 0xbf, 0xa9, 0x3f, 0xce, 0x9f, 0x35, 0x23, 0xc6, 0x44, + 0x0e, 0xd7, 0x60, 0x1f, 0xdf, 0xfc, 0x68, 0x6c, 0x72, 0xa1, 0x4e, 0x7b, 0x15, 0x6a, 0xb4, 0x1b, + 0xa3, 0x43, 0xce, 0xa4, 0x4e, 0x7a, 0xd5, 0xc0, 0x3b, 0x96, 0x7a, 0x08, 0x8d, 0x9b, 0xe7, 0xcb, + 0x9c, 0x56, 0xa9, 0x69, 0x46, 0xb9, 0xca, 0x45, 0xf0, 0xfd, 0x4e, 0x34, 0x60, 0x91, 0x7d, 0x90, + 0xd6, 0x4d, 0x78, 0xc6, 0xa5, 0xd1, 0x9d, 0x04, 0xa4, 0xb2, 0x88, 0x5d, 0xbc, 0x87, 0xaf, 0x33, + 0xc9, 0x67, 0x60, 0x8d, 0xad, 0x51, 0xef, 0x00, 0xd4, 0xdc, 0xec, 0x75, 0xe2, 0x3e, 0x91, 0x1f, + 0x51, 0xe0, 0x48, 0x60, 0x60, 0x2a, 0x04, 0x31, 0xba, 0x5d, 0xdc, 0xd0, 0x5d, 0x7d, 0xc5, 0xeb, + 0xeb, 0xa9, 0xe4, 0x6b, 0x41, 0xce, 0x15, 0x9b, 0x21, 0xcb, 0xcc, 0x1f, 0xf2, 0x0d, 0xed, 0x36, + 0xf1, 0x4e, 0x2b, 0x88, 0x98, 0xfc, 0x7f, 0xd8, 0xeb, 0x58, 0x8e, 0x66, 0x46, 0x0a, 0x29, 0xc5, + 0x16, 0x3a, 0x41, 0xb1, 0x84, 0x44, 0x44, 0x7e, 0x56, 0x81, 0xe3, 0x5c, 0xc1, 0xe4, 0x58, 0xed, + 0x6c, 0x8b, 0xd5, 0xa3, 0x38, 0xc8, 0x6a, 0x4b, 0x8e, 0x2b, 0x70, 0x48, 0x10, 0x14, 0xcb, 0x79, + 0x97, 0xbc, 0x7a, 0x3e, 0xcb, 0x47, 0x8e, 0x9c, 0x00, 0xf5, 0x12, 0xea, 0xe8, 0xa2, 0x7d, 0xb7, + 0xe6, 0xe8, 0xa5, 0xbb, 0x0d, 0xe7, 0xee, 0x3a, 0xeb, 0x60, 0xb7, 0x0e, 0x84, 0x9d, 0x47, 0xe5, + 0x8d, 0x04, 0x46, 0xe5, 0x3d, 0x08, 0x03, 0x86, 0x5d, 0xb0, 0xdc, 0xef, 0x05, 0xab, 0xe1, 0xa0, + 0x57, 0x05, 0x86, 0x00, 0x51, 0x9f, 0xc3, 0x5b, 0x9f, 0x10, 0x0e, 0xbc, 0x14, 0x13, 0xf6, 0x6a, + 0x1e, 0x7d, 0xf7, 0x84, 0x8e, 0x38, 0x68, 0x82, 0x49, 0x51, 0xaf, 0xe2, 0x46, 0xb8, 0xa0, 0xeb, + 0xf3, 0x86, 0xcd, 0xae, 0xdd, 0xd0, 0xe3, 0xf5, 0x6c, 0xe1, 0xf1, 0x4c, 0x7f, 0x4f, 0xc1, 0x6d, + 0x30, 0x0e, 0x01, 0xd2, 0xf0, 0x2c, 0x80, 0x63, 0xe8, 0x75, 0xf1, 0x5c, 0xa4, 0x1c, 0xed, 0xcc, + 0xf7, 0xb9, 0x2d, 0xec, 0x56, 0x27, 0x0f, 0x03, 0xc2, 0xfb, 0x6e, 0x5e, 0x1b, 0x24, 0x7a, 0x27, + 0x9e, 0x01, 0x57, 0x0d, 0xbd, 0x4e, 0x47, 0xeb, 0xd7, 0x9a, 0x43, 0x93, 0xbb, 0xd0, 0x2f, 0x8c, + 0x9a, 0x63, 0xe2, 0x85, 0xc1, 0x54, 0x0a, 0x94, 0xab, 0xab, 0x4b, 0x79, 0xe0, 0xf6, 0xcc, 0x31, + 0x85, 0x05, 0xf3, 0x74, 0xe3, 0x8a, 0xca, 0x85, 0xf2, 0x19, 0xfe, 0x80, 0x16, 0xd9, 0x47, 0xec, + 0xcc, 0xbb, 0xd7, 0x75, 0xbd, 0x50, 0xc2, 0xef, 0xcd, 0xd5, 0xa4, 0xa4, 0xe2, 0x5a, 0xe0, 0x1d, + 0x5b, 0x0f, 0x37, 0xaa, 0xd7, 0x71, 0xa3, 0xc1, 0x78, 0xef, 0x65, 0xc3, 0xae, 0x68, 0x4e, 0xd1, + 0x73, 0x87, 0x79, 0x00, 0xfa, 0x4b, 0x0d, 0xdb, 0x29, 0xac, 0x6b, 0x45, 0xc7, 0x62, 0xa9, 0x29, + 0x1d, 0x79, 0x70, 0x9b, 0x16, 0x68, 0x8b, 0xfa, 0x1b, 0x1d, 0x30, 0x1c, 0x80, 0x26, 0x2a, 0xf8, + 0xce, 0x44, 0xf2, 0x81, 0x98, 0x64, 0x16, 0xfa, 0xb4, 0x4d, 0xcd, 0x48, 0x1d, 0x01, 0xd1, 0x84, + 0x22, 0x17, 0xa0, 0x8b, 0x1a, 0x81, 0x34, 0x2e, 0x3e, 0x83, 0x20, 0x0b, 0x30, 0x80, 0x91, 0xee, + 0x85, 0x0d, 0xcb, 0x2c, 0x79, 0x1e, 0x59, 0x5a, 0xbf, 0xfe, 0x20, 0xe0, 0x2d, 0xcb, 0x2c, 0x91, + 0x17, 0x61, 0x48, 0x7f, 0x54, 0xd3, 0x8b, 0xee, 0xfa, 0x65, 0xb4, 0x74, 0xcb, 0x63, 0x1a, 0xe4, + 0xa0, 0xd4, 0xfa, 0x90, 0x39, 0x80, 0x92, 0xb1, 0x8e, 0x0f, 0x38, 0xec, 0xfa, 0x5d, 0xf2, 0x04, + 0xd4, 0x04, 0x53, 0x7f, 0x18, 0xf7, 0xf6, 0x08, 0x31, 0xa3, 0xb6, 0xbd, 0x02, 0x84, 0xb3, 0x5e, + 0x11, 0x5f, 0xd1, 0x95, 0xf9, 0x90, 0x44, 0xa6, 0x00, 0x47, 0x99, 0x1f, 0x5d, 0x0b, 0x8e, 0xa1, + 0x1e, 0xc1, 0xc5, 0x8f, 0x5d, 0x5d, 0x47, 0x31, 0xd7, 0x9c, 0x2d, 0x61, 0xaa, 0x7e, 0x31, 0x03, + 0xbb, 0x3d, 0x5d, 0xd8, 0x61, 0x8b, 0xce, 0xe7, 0xff, 0x71, 0x7d, 0x52, 0x7f, 0x81, 0x7b, 0xf3, + 0xb1, 0x33, 0x88, 0x52, 0xac, 0x42, 0x96, 0x0f, 0x48, 0x6f, 0xd0, 0xbd, 0xa3, 0x4b, 0x85, 0xcd, + 0x44, 0xce, 0x7f, 0x7e, 0xcf, 0x5a, 0xf4, 0xb8, 0x62, 0x1b, 0x0a, 0x98, 0x44, 0xd7, 0x95, 0x36, + 0x6c, 0xc7, 0x28, 0x0a, 0xd9, 0x5e, 0x80, 0x41, 0xdf, 0x07, 0x42, 0xa0, 0xd3, 0xb5, 0xeb, 0x68, + 0xe3, 0xe9, 0xdf, 0xae, 0x08, 0x9b, 0xa9, 0x41, 0x9d, 0x79, 0xf6, 0x43, 0xb5, 0x71, 0x07, 0x4b, + 0x18, 0x43, 0x1c, 0x5a, 0xc1, 0x16, 0xad, 0x32, 0x51, 0xf2, 0x3e, 0x3c, 0x79, 0x0f, 0xb0, 0xeb, + 0xff, 0x2f, 0x1b, 0x8e, 0xf5, 0x92, 0xd6, 0x30, 0xe9, 0x36, 0x21, 0x18, 0xf9, 0x63, 0x05, 0x26, + 0x82, 0x5f, 0x70, 0xf8, 0xe7, 0x61, 0xa4, 0xa2, 0xd9, 0x8e, 0x5e, 0xe7, 0x6f, 0x94, 0x3a, 0xdf, + 0x48, 0x87, 0x59, 0xfb, 0x2c, 0x6f, 0x26, 0x27, 0x61, 0xbc, 0x24, 0x8e, 0x00, 0x9e, 0xee, 0xec, + 0x29, 0x64, 0xac, 0xf9, 0xad, 0x09, 0x72, 0x04, 0x86, 0xec, 0x9a, 0xe5, 0x78, 0x3a, 0xb3, 0xc7, + 0xa0, 0x41, 0xb7, 0xd5, 0xd7, 0xad, 0xf8, 0xea, 0xcc, 0x09, 0x4f, 0xb7, 0x4e, 0xd6, 0xcd, 0x6d, + 0x15, 0xdd, 0xd4, 0x79, 0xb4, 0xfb, 0x78, 0xf0, 0x9d, 0x5f, 0xa8, 0x5b, 0x15, 0xca, 0x92, 0xe7, + 0xae, 0x6b, 0xd3, 0xfd, 0x5d, 0xf0, 0xdf, 0x64, 0x0e, 0xd0, 0x46, 0xfe, 0xda, 0xca, 0xc3, 0xa8, + 0x22, 0xb0, 0xe0, 0x9c, 0x24, 0x9e, 0x8d, 0xf9, 0xf1, 0xfa, 0x96, 0x61, 0x3b, 0x56, 0xdd, 0x28, + 0x0a, 0x5f, 0xab, 0x68, 0x79, 0x5c, 0xa9, 0x44, 0x14, 0x0e, 0x9a, 0x96, 0x38, 0x14, 0xe2, 0x5e, + 0x60, 0x90, 0xbb, 0x84, 0xf4, 0x83, 0x4c, 0x16, 0x82, 0x0f, 0xd1, 0x80, 0xe3, 0xf9, 0xa5, 0xfe, + 0x81, 0x02, 0x63, 0xf4, 0x33, 0x1b, 0xd6, 0x75, 0xae, 0xdc, 0xa3, 0x20, 0x79, 0x01, 0x08, 0x1b, + 0xa6, 0x5c, 0xb7, 0x1a, 0x35, 0xd7, 0x1d, 0xb5, 0xf5, 0x22, 0xaa, 0xf8, 0x08, 0xfd, 0x72, 0x13, + 0x3f, 0xac, 0xe8, 0x45, 0xb2, 0x07, 0x7a, 0x2a, 0xda, 0xa3, 0x82, 0x56, 0xd6, 0x51, 0xe1, 0xbb, + 0x2b, 0xda, 0xa3, 0xd9, 0xb2, 0x4e, 0xa6, 0x60, 0xcc, 0xa8, 0x16, 0xcd, 0x86, 0x4b, 0xaf, 0xf6, + 0x6a, 0x61, 0x83, 0x0d, 0x82, 0x21, 0x7d, 0xa3, 0xf8, 0x29, 0xaf, 0xbd, 0x8a, 0xa3, 0xbb, 0x8a, + 0xc7, 0xfb, 0x8b, 0xb3, 0x3c, 0x7d, 0xe5, 0xcd, 0x0f, 0x63, 0x3b, 0x3f, 0xa3, 0xab, 0xbf, 0xa6, + 0xe0, 0x7d, 0xbd, 0xc8, 0xb1, 0xd0, 0x1c, 0xc3, 0x34, 0x9c, 0x2d, 0xa9, 0x37, 0xcb, 0x22, 0xec, + 0x66, 0xfc, 0x21, 0x49, 0xae, 0x8b, 0xea, 0x32, 0x2e, 0xe3, 0x88, 0x45, 0xcc, 0x57, 0x7e, 0xcc, + 0x09, 0x37, 0xaa, 0x9f, 0xce, 0xf8, 0x74, 0xd3, 0x4b, 0xa2, 0xc8, 0xc5, 0x80, 0x4d, 0xd1, 0x8a, + 0x2f, 0x7c, 0x07, 0x5a, 0x6e, 0x87, 0x4d, 0x10, 0xf2, 0x32, 0x8c, 0x70, 0x0e, 0xc4, 0x84, 0x65, + 0x42, 0x0f, 0x5a, 0x98, 0xc1, 0x2b, 0x1e, 0x61, 0xb0, 0xa7, 0xc7, 0xf0, 0x0c, 0x23, 0x16, 0xfe, + 0x89, 0xdc, 0x82, 0x7e, 0xaf, 0xc4, 0x3a, 0xa8, 0x96, 0x3d, 0x27, 0xa9, 0x65, 0x79, 0xa8, 0x0b, + 0x99, 0x8a, 0x44, 0xa2, 0x9c, 0x51, 0xd5, 0xf8, 0x54, 0xb4, 0x7a, 0x57, 0x55, 0xcb, 0x18, 0x6c, + 0x1d, 0x00, 0x12, 0xe6, 0x31, 0xf0, 0xec, 0x93, 0x28, 0x2f, 0x86, 0x03, 0x85, 0x12, 0x7c, 0xf5, + 0x79, 0x08, 0xc7, 0x23, 0x9f, 0xfe, 0xe7, 0xac, 0x6a, 0xc9, 0x60, 0x51, 0x62, 0x3b, 0x9d, 0x79, + 0xfc, 0xab, 0x1d, 0x70, 0x28, 0xf4, 0x2a, 0x1d, 0x1c, 0xef, 0x07, 0x37, 0xbe, 0xe3, 0x26, 0x0c, + 0x38, 0x75, 0xa3, 0x5c, 0xd6, 0xeb, 0xf7, 0xd2, 0x3e, 0x30, 0xfa, 0x00, 0x5b, 0xc7, 0x79, 0x1c, + 0x81, 0x1e, 0xc3, 0xa6, 0xcf, 0xf9, 0xd4, 0x2b, 0xed, 0xcd, 0xf5, 0xbf, 0xfb, 0xd6, 0x01, 0xde, + 0x94, 0xe7, 0x7f, 0x04, 0xc2, 0x41, 0x7a, 0x62, 0xc2, 0x41, 0x7a, 0x9b, 0xe1, 0x20, 0x9f, 0x51, + 0x7c, 0x41, 0x75, 0x89, 0x4a, 0x21, 0x92, 0x3e, 0xfd, 0x21, 0x09, 0x57, 0x52, 0x85, 0x24, 0x04, + 0xf1, 0x8a, 0xc0, 0x84, 0xcb, 0x68, 0x40, 0x78, 0x00, 0x7f, 0xaa, 0xa0, 0x4a, 0xf5, 0x37, 0xf9, + 0x45, 0x58, 0x04, 0x38, 0xd2, 0x3d, 0x0b, 0x9d, 0x39, 0x43, 0xec, 0x22, 0xc7, 0x25, 0xa8, 0xf6, + 0x84, 0x4f, 0x50, 0x50, 0x17, 0xc5, 0xac, 0xfd, 0x80, 0x67, 0x64, 0xa6, 0x45, 0xe1, 0x82, 0x8a, + 0x8b, 0x75, 0xff, 0xbb, 0x67, 0x3a, 0x66, 0x7f, 0x9b, 0x7b, 0x96, 0xb1, 0x48, 0xde, 0x57, 0x2c, + 0x7f, 0x43, 0x81, 0xd1, 0xd0, 0xb7, 0xa7, 0xba, 0xe8, 0xfd, 0xcb, 0xa4, 0x23, 0xb8, 0x4c, 0x42, + 0x76, 0xaf, 0x33, 0xe2, 0xc9, 0x70, 0x19, 0x17, 0x0e, 0xbe, 0x26, 0x3b, 0x56, 0xc5, 0x28, 0xde, + 0x78, 0xa4, 0x17, 0x1b, 0xae, 0x72, 0x2f, 0xe8, 0xfa, 0x72, 0xc3, 0x74, 0x8c, 0x9a, 0x69, 0xe8, + 0x75, 0x29, 0x99, 0x6e, 0xe2, 0x13, 0xaa, 0x0c, 0x3a, 0x94, 0xee, 0x1c, 0x40, 0x45, 0xb4, 0xa6, + 0x99, 0x46, 0x0f, 0x98, 0x7a, 0x9e, 0xe7, 0x5a, 0x53, 0xa1, 0xae, 0x38, 0xda, 0x03, 0xfd, 0x66, + 0x5d, 0x6b, 0x46, 0x67, 0x4e, 0x42, 0x4f, 0xd9, 0xfd, 0xad, 0xeb, 0xfc, 0x7a, 0x08, 0x7f, 0xaa, + 0x5f, 0x10, 0xa9, 0xd4, 0x21, 0x50, 0x24, 0xf0, 0x0a, 0x74, 0xd1, 0xce, 0x78, 0xf9, 0x91, 0xb8, + 0xa5, 0x32, 0x24, 0x0c, 0x9e, 0x41, 0x91, 0x15, 0x68, 0x3e, 0xe2, 0x15, 0x18, 0x22, 0x89, 0x8c, + 0x2e, 0xf1, 0x0e, 0xc7, 0x70, 0x0d, 0xe9, 0xbe, 0xdf, 0xea, 0x2a, 0xda, 0x09, 0xfa, 0x6b, 0xb6, + 0xe1, 0x6c, 0x58, 0x75, 0xe3, 0x87, 0x68, 0x08, 0x67, 0x88, 0xe3, 0xba, 0x9f, 0xe3, 0xba, 0x77, + 0x2e, 0x32, 0xfe, 0xb9, 0xf8, 0x08, 0x5e, 0x1f, 0x45, 0x61, 0xc5, 0xc9, 0x38, 0x03, 0xdd, 0x18, + 0x9e, 0xca, 0x24, 0xf5, 0x2c, 0x4a, 0x6a, 0x77, 0x58, 0x52, 0x8b, 0x55, 0x27, 0x8f, 0x9d, 0xc5, + 0xb5, 0x65, 0x18, 0xb3, 0xdd, 0x92, 0x60, 0xd7, 0xe5, 0x3d, 0x18, 0x0f, 0x2d, 0x62, 0xbe, 0x09, + 0xbb, 0x7f, 0xa5, 0x50, 0x85, 0x34, 0x44, 0x8e, 0x50, 0x40, 0x86, 0x9c, 0x47, 0x3a, 0x77, 0x53, + 0x34, 0xb6, 0xcc, 0x4d, 0x79, 0xc4, 0x6c, 0x21, 0xb4, 0x7a, 0x1e, 0x3d, 0x29, 0x7c, 0x9b, 0x62, + 0xc7, 0x57, 0xa9, 0x85, 0xf4, 0x31, 0x74, 0xa7, 0x02, 0x90, 0x42, 0x25, 0x7b, 0xf0, 0x58, 0x9c, + 0x66, 0xc1, 0x70, 0x18, 0x51, 0xd3, 0xc3, 0x87, 0xdc, 0xf3, 0xcc, 0xb4, 0x2f, 0xf2, 0x6b, 0x6c, + 0x35, 0x87, 0xe7, 0x5b, 0x27, 0x54, 0x73, 0x06, 0x9a, 0xd5, 0x1c, 0x1e, 0xc0, 0xa0, 0xef, 0x53, + 0xb2, 0xf7, 0xef, 0x61, 0x38, 0xd3, 0x06, 0xc3, 0xa7, 0x45, 0xa4, 0x50, 0xd5, 0xaa, 0x2c, 0x1b, + 0x55, 0x9e, 0x4e, 0x90, 0x9c, 0x87, 0xff, 0x71, 0x11, 0x22, 0x14, 0x84, 0xc2, 0xa9, 0xb8, 0x14, + 0x58, 0x0c, 0x72, 0x5e, 0x17, 0x2e, 0x89, 0x03, 0x31, 0xd8, 0x85, 0x1c, 0x3e, 0x25, 0x82, 0xa9, + 0x42, 0x1d, 0x70, 0xfc, 0x8f, 0xc3, 0x18, 0x4b, 0xcf, 0xaf, 0x18, 0x55, 0x91, 0x66, 0xc1, 0xa5, + 0xf2, 0x42, 0xcb, 0x1c, 0x7d, 0x2f, 0x4b, 0xa3, 0xa5, 0xe0, 0x28, 0xc7, 0x4e, 0x43, 0x9f, 0x48, + 0x3a, 0x26, 0xe3, 0x30, 0xe2, 0xfe, 0x5b, 0xb8, 0x5f, 0xb5, 0x6b, 0x7a, 0xd1, 0x58, 0x37, 0xf4, + 0xd2, 0xc8, 0x2e, 0xd2, 0x03, 0x1d, 0xb9, 0xc6, 0xd6, 0x88, 0x42, 0x7a, 0xa1, 0x73, 0x45, 0x37, + 0xcd, 0x91, 0xcc, 0xb1, 0x97, 0x60, 0x3c, 0x2a, 0xa2, 0xdc, 0x45, 0xe0, 0x81, 0xa5, 0x88, 0x47, + 0x76, 0x91, 0x31, 0x18, 0x76, 0x0f, 0xee, 0x2f, 0x5b, 0x75, 0xdb, 0x59, 0xb5, 0x72, 0xba, 0xed, + 0x8c, 0x28, 0xbc, 0xd1, 0xfd, 0xb5, 0x6a, 0xd1, 0x4f, 0x23, 0x99, 0x99, 0x9f, 0xb4, 0xa0, 0x8b, + 0x4e, 0x07, 0x79, 0x5b, 0x81, 0xdd, 0x4b, 0xa7, 0x02, 0x0e, 0x43, 0xce, 0xb2, 0x1e, 0x90, 0x6b, + 0x2d, 0x0b, 0xac, 0x24, 0xfb, 0x2b, 0xd9, 0xeb, 0xed, 0x23, 0x60, 0x22, 0x51, 0x17, 0x7e, 0xec, + 0x1b, 0xdf, 0xf9, 0x5c, 0xe6, 0x3a, 0xb9, 0x3a, 0x9d, 0x50, 0xc7, 0xa9, 0x79, 0xc7, 0x32, 0xbd, + 0x74, 0x4a, 0x90, 0x3f, 0xfd, 0x58, 0xe8, 0xff, 0x13, 0xf2, 0xba, 0x02, 0xc3, 0x4b, 0xa7, 0x84, + 0x0b, 0x48, 0xd9, 0xbb, 0x20, 0x45, 0x5d, 0x94, 0xd7, 0x99, 0xbd, 0xd8, 0x0e, 0x28, 0xb2, 0x74, + 0x9d, 0xb2, 0x74, 0x91, 0x9c, 0x4f, 0x62, 0xc9, 0xae, 0x59, 0x4e, 0x2c, 0x33, 0x5f, 0x54, 0x60, + 0x2c, 0xa2, 0x4c, 0x10, 0x39, 0xdb, 0x92, 0xaa, 0xc8, 0xaa, 0x43, 0xd9, 0x73, 0xa9, 0xe1, 0x90, + 0x95, 0x19, 0xca, 0xca, 0x0b, 0xe4, 0xd8, 0xb4, 0x44, 0x41, 0x2e, 0x24, 0xf2, 0x2f, 0x14, 0x20, + 0xe1, 0xba, 0x3c, 0xe4, 0x62, 0x5b, 0xc5, 0x7c, 0x18, 0xfd, 0x97, 0xb6, 0x51, 0x08, 0x48, 0xbd, + 0x46, 0x79, 0xb8, 0x40, 0xce, 0xc9, 0xf0, 0x30, 0x6d, 0x87, 0x29, 0x7f, 0x5d, 0x81, 0xd1, 0x10, + 0x7e, 0x09, 0xe5, 0x8a, 0x2b, 0x7e, 0x91, 0xbd, 0xd8, 0x0e, 0x28, 0x72, 0x73, 0x95, 0x72, 0x73, + 0x9e, 0x9c, 0x6d, 0x8f, 0x1b, 0xf2, 0x27, 0x0a, 0x8c, 0x04, 0x0b, 0x0f, 0x91, 0xf3, 0xd2, 0xfa, + 0x11, 0xd8, 0xfb, 0xb2, 0x17, 0xda, 0x80, 0x44, 0x4e, 0xae, 0x50, 0x4e, 0xce, 0x91, 0x33, 0x52, + 0x9c, 0xe8, 0x41, 0x9a, 0xff, 0x5c, 0x81, 0xe1, 0x40, 0x35, 0x1f, 0xd2, 0x5a, 0xcf, 0xa3, 0x6b, + 0x21, 0x65, 0xcf, 0xa7, 0x07, 0x4c, 0x63, 0xbf, 0x44, 0x43, 0xa0, 0xe6, 0xd1, 0xf4, 0x63, 0x94, + 0xce, 0x13, 0x2a, 0x97, 0x60, 0x71, 0x22, 0x92, 0x9a, 0xac, 0x14, 0x72, 0x89, 0xab, 0x84, 0x94, + 0x52, 0x2e, 0xc1, 0x2a, 0x4e, 0xe4, 0x9f, 0x15, 0xd8, 0x1d, 0x59, 0x61, 0x86, 0x5c, 0x91, 0xa7, + 0x29, 0xa2, 0x44, 0x51, 0xf6, 0x6a, 0xbb, 0xe0, 0xc8, 0xd7, 0x1d, 0xca, 0xd7, 0x2d, 0xb2, 0x90, + 0x8e, 0x2f, 0x2f, 0x2e, 0x9f, 0x91, 0x7e, 0x4b, 0x81, 0x89, 0xe8, 0x52, 0x3a, 0xa4, 0x4d, 0x52, + 0x85, 0xf4, 0xae, 0xb5, 0x0d, 0x8f, 0xbc, 0xce, 0x51, 0x5e, 0xaf, 0x90, 0x4b, 0xed, 0xf3, 0x6a, + 0x93, 0xaf, 0x28, 0x30, 0xe0, 0xad, 0x4d, 0x44, 0x4e, 0xb7, 0x24, 0x2b, 0xa2, 0x66, 0x53, 0xf6, + 0x4c, 0x4a, 0x28, 0x64, 0x21, 0x47, 0x59, 0xb8, 0x4c, 0x2e, 0x4a, 0xb1, 0xe0, 0xab, 0xba, 0x34, + 0xfd, 0x98, 0xfe, 0x7c, 0x42, 0xbe, 0xa4, 0xc0, 0xa0, 0xaf, 0xba, 0x12, 0x49, 0x47, 0x8c, 0x10, + 0xc8, 0xd9, 0xb4, 0x60, 0xc8, 0xc4, 0x25, 0xca, 0xc4, 0x19, 0x72, 0x2a, 0x3d, 0x13, 0x36, 0xf9, + 0x2d, 0x05, 0xfa, 0x3d, 0xc5, 0x3e, 0xc8, 0xa9, 0xd6, 0xdb, 0x46, 0xa8, 0x48, 0x49, 0xf6, 0x74, + 0x3a, 0x20, 0xa4, 0xfb, 0x04, 0xa5, 0xfb, 0x18, 0x39, 0xda, 0xd2, 0x85, 0xc1, 0x5b, 0x66, 0xf2, + 0x05, 0x05, 0xc0, 0x53, 0xd8, 0x65, 0x26, 0xc5, 0xb0, 0x9c, 0xd4, 0x53, 0xa9, 0x60, 0x90, 0xd2, + 0xcb, 0x94, 0xd2, 0xb3, 0xe4, 0xb4, 0x2c, 0xa5, 0xbe, 0x35, 0xfc, 0x25, 0x05, 0x86, 0x03, 0x35, + 0x55, 0x24, 0x36, 0x91, 0xe8, 0x7a, 0x30, 0x12, 0x9b, 0x48, 0x4c, 0xf9, 0x16, 0xf5, 0x0c, 0x65, + 0x62, 0x9a, 0x1c, 0x6f, 0xc9, 0xc4, 0x7a, 0xc3, 0x34, 0x0b, 0x7c, 0xce, 0x5f, 0x0b, 0x17, 0xd4, + 0x39, 0x9b, 0x92, 0x06, 0x79, 0x0f, 0x31, 0xba, 0x4a, 0x4b, 0x0a, 0x67, 0xd7, 0x43, 0xba, 0x4f, + 0x06, 0x5f, 0x56, 0x60, 0xd0, 0xe7, 0x48, 0x4b, 0x2c, 0xd2, 0x48, 0x9f, 0xfd, 0x6c, 0x5a, 0xb0, + 0x34, 0x2e, 0x15, 0x65, 0xc1, 0xe2, 0xb0, 0x3e, 0x06, 0xde, 0x54, 0x60, 0x24, 0x98, 0x9c, 0x2e, + 0xb1, 0x75, 0xc7, 0x54, 0x67, 0x91, 0xd8, 0xba, 0xe3, 0x2a, 0x7d, 0xa8, 0xb7, 0x29, 0x27, 0x37, + 0xc8, 0x9c, 0x1c, 0x27, 0xbe, 0xb5, 0x30, 0xfd, 0xd8, 0x77, 0xf9, 0xf9, 0x84, 0xfc, 0xbb, 0x02, + 0x93, 0x71, 0x75, 0x3e, 0x48, 0xeb, 0x83, 0x5f, 0x8b, 0xd2, 0x30, 0xd9, 0xd9, 0x6d, 0x60, 0x40, + 0x76, 0xef, 0x53, 0x76, 0xef, 0x92, 0xe5, 0x76, 0xd8, 0x45, 0x56, 0x85, 0x0b, 0xc6, 0x1f, 0xcf, + 0x9f, 0x90, 0xef, 0xb8, 0x07, 0x98, 0x50, 0xa1, 0x1e, 0x99, 0x03, 0x4c, 0x5c, 0x91, 0x21, 0x99, + 0x03, 0x4c, 0x6c, 0x65, 0xa0, 0xd4, 0x6c, 0x16, 0xd6, 0xb6, 0x30, 0x07, 0x35, 0x51, 0xbe, 0xaf, + 0x29, 0x30, 0x12, 0xac, 0x0c, 0x2c, 0xa1, 0xb6, 0x31, 0xf5, 0x8a, 0xb3, 0x17, 0xda, 0x80, 0x44, + 0x06, 0x2f, 0x52, 0x06, 0x4f, 0x93, 0x99, 0x24, 0x06, 0xb9, 0x08, 0x03, 0x5c, 0x7c, 0x57, 0x81, + 0xbd, 0xcd, 0xf5, 0xb0, 0x5a, 0xd7, 0xaa, 0xb6, 0xa1, 0x57, 0x9f, 0xea, 0x2a, 0x94, 0x97, 0x97, + 0xc3, 0xc9, 0x2d, 0x48, 0xac, 0xc7, 0xbf, 0x41, 0xb5, 0xf4, 0x27, 0x18, 0x4a, 0xaa, 0x65, 0x64, + 0xd5, 0x17, 0x49, 0xb5, 0x8c, 0xae, 0xf5, 0x22, 0x77, 0xf2, 0x61, 0x3b, 0x6f, 0x30, 0x8f, 0xd2, + 0x67, 0x3e, 0xff, 0x55, 0x81, 0xc9, 0xb8, 0xc2, 0x32, 0x12, 0x76, 0xa6, 0x45, 0x65, 0x1b, 0x09, + 0x3b, 0xd3, 0xaa, 0xaa, 0x8d, 0xba, 0x44, 0x39, 0x5d, 0x20, 0xf3, 0x92, 0x77, 0x54, 0xc9, 0xfc, + 0x7e, 0x53, 0x81, 0xb1, 0x88, 0x1b, 0x31, 0x72, 0x29, 0x05, 0xa1, 0xa1, 0xbd, 0xef, 0x72, 0x7b, + 0xc0, 0xc8, 0xe0, 0x3c, 0x65, 0xf0, 0x2a, 0xb9, 0x2c, 0xc9, 0x60, 0xf4, 0x3e, 0xf8, 0x2f, 0x0a, + 0x4c, 0x44, 0xd7, 0x17, 0x90, 0x38, 0x10, 0x25, 0x16, 0xb8, 0x90, 0x38, 0x10, 0x25, 0x17, 0x36, + 0x50, 0x3f, 0x4c, 0x39, 0xbc, 0x4d, 0x16, 0xd3, 0x70, 0x98, 0xbc, 0x1e, 0x7f, 0x26, 0x03, 0xfb, + 0x93, 0xcb, 0x1a, 0x90, 0x85, 0x94, 0x7b, 0x5c, 0x1c, 0xfb, 0x37, 0xb7, 0x8d, 0x07, 0xa7, 0xe1, + 0x63, 0x74, 0x1a, 0xee, 0x93, 0x95, 0xf6, 0xa7, 0x21, 0x7e, 0xdf, 0xfc, 0x2f, 0xdf, 0x42, 0x0e, + 0xec, 0x9e, 0xd7, 0xd3, 0x2a, 0x68, 0x68, 0x0f, 0x9d, 0xdd, 0x06, 0x86, 0x6d, 0xb1, 0x2f, 0xb9, + 0x9f, 0xfe, 0xb7, 0x02, 0x07, 0x82, 0x5a, 0x18, 0xdc, 0x8f, 0x9e, 0xfa, 0x3a, 0x48, 0x3b, 0x03, + 0xa9, 0x76, 0xa8, 0x3f, 0x52, 0x60, 0x34, 0x94, 0xc9, 0x2e, 0x71, 0x51, 0x1a, 0x57, 0x93, 0x42, + 0xe2, 0xa2, 0x34, 0x36, 0x71, 0x5e, 0x3d, 0x4b, 0x39, 0x3d, 0x41, 0xa6, 0x64, 0x8d, 0x36, 0x92, + 0xfb, 0x75, 0x05, 0x46, 0x42, 0xb5, 0x14, 0xce, 0xa7, 0x26, 0x44, 0xde, 0x8f, 0x88, 0x4b, 0xa8, + 0x97, 0xbb, 0x01, 0x09, 0x73, 0xe0, 0xb3, 0xc9, 0xdf, 0x55, 0x60, 0x4f, 0x4c, 0x0a, 0xbc, 0xc4, + 0xeb, 0x4f, 0x72, 0x02, 0x7e, 0xf6, 0x7a, 0xfb, 0x08, 0x90, 0xc5, 0x45, 0xca, 0xe2, 0x1c, 0x99, + 0x4d, 0xc5, 0x22, 0x37, 0x39, 0x3e, 0x4e, 0xff, 0x4a, 0x81, 0xf1, 0xa8, 0x9c, 0x45, 0x72, 0x39, + 0x85, 0x63, 0x1a, 0x4a, 0xde, 0xcf, 0x5e, 0x69, 0x13, 0x3a, 0xcd, 0xf5, 0x84, 0x68, 0x08, 0x2e, + 0xa8, 0xdf, 0x55, 0x60, 0x8c, 0xdf, 0x9f, 0x7b, 0x32, 0x27, 0x25, 0x6e, 0x82, 0xc2, 0x29, 0x98, + 0x12, 0x37, 0x41, 0x11, 0xc9, 0x99, 0x72, 0x37, 0x41, 0x15, 0x0a, 0x58, 0xa0, 0xf9, 0x90, 0xe4, + 0xd7, 0x15, 0xe8, 0x13, 0x19, 0x97, 0xe4, 0x64, 0xcb, 0x51, 0x83, 0x69, 0x9b, 0xd9, 0x99, 0x34, + 0x20, 0x48, 0xe6, 0x71, 0x4a, 0xe6, 0x73, 0xe4, 0x48, 0x12, 0x99, 0x35, 0x41, 0xd5, 0x5f, 0x2a, + 0x30, 0x16, 0x91, 0xf4, 0x4f, 0xd2, 0x3c, 0x34, 0x85, 0xe8, 0xbe, 0xdc, 0x1e, 0x70, 0x9a, 0x6b, + 0x77, 0xc1, 0x41, 0x48, 0x55, 0xfe, 0x4d, 0x81, 0x6c, 0x7c, 0x59, 0x01, 0x92, 0x6b, 0x83, 0xb6, + 0x40, 0xed, 0x86, 0xec, 0xdc, 0xb6, 0x70, 0xa4, 0x59, 0xf1, 0xb1, 0x6c, 0xfa, 0x56, 0xfc, 0xcf, + 0x67, 0xe0, 0xb0, 0x44, 0x5a, 0x3f, 0xb9, 0x9d, 0x82, 0xee, 0x56, 0x05, 0x2c, 0xb2, 0x4b, 0x3b, + 0x83, 0x0c, 0x67, 0x63, 0x85, 0xce, 0xc6, 0x32, 0xb9, 0x9d, 0x68, 0x1e, 0x44, 0x34, 0x94, 0xdc, + 0xbc, 0xfc, 0xad, 0x02, 0x63, 0x11, 0x89, 0xfe, 0x12, 0xca, 0x1d, 0x5f, 0xa5, 0x40, 0x42, 0xb9, + 0x13, 0x4a, 0x14, 0xa8, 0x37, 0x28, 0x9f, 0xd7, 0xc8, 0x95, 0x44, 0xa9, 0x8b, 0x3a, 0x43, 0x9e, + 0xca, 0x4b, 0x3e, 0xce, 0xbe, 0xad, 0xc0, 0x9e, 0x98, 0x5a, 0x00, 0x12, 0xbb, 0x59, 0x72, 0x51, + 0x03, 0x89, 0xdd, 0xac, 0x45, 0x45, 0x03, 0xd9, 0x27, 0x0b, 0x17, 0x49, 0x2c, 0x8b, 0xef, 0x28, + 0x30, 0x11, 0x5d, 0x34, 0x40, 0xc2, 0x79, 0x4c, 0xac, 0x7d, 0x20, 0xe1, 0x3c, 0x26, 0x17, 0x3e, + 0x50, 0x6f, 0x51, 0xfe, 0x72, 0xe4, 0x7a, 0x2a, 0x29, 0x62, 0xb1, 0xaa, 0x90, 0x20, 0x63, 0xaa, + 0x1d, 0x48, 0x08, 0x32, 0xb9, 0xf4, 0x8b, 0x84, 0x20, 0x5b, 0x14, 0x5a, 0x90, 0x13, 0x24, 0x0b, + 0x25, 0xe5, 0x39, 0x09, 0x51, 0xd7, 0x6b, 0xa3, 0xe1, 0x7c, 0x6c, 0xc9, 0x6b, 0xa5, 0x88, 0x32, + 0x02, 0x12, 0xce, 0x70, 0x6c, 0x35, 0x00, 0xf5, 0x1c, 0x65, 0xe8, 0x24, 0x99, 0x4e, 0x62, 0x28, + 0x22, 0x11, 0x9b, 0xfc, 0xb5, 0x02, 0x93, 0xf7, 0x9a, 0xa9, 0xdd, 0xef, 0x0b, 0x66, 0xa4, 0x02, + 0x3a, 0xbc, 0x49, 0xef, 0x41, 0xa6, 0xbe, 0xce, 0x53, 0x82, 0xfc, 0x35, 0x01, 0x24, 0x0c, 0x64, + 0x7c, 0xa5, 0x03, 0x09, 0x03, 0x99, 0x50, 0x02, 0x41, 0xbd, 0x40, 0x79, 0x3a, 0x45, 0x4e, 0x4a, + 0x0b, 0x88, 0x67, 0xee, 0x93, 0xb7, 0x15, 0x98, 0x88, 0x4e, 0xd5, 0x96, 0xb0, 0x18, 0x89, 0x49, + 0xe2, 0x12, 0x16, 0x23, 0x39, 0x47, 0x5c, 0xbd, 0x49, 0xd9, 0x9a, 0x25, 0xd7, 0x92, 0xd8, 0xf2, + 0x65, 0x4e, 0x7b, 0x73, 0xc6, 0x3d, 0xe1, 0x11, 0xae, 0xc8, 0x22, 0x12, 0xa5, 0x25, 0x44, 0x16, + 0x9f, 0xda, 0x2d, 0x21, 0xb2, 0x84, 0x9c, 0x6f, 0x39, 0x91, 0x45, 0x66, 0x85, 0x93, 0x37, 0x14, + 0x18, 0x0d, 0xa5, 0xf7, 0x4a, 0x2c, 0xa7, 0xb8, 0xcc, 0x6f, 0x89, 0xe5, 0x14, 0x9b, 0x4d, 0x2c, + 0x77, 0xf9, 0x17, 0xce, 0x37, 0x9e, 0x7e, 0xec, 0xc9, 0x35, 0x7f, 0x42, 0xfe, 0x41, 0x81, 0x3d, + 0x31, 0x19, 0xaf, 0x12, 0x16, 0x3d, 0x39, 0xdb, 0x58, 0xc2, 0xa2, 0xb7, 0x48, 0xb6, 0x95, 0xb3, + 0x19, 0x3c, 0xd6, 0x36, 0x22, 0x1f, 0x97, 0xfc, 0xa3, 0x02, 0x7b, 0x63, 0xb3, 0x5a, 0xc9, 0x6c, + 0x1a, 0x4d, 0x8a, 0xcc, 0xba, 0xcd, 0xe6, 0xb6, 0x83, 0x22, 0x4d, 0xb8, 0x81, 0x4f, 0x25, 0x69, + 0x05, 0x07, 0xf7, 0xdc, 0x66, 0x93, 0xcf, 0x2b, 0x30, 0xe4, 0xcf, 0x96, 0x4d, 0x3e, 0xbc, 0x45, + 0xe6, 0xdc, 0x26, 0x1f, 0xde, 0xa2, 0x93, 0x71, 0xd5, 0xd3, 0x94, 0xec, 0x29, 0xf2, 0x42, 0xe2, + 0x19, 0xd3, 0x70, 0xac, 0x02, 0x4b, 0x73, 0x35, 0x28, 0x71, 0x6f, 0x2a, 0x58, 0xde, 0x27, 0x94, + 0xd1, 0x2a, 0xb1, 0x92, 0xe2, 0x72, 0x69, 0x25, 0x56, 0x52, 0x6c, 0x02, 0xad, 0x5c, 0xd4, 0x0d, + 0x63, 0x41, 0xf8, 0x42, 0xd3, 0x8f, 0x7d, 0xa9, 0xbb, 0xd4, 0x7b, 0x9f, 0x88, 0xce, 0x90, 0x95, + 0x30, 0xe7, 0x89, 0xd9, 0xb9, 0x12, 0xe6, 0x3c, 0x39, 0x35, 0x57, 0xee, 0x36, 0x63, 0x43, 0xe0, + 0x28, 0xf8, 0xf2, 0x78, 0xe9, 0xb9, 0x24, 0xa2, 0x92, 0x8a, 0x84, 0x0d, 0x8f, 0x2f, 0xde, 0x22, + 0x61, 0xc3, 0x13, 0x8a, 0xb7, 0xc8, 0x9d, 0x4b, 0xbc, 0xe5, 0x5d, 0x0a, 0xd6, 0x3a, 0x6e, 0xc0, + 0xb6, 0x67, 0x77, 0xfa, 0x27, 0x05, 0xf6, 0xc6, 0x16, 0x6d, 0x91, 0x30, 0x0e, 0xad, 0x2a, 0xc3, + 0x48, 0x18, 0x87, 0x96, 0x35, 0x63, 0xd4, 0x59, 0xca, 0xeb, 0x25, 0x72, 0x21, 0xd1, 0xa9, 0x8d, + 0x60, 0xb4, 0x20, 0xaa, 0x55, 0xbd, 0xae, 0xc0, 0x48, 0x30, 0xd3, 0x57, 0xe2, 0x6e, 0x34, 0x26, + 0x7f, 0x39, 0x7b, 0xa1, 0x0d, 0xc8, 0x34, 0xcc, 0x34, 0xff, 0x43, 0x45, 0x04, 0xf7, 0x9d, 0x41, + 0xbe, 0xaa, 0xc0, 0x78, 0x44, 0xe2, 0xac, 0x4c, 0x8c, 0x58, 0x54, 0xa2, 0xaf, 0x44, 0xf8, 0x49, + 0x64, 0xaa, 0xaf, 0xdc, 0xeb, 0xf7, 0x1a, 0x05, 0xe5, 0x39, 0xdc, 0xe2, 0xb2, 0xfa, 0x97, 0x32, + 0x70, 0xa8, 0x65, 0x0a, 0x27, 0x59, 0x4c, 0xfd, 0x6a, 0x10, 0x97, 0x1b, 0x9c, 0x7d, 0x71, 0x27, + 0x50, 0x21, 0xe3, 0xff, 0x8f, 0x32, 0xfe, 0x32, 0xb9, 0x9f, 0xee, 0x31, 0xaa, 0xd8, 0x44, 0x98, + 0xf8, 0x1a, 0xf1, 0x7d, 0x05, 0xd4, 0xd6, 0x69, 0x75, 0xe4, 0x45, 0x49, 0x25, 0x94, 0x48, 0xf5, + 0xcb, 0xde, 0xde, 0x11, 0x5c, 0x69, 0x5c, 0x16, 0x8d, 0x62, 0x62, 0x8f, 0x33, 0x05, 0x77, 0x67, + 0x6f, 0xe6, 0xf8, 0x91, 0x3f, 0x53, 0x60, 0x24, 0x98, 0xa4, 0x27, 0x13, 0x52, 0x1c, 0x9d, 0x12, + 0x28, 0x13, 0x52, 0x1c, 0x93, 0x11, 0x28, 0x17, 0x24, 0xa6, 0xb1, 0x3b, 0x2e, 0xdb, 0x05, 0x67, + 0x49, 0x69, 0xd3, 0x8f, 0x31, 0xd1, 0xee, 0x09, 0xf9, 0x96, 0x02, 0x24, 0x9c, 0x37, 0x26, 0x11, + 0xfc, 0x10, 0x9b, 0xf0, 0x27, 0x11, 0xfc, 0x10, 0x9f, 0xd6, 0x27, 0x17, 0x69, 0x85, 0x99, 0x75, + 0x5e, 0x04, 0x9c, 0xa5, 0xfa, 0x13, 0x0f, 0x73, 0x6f, 0x2a, 0x30, 0x16, 0x91, 0xaa, 0x47, 0xda, + 0xa1, 0x30, 0xc5, 0xc6, 0x98, 0x90, 0x1d, 0x28, 0x77, 0x03, 0x12, 0xc1, 0x9f, 0xdd, 0x64, 0x90, + 0x06, 0xf6, 0xf9, 0x53, 0xd6, 0xce, 0x48, 0xae, 0x0f, 0x7f, 0xe2, 0x9f, 0x84, 0x65, 0x8d, 0xcc, + 0xfa, 0x93, 0x0b, 0xec, 0x43, 0x0b, 0x82, 0xde, 0xbe, 0x6f, 0x87, 0xf8, 0x7d, 0xd7, 0x23, 0xf6, + 0x25, 0xf5, 0x91, 0x94, 0xa4, 0xa4, 0xc8, 0xc0, 0x89, 0xce, 0x1e, 0x54, 0x4f, 0x51, 0x1e, 0x8e, + 0x93, 0x0f, 0xc9, 0xf3, 0x60, 0x93, 0x3f, 0xa5, 0x6f, 0x98, 0xfe, 0xfc, 0x34, 0xa9, 0x37, 0xcc, + 0xc8, 0x6c, 0x3f, 0xa9, 0x37, 0xcc, 0xe8, 0x8c, 0x3f, 0x39, 0x11, 0x84, 0x73, 0xf2, 0x44, 0x04, + 0xf7, 0x6b, 0xf4, 0x49, 0x39, 0x90, 0x69, 0x47, 0xd2, 0x13, 0x94, 0xea, 0x49, 0x39, 0x26, 0x7d, + 0x50, 0xee, 0x16, 0x2d, 0x22, 0xc1, 0x30, 0xb7, 0xf1, 0xb5, 0xb7, 0xf7, 0x2b, 0x6f, 0xbc, 0xbd, + 0x5f, 0xf9, 0xf6, 0xdb, 0xfb, 0x95, 0x9f, 0x7b, 0x67, 0xff, 0xae, 0x37, 0xde, 0xd9, 0xbf, 0xeb, + 0xef, 0xde, 0xd9, 0xbf, 0xeb, 0x95, 0x3b, 0x65, 0xc3, 0xd9, 0x68, 0xac, 0x4d, 0x15, 0xad, 0xca, + 0xf4, 0x22, 0x47, 0xba, 0xa4, 0xad, 0xd9, 0xcd, 0x21, 0x8e, 0x17, 0xad, 0xba, 0xee, 0xfd, 0xb9, + 0xa1, 0x19, 0x55, 0x7c, 0x72, 0xb3, 0x9b, 0xe3, 0x3b, 0x5b, 0x35, 0xdd, 0x5e, 0xeb, 0xae, 0xd5, + 0x2d, 0xc7, 0x3a, 0xf5, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xa3, 0x3c, 0x52, 0xa3, 0x81, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -7549,6 +7941,14 @@ type QueryClient interface { GrantAuthorization(ctx context.Context, in *QueryGrantAuthorizationRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationResponse, error) // Retrieves the grant authorization amount for a granter and grantee GrantAuthorizations(ctx context.Context, in *QueryGrantAuthorizationsRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationsResponse, error) + // Retrieves a derivative or binary options market's balance + MarketBalance(ctx context.Context, in *QueryMarketBalanceRequest, opts ...grpc.CallOption) (*QueryMarketBalanceResponse, error) + // Retrieves all derivative or binary options market balances + MarketBalances(ctx context.Context, in *QueryMarketBalancesRequest, opts ...grpc.CallOption) (*QueryMarketBalancesResponse, error) + // Retrieves the min notional for a denom + DenomMinNotional(ctx context.Context, in *QueryDenomMinNotionalRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalResponse, error) + // Retrieves the min notionals for all denoms + DenomMinNotionals(ctx context.Context, in *QueryDenomMinNotionalsRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalsResponse, error) } type queryClient struct { @@ -8117,6 +8517,42 @@ func (c *queryClient) GrantAuthorizations(ctx context.Context, in *QueryGrantAut return out, nil } +func (c *queryClient) MarketBalance(ctx context.Context, in *QueryMarketBalanceRequest, opts ...grpc.CallOption) (*QueryMarketBalanceResponse, error) { + out := new(QueryMarketBalanceResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/MarketBalance", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) MarketBalances(ctx context.Context, in *QueryMarketBalancesRequest, opts ...grpc.CallOption) (*QueryMarketBalancesResponse, error) { + out := new(QueryMarketBalancesResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/MarketBalances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) DenomMinNotional(ctx context.Context, in *QueryDenomMinNotionalRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalResponse, error) { + out := new(QueryDenomMinNotionalResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/DenomMinNotional", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) DenomMinNotionals(ctx context.Context, in *QueryDenomMinNotionalsRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalsResponse, error) { + out := new(QueryDenomMinNotionalsResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/DenomMinNotionals", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { L3DerivativeOrderBook(context.Context, *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) @@ -8245,6 +8681,14 @@ type QueryServer interface { GrantAuthorization(context.Context, *QueryGrantAuthorizationRequest) (*QueryGrantAuthorizationResponse, error) // Retrieves the grant authorization amount for a granter and grantee GrantAuthorizations(context.Context, *QueryGrantAuthorizationsRequest) (*QueryGrantAuthorizationsResponse, error) + // Retrieves a derivative or binary options market's balance + MarketBalance(context.Context, *QueryMarketBalanceRequest) (*QueryMarketBalanceResponse, error) + // Retrieves all derivative or binary options market balances + MarketBalances(context.Context, *QueryMarketBalancesRequest) (*QueryMarketBalancesResponse, error) + // Retrieves the min notional for a denom + DenomMinNotional(context.Context, *QueryDenomMinNotionalRequest) (*QueryDenomMinNotionalResponse, error) + // Retrieves the min notionals for all denoms + DenomMinNotionals(context.Context, *QueryDenomMinNotionalsRequest) (*QueryDenomMinNotionalsResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -8437,6 +8881,18 @@ func (*UnimplementedQueryServer) GrantAuthorization(ctx context.Context, req *Qu func (*UnimplementedQueryServer) GrantAuthorizations(ctx context.Context, req *QueryGrantAuthorizationsRequest) (*QueryGrantAuthorizationsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GrantAuthorizations not implemented") } +func (*UnimplementedQueryServer) MarketBalance(ctx context.Context, req *QueryMarketBalanceRequest) (*QueryMarketBalanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MarketBalance not implemented") +} +func (*UnimplementedQueryServer) MarketBalances(ctx context.Context, req *QueryMarketBalancesRequest) (*QueryMarketBalancesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MarketBalances not implemented") +} +func (*UnimplementedQueryServer) DenomMinNotional(ctx context.Context, req *QueryDenomMinNotionalRequest) (*QueryDenomMinNotionalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DenomMinNotional not implemented") +} +func (*UnimplementedQueryServer) DenomMinNotionals(ctx context.Context, req *QueryDenomMinNotionalsRequest) (*QueryDenomMinNotionalsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DenomMinNotionals not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -9558,13 +10014,85 @@ func _Query_GrantAuthorizations_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -var _Query_serviceDesc = grpc.ServiceDesc{ - ServiceName: "injective.exchange.v1beta1.Query", - HandlerType: (*QueryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "L3DerivativeOrderBook", - Handler: _Query_L3DerivativeOrderBook_Handler, +func _Query_MarketBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryMarketBalanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).MarketBalance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/MarketBalance", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).MarketBalance(ctx, req.(*QueryMarketBalanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_MarketBalances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryMarketBalancesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).MarketBalances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/MarketBalances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).MarketBalances(ctx, req.(*QueryMarketBalancesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_DenomMinNotional_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDenomMinNotionalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).DenomMinNotional(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/DenomMinNotional", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).DenomMinNotional(ctx, req.(*QueryDenomMinNotionalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_DenomMinNotionals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDenomMinNotionalsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).DenomMinNotionals(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/DenomMinNotionals", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).DenomMinNotionals(ctx, req.(*QueryDenomMinNotionalsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "injective.exchange.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "L3DerivativeOrderBook", + Handler: _Query_L3DerivativeOrderBook_Handler, }, { MethodName: "L3SpotOrderBook", @@ -9810,6 +10338,22 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "GrantAuthorizations", Handler: _Query_GrantAuthorizations_Handler, }, + { + MethodName: "MarketBalance", + Handler: _Query_MarketBalance_Handler, + }, + { + MethodName: "MarketBalances", + Handler: _Query_MarketBalances_Handler, + }, + { + MethodName: "DenomMinNotional", + Handler: _Query_DenomMinNotional_Handler, + }, + { + MethodName: "DenomMinNotionals", + Handler: _Query_DenomMinNotionals_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/exchange/v1beta1/query.proto", @@ -15236,156 +15780,442 @@ func (m *QueryGrantAuthorizationsResponse) MarshalToSizedBuffer(dAtA []byte) (in return len(dAtA) - i, nil } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *QueryMarketBalanceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *Subaccount) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Trader) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - if m.SubaccountNonce != 0 { - n += 1 + sovQuery(uint64(m.SubaccountNonce)) - } - return n + +func (m *QueryMarketBalanceRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QuerySubaccountOrdersRequest) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryMarketBalanceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.SubaccountId) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa } - return n + return len(dAtA) - i, nil } -func (m *QuerySubaccountOrdersResponse) Size() (n int) { - if m == nil { - return 0 +func (m *QueryMarketBalanceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *QueryMarketBalanceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketBalanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if len(m.BuyOrders) > 0 { - for _, e := range m.BuyOrders { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) - } - } - if len(m.SellOrders) > 0 { - for _, e := range m.SellOrders { - l = e.Size() - n += 1 + l + sovQuery(uint64(l)) + { + size := m.Balance.Size() + i -= size + if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil { + return 0, err } + i = encodeVarintQuery(dAtA, i, uint64(size)) } - return n + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } -func (m *SubaccountOrderbookMetadataWithMarket) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Metadata != nil { - l = m.Metadata.Size() - n += 1 + l + sovQuery(uint64(l)) - } - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - if m.IsBuy { - n += 2 +func (m *QueryMarketBalancesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *QueryExchangeParamsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n +func (m *QueryMarketBalancesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryExchangeParamsResponse) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryMarketBalancesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + return len(dAtA) - i, nil } -func (m *QuerySubaccountDepositsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.SubaccountId) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } - if m.Subaccount != nil { - l = m.Subaccount.Size() - n += 1 + l + sovQuery(uint64(l)) +func (m *QueryMarketBalancesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - return n + return dAtA[:n], nil } -func (m *QuerySubaccountDepositsResponse) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryMarketBalancesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryMarketBalancesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if len(m.Deposits) > 0 { - for k, v := range m.Deposits { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovQuery(uint64(l)) + if len(m.Balances) > 0 { + for iNdEx := len(m.Balances) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Balances[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) } - mapEntrySize := 1 + len(k) + sovQuery(uint64(len(k))) + l - n += mapEntrySize + 1 + sovQuery(uint64(mapEntrySize)) + i-- + dAtA[i] = 0xa } } - return n + return len(dAtA) - i, nil } -func (m *QueryExchangeBalancesRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l +func (m *MarketBalance) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MarketBalance) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MarketBalance) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Balance.Size() + i -= size + if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryDenomMinNotionalRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryDenomMinNotionalRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDenomMinNotionalRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryDenomMinNotionalResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryDenomMinNotionalResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDenomMinNotionalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryDenomMinNotionalsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryDenomMinNotionalsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDenomMinNotionalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryDenomMinNotionalsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryDenomMinNotionalsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDenomMinNotionalsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.DenomMinNotionals) > 0 { + for iNdEx := len(m.DenomMinNotionals) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DenomMinNotionals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Subaccount) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Trader) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.SubaccountNonce != 0 { + n += 1 + sovQuery(uint64(m.SubaccountNonce)) + } + return n +} + +func (m *QuerySubaccountOrdersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SubaccountId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QuerySubaccountOrdersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.BuyOrders) > 0 { + for _, e := range m.BuyOrders { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if len(m.SellOrders) > 0 { + for _, e := range m.SellOrders { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *SubaccountOrderbookMetadataWithMarket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Metadata != nil { + l = m.Metadata.Size() + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.IsBuy { + n += 2 + } + return n +} + +func (m *QueryExchangeParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryExchangeParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QuerySubaccountDepositsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SubaccountId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.Subaccount != nil { + l = m.Subaccount.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QuerySubaccountDepositsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Deposits) > 0 { + for k, v := range m.Deposits { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovQuery(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovQuery(uint64(len(k))) + l + n += mapEntrySize + 1 + sovQuery(uint64(mapEntrySize)) + } + } + return n +} + +func (m *QueryExchangeBalancesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l return n } @@ -17381,24 +18211,141 @@ func (m *QueryActiveStakeGrantResponse) Size() (n int) { return n } -func (m *QueryGrantAuthorizationRequest) Size() (n int) { +func (m *QueryGrantAuthorizationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Amount.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryGrantAuthorizationsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.TotalGrantAmount.Size() + n += 1 + l + sovQuery(uint64(l)) + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryMarketBalanceRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryMarketBalanceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Balance.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryMarketBalancesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryMarketBalancesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Balances) > 0 { + for _, e := range m.Balances { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *MarketBalance) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) + l = len(m.MarketId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - l = len(m.Grantee) + l = m.Balance.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryDenomMinNotionalRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryGrantAuthorizationResponse) Size() (n int) { +func (m *QueryDenomMinNotionalResponse) Size() (n int) { if m == nil { return 0 } @@ -17409,29 +18356,23 @@ func (m *QueryGrantAuthorizationResponse) Size() (n int) { return n } -func (m *QueryGrantAuthorizationsRequest) Size() (n int) { +func (m *QueryDenomMinNotionalsRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Granter) - if l > 0 { - n += 1 + l + sovQuery(uint64(l)) - } return n } -func (m *QueryGrantAuthorizationsResponse) Size() (n int) { +func (m *QueryDenomMinNotionalsResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.TotalGrantAmount.Size() - n += 1 + l + sovQuery(uint64(l)) - if len(m.Grants) > 0 { - for _, e := range m.Grants { + if len(m.DenomMinNotionals) > 0 { + for _, e := range m.DenomMinNotionals { l = e.Size() n += 1 + l + sovQuery(uint64(l)) } @@ -24399,16 +25340,268 @@ func (m *FullDerivativeMarket) Unmarshal(dAtA []byte) error { if postIndex < 0 { return ErrInvalidLengthQuery } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MarkPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MidPriceAndTob", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MidPriceAndTob == nil { + m.MidPriceAndTob = &MidPriceAndTOB{} + } + if err := m.MidPriceAndTob.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDerivativeMarketsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDerivativeMarketsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDerivativeMarketsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Markets", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Markets = append(m.Markets, &FullDerivativeMarket{}) + if err := m.Markets[len(m.Markets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDerivativeMarketRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDerivativeMarketRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDerivativeMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDerivativeMarketResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if err := m.MarkPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 5: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDerivativeMarketResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDerivativeMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MidPriceAndTob", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Market", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -24435,10 +25628,10 @@ func (m *FullDerivativeMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.MidPriceAndTob == nil { - m.MidPriceAndTob = &MidPriceAndTOB{} + if m.Market == nil { + m.Market = &FullDerivativeMarket{} } - if err := m.MidPriceAndTob.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Market.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -24463,7 +25656,7 @@ func (m *FullDerivativeMarket) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDerivativeMarketsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDerivativeMarketAddressRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24486,17 +25679,17 @@ func (m *QueryDerivativeMarketsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDerivativeMarketsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDerivativeMarketAddressRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDerivativeMarketsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDerivativeMarketAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Markets", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -24506,25 +25699,23 @@ func (m *QueryDerivativeMarketsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Markets = append(m.Markets, &FullDerivativeMarket{}) - if err := m.Markets[len(m.Markets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24547,7 +25738,7 @@ func (m *QueryDerivativeMarketsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDerivativeMarketRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24570,15 +25761,15 @@ func (m *QueryDerivativeMarketRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDerivativeMarketRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDerivativeMarketAddressResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDerivativeMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDerivativeMarketAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24606,7 +25797,39 @@ func (m *QueryDerivativeMarketRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24629,7 +25852,7 @@ func (m *QueryDerivativeMarketRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDerivativeMarketResponse) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountTradeNonceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24652,17 +25875,17 @@ func (m *QueryDerivativeMarketResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDerivativeMarketResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountTradeNonceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDerivativeMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountTradeNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Market", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -24672,27 +25895,23 @@ func (m *QueryDerivativeMarketResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Market == nil { - m.Market = &FullDerivativeMarket{} - } - if err := m.Market.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24715,7 +25934,7 @@ func (m *QueryDerivativeMarketResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDerivativeMarketAddressRequest) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountPositionsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24738,15 +25957,15 @@ func (m *QueryDerivativeMarketAddressRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDerivativeMarketAddressRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountPositionsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDerivativeMarketAddressRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountPositionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24774,7 +25993,7 @@ func (m *QueryDerivativeMarketAddressRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24797,7 +26016,7 @@ func (m *QueryDerivativeMarketAddressRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24820,15 +26039,15 @@ func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDerivativeMarketAddressResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountPositionInMarketRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDerivativeMarketAddressResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountPositionInMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24856,11 +26075,11 @@ func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Address = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -24888,7 +26107,7 @@ func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -24911,7 +26130,7 @@ func (m *QueryDerivativeMarketAddressResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountTradeNonceRequest) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountEffectivePositionInMarketRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -24934,10 +26153,10 @@ func (m *QuerySubaccountTradeNonceRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountTradeNonceRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountTradeNonceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -24972,6 +26191,38 @@ func (m *QuerySubaccountTradeNonceRequest) Unmarshal(dAtA []byte) error { } m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -24993,7 +26244,7 @@ func (m *QuerySubaccountTradeNonceRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountPositionsRequest) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountOrderMetadataRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25016,10 +26267,10 @@ func (m *QuerySubaccountPositionsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountPositionsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountOrderMetadataRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountPositionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountOrderMetadataRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -25075,7 +26326,7 @@ func (m *QuerySubaccountPositionsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountPositionsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25098,17 +26349,17 @@ func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountPositionInMarketRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountPositionsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountPositionInMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountPositionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -25118,29 +26369,81 @@ func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.State = append(m.State, DerivativePosition{}) + if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QuerySubaccountPositionInMarketResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QuerySubaccountPositionInMarketResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QuerySubaccountPositionInMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -25150,23 +26453,27 @@ func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + if m.State == nil { + m.State = &Position{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -25189,7 +26496,7 @@ func (m *QuerySubaccountPositionInMarketRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountEffectivePositionInMarketRequest) Unmarshal(dAtA []byte) error { +func (m *EffectivePosition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25212,15 +26519,35 @@ func (m *QuerySubaccountEffectivePositionInMarketRequest) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketRequest: wiretype end group for non-group") + return fmt.Errorf("proto: EffectivePosition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EffectivePosition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsLong", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsLong = bool(v != 0) + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25248,11 +26575,13 @@ func (m *QuerySubaccountEffectivePositionInMarketRequest) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EntryPrice", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25280,61 +26609,13 @@ func (m *QuerySubaccountEffectivePositionInMarketRequest) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { + if err := m.EntryPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QuerySubaccountOrderMetadataRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountOrderMetadataRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountOrderMetadataRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveMargin", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25362,7 +26643,9 @@ func (m *QuerySubaccountOrderMetadataRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + if err := m.EffectiveMargin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -25385,7 +26668,7 @@ func (m *QuerySubaccountOrderMetadataRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountPositionsResponse) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountEffectivePositionInMarketResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25408,10 +26691,10 @@ func (m *QuerySubaccountPositionsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountPositionsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountPositionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -25443,8 +26726,10 @@ func (m *QuerySubaccountPositionsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.State = append(m.State, DerivativePosition{}) - if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.State == nil { + m.State = &EffectivePosition{} + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -25469,7 +26754,7 @@ func (m *QuerySubaccountPositionsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountPositionInMarketResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPerpetualMarketInfoRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25492,17 +26777,17 @@ func (m *QuerySubaccountPositionInMarketResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountPositionInMarketResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPerpetualMarketInfoRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountPositionInMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPerpetualMarketInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -25512,27 +26797,23 @@ func (m *QuerySubaccountPositionInMarketResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.State == nil { - m.State = &Position{} - } - if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -25555,7 +26836,7 @@ func (m *QuerySubaccountPositionInMarketResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *EffectivePosition) Unmarshal(dAtA []byte) error { +func (m *QueryPerpetualMarketInfoResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25578,37 +26859,17 @@ func (m *EffectivePosition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EffectivePosition: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPerpetualMarketInfoResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EffectivePosition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPerpetualMarketInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsLong", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsLong = bool(v != 0) - case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -25618,63 +26879,78 @@ func (m *EffectivePosition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EntryPrice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryExpiryFuturesMarketInfoRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if err := m.EntryPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 4: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EffectiveMargin", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -25702,9 +26978,7 @@ func (m *EffectivePosition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.EffectiveMargin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -25727,7 +27001,7 @@ func (m *EffectivePosition) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountEffectivePositionInMarketResponse) Unmarshal(dAtA []byte) error { +func (m *QueryExpiryFuturesMarketInfoResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25750,15 +27024,15 @@ func (m *QuerySubaccountEffectivePositionInMarketResponse) Unmarshal(dAtA []byte fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountEffectivePositionInMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -25785,10 +27059,7 @@ func (m *QuerySubaccountEffectivePositionInMarketResponse) Unmarshal(dAtA []byte if postIndex > l { return io.ErrUnexpectedEOF } - if m.State == nil { - m.State = &EffectivePosition{} - } - if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -25813,7 +27084,7 @@ func (m *QuerySubaccountEffectivePositionInMarketResponse) Unmarshal(dAtA []byte } return nil } -func (m *QueryPerpetualMarketInfoRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPerpetualMarketFundingRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25836,10 +27107,10 @@ func (m *QueryPerpetualMarketInfoRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPerpetualMarketInfoRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPerpetualMarketFundingRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPerpetualMarketInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPerpetualMarketFundingRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -25895,7 +27166,7 @@ func (m *QueryPerpetualMarketInfoRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPerpetualMarketInfoResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPerpetualMarketFundingResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -25918,15 +27189,15 @@ func (m *QueryPerpetualMarketInfoResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPerpetualMarketInfoResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPerpetualMarketFundingResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPerpetualMarketInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPerpetualMarketFundingResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -25953,7 +27224,7 @@ func (m *QueryPerpetualMarketInfoResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -25978,7 +27249,7 @@ func (m *QueryPerpetualMarketInfoResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryExpiryFuturesMarketInfoRequest) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountOrderMetadataResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26001,17 +27272,17 @@ func (m *QueryExpiryFuturesMarketInfoRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountOrderMetadataResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountOrderMetadataResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -26021,23 +27292,25 @@ func (m *QueryExpiryFuturesMarketInfoRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Metadata = append(m.Metadata, SubaccountOrderbookMetadataWithMarket{}) + if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -26060,7 +27333,7 @@ func (m *QueryExpiryFuturesMarketInfoRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryExpiryFuturesMarketInfoResponse) Unmarshal(dAtA []byte) error { +func (m *QuerySubaccountTradeNonceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26083,17 +27356,17 @@ func (m *QueryExpiryFuturesMarketInfoResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QuerySubaccountTradeNonceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryExpiryFuturesMarketInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QuerySubaccountTradeNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } - var msglen int + m.Nonce = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -26103,25 +27376,11 @@ func (m *QueryExpiryFuturesMarketInfoResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Nonce |= uint32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Info.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -26143,7 +27402,7 @@ func (m *QueryExpiryFuturesMarketInfoResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPerpetualMarketFundingRequest) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26166,44 +27425,12 @@ func (m *QueryPerpetualMarketFundingRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPerpetualMarketFundingRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPerpetualMarketFundingRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MarketId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -26225,7 +27452,7 @@ func (m *QueryPerpetualMarketFundingRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPerpetualMarketFundingResponse) Unmarshal(dAtA []byte) error { +func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26248,10 +27475,10 @@ func (m *QueryPerpetualMarketFundingResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPerpetualMarketFundingResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryModuleStateResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPerpetualMarketFundingResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryModuleStateResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -26283,6 +27510,9 @@ func (m *QueryPerpetualMarketFundingResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.State == nil { + m.State = &GenesisState{} + } if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -26308,7 +27538,7 @@ func (m *QueryPerpetualMarketFundingResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountOrderMetadataResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPositionsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26331,15 +27561,65 @@ func (m *QuerySubaccountOrderMetadataResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountOrderMetadataResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPositionsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountOrderMetadataResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPositionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryPositionsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryPositionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryPositionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -26366,8 +27646,8 @@ func (m *QuerySubaccountOrderMetadataResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Metadata = append(m.Metadata, SubaccountOrderbookMetadataWithMarket{}) - if err := m.Metadata[len(m.Metadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.State = append(m.State, DerivativePosition{}) + if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -26392,7 +27672,7 @@ func (m *QuerySubaccountOrderMetadataResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QuerySubaccountTradeNonceResponse) Unmarshal(dAtA []byte) error { +func (m *QueryTradeRewardPointsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26415,17 +27695,17 @@ func (m *QuerySubaccountTradeNonceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QuerySubaccountTradeNonceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTradeRewardPointsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QuerySubaccountTradeNonceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTradeRewardPointsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) } - m.Nonce = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -26435,61 +27715,43 @@ func (m *QuerySubaccountTradeNonceResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Nonce |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery } - if iNdEx >= l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPoolTimestamp", wireType) + } + m.PendingPoolTimestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PendingPoolTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryModuleStateRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryModuleStateRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -26511,7 +27773,7 @@ func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { +func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26534,17 +27796,17 @@ func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryModuleStateResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTradeRewardPointsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryModuleStateResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTradeRewardPointsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AccountTradeRewardPoints", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -26554,25 +27816,25 @@ func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.State == nil { - m.State = &GenesisState{} - } - if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + var v cosmossdk_io_math.LegacyDec + m.AccountTradeRewardPoints = append(m.AccountTradeRewardPoints, v) + if err := m.AccountTradeRewardPoints[len(m.AccountTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -26597,7 +27859,7 @@ func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPositionsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryTradeRewardCampaignRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26620,10 +27882,10 @@ func (m *QueryPositionsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPositionsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTradeRewardCampaignRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPositionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTradeRewardCampaignRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -26647,7 +27909,7 @@ func (m *QueryPositionsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPositionsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26670,15 +27932,15 @@ func (m *QueryPositionsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPositionsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTradeRewardCampaignResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPositionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTradeRewardCampaignResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TradingRewardCampaignInfo", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -26705,8 +27967,148 @@ func (m *QueryPositionsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.State = append(m.State, DerivativePosition{}) - if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.TradingRewardCampaignInfo == nil { + m.TradingRewardCampaignInfo = &TradingRewardCampaignInfo{} + } + if err := m.TradingRewardCampaignInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradingRewardPoolCampaignSchedule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TradingRewardPoolCampaignSchedule = append(m.TradingRewardPoolCampaignSchedule, &CampaignRewardPool{}) + if err := m.TradingRewardPoolCampaignSchedule[len(m.TradingRewardPoolCampaignSchedule)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalTradeRewardPoints", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalTradeRewardPoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingTradingRewardPoolCampaignSchedule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingTradingRewardPoolCampaignSchedule = append(m.PendingTradingRewardPoolCampaignSchedule, &CampaignRewardPool{}) + if err := m.PendingTradingRewardPoolCampaignSchedule[len(m.PendingTradingRewardPoolCampaignSchedule)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingTotalTradeRewardPoints", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v cosmossdk_io_math.LegacyDec + m.PendingTotalTradeRewardPoints = append(m.PendingTotalTradeRewardPoints, v) + if err := m.PendingTotalTradeRewardPoints[len(m.PendingTotalTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -26731,7 +28133,7 @@ func (m *QueryPositionsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryTradeRewardPointsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryIsOptedOutOfRewardsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26754,15 +28156,15 @@ func (m *QueryTradeRewardPointsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryTradeRewardPointsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryIsOptedOutOfRewardsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTradeRewardPointsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryIsOptedOutOfRewardsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -26790,27 +28192,8 @@ func (m *QueryTradeRewardPointsRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) + m.Account = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PendingPoolTimestamp", wireType) - } - m.PendingPoolTimestamp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PendingPoolTimestamp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -26832,7 +28215,7 @@ func (m *QueryTradeRewardPointsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryIsOptedOutOfRewardsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26855,17 +28238,17 @@ func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryTradeRewardPointsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryIsOptedOutOfRewardsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTradeRewardPointsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryIsOptedOutOfRewardsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountTradeRewardPoints", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsOptedOut", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -26875,28 +28258,12 @@ func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var v cosmossdk_io_math.LegacyDec - m.AccountTradeRewardPoints = append(m.AccountTradeRewardPoints, v) - if err := m.AccountTradeRewardPoints[len(m.AccountTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.IsOptedOut = bool(v != 0) default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -26918,7 +28285,7 @@ func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryTradeRewardCampaignRequest) Unmarshal(dAtA []byte) error { +func (m *QueryOptedOutOfRewardsAccountsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26941,10 +28308,10 @@ func (m *QueryTradeRewardCampaignRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryTradeRewardCampaignRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTradeRewardCampaignRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -26968,7 +28335,7 @@ func (m *QueryTradeRewardCampaignRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { +func (m *QueryOptedOutOfRewardsAccountsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26991,153 +28358,15 @@ func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryTradeRewardCampaignResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTradeRewardCampaignResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TradingRewardCampaignInfo", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.TradingRewardCampaignInfo == nil { - m.TradingRewardCampaignInfo = &TradingRewardCampaignInfo{} - } - if err := m.TradingRewardCampaignInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TradingRewardPoolCampaignSchedule", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TradingRewardPoolCampaignSchedule = append(m.TradingRewardPoolCampaignSchedule, &CampaignRewardPool{}) - if err := m.TradingRewardPoolCampaignSchedule[len(m.TradingRewardPoolCampaignSchedule)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalTradeRewardPoints", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TotalTradeRewardPoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PendingTradingRewardPoolCampaignSchedule", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PendingTradingRewardPoolCampaignSchedule = append(m.PendingTradingRewardPoolCampaignSchedule, &CampaignRewardPool{}) - if err := m.PendingTradingRewardPoolCampaignSchedule[len(m.PendingTradingRewardPoolCampaignSchedule)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PendingTotalTradeRewardPoints", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -27165,11 +28394,7 @@ func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v cosmossdk_io_math.LegacyDec - m.PendingTotalTradeRewardPoints = append(m.PendingTotalTradeRewardPoints, v) - if err := m.PendingTotalTradeRewardPoints[len(m.PendingTotalTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -27192,7 +28417,7 @@ func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryIsOptedOutOfRewardsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryFeeDiscountAccountInfoRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27215,10 +28440,10 @@ func (m *QueryIsOptedOutOfRewardsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryIsOptedOutOfRewardsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFeeDiscountAccountInfoRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryIsOptedOutOfRewardsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFeeDiscountAccountInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27274,7 +28499,7 @@ func (m *QueryIsOptedOutOfRewardsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryIsOptedOutOfRewardsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27297,17 +28522,72 @@ func (m *QueryIsOptedOutOfRewardsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryIsOptedOutOfRewardsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFeeDiscountAccountInfoResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryIsOptedOutOfRewardsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFeeDiscountAccountInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsOptedOut", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TierLevel", wireType) + } + m.TierLevel = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TierLevel |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AccountInfo == nil { + m.AccountInfo = &FeeDiscountTierInfo{} + } + if err := m.AccountInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountTtl", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27317,12 +28597,28 @@ func (m *QueryIsOptedOutOfRewardsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.IsOptedOut = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AccountTtl == nil { + m.AccountTtl = &FeeDiscountTierTTL{} + } + if err := m.AccountTtl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -27344,7 +28640,7 @@ func (m *QueryIsOptedOutOfRewardsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryOptedOutOfRewardsAccountsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryFeeDiscountScheduleRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27367,10 +28663,10 @@ func (m *QueryOptedOutOfRewardsAccountsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFeeDiscountScheduleRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFeeDiscountScheduleRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -27394,7 +28690,7 @@ func (m *QueryOptedOutOfRewardsAccountsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryOptedOutOfRewardsAccountsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryFeeDiscountScheduleResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27417,17 +28713,17 @@ func (m *QueryOptedOutOfRewardsAccountsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFeeDiscountScheduleResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryOptedOutOfRewardsAccountsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFeeDiscountScheduleResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FeeDiscountSchedule", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27437,23 +28733,27 @@ func (m *QueryOptedOutOfRewardsAccountsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) + if m.FeeDiscountSchedule == nil { + m.FeeDiscountSchedule = &FeeDiscountSchedule{} + } + if err := m.FeeDiscountSchedule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -27476,7 +28776,7 @@ func (m *QueryOptedOutOfRewardsAccountsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFeeDiscountAccountInfoRequest) Unmarshal(dAtA []byte) error { +func (m *QueryBalanceMismatchesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27499,17 +28799,17 @@ func (m *QueryFeeDiscountAccountInfoRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountAccountInfoRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBalanceMismatchesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountAccountInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBalanceMismatchesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DustFactor", wireType) } - var stringLen uint64 + m.DustFactor = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27519,24 +28819,11 @@ func (m *QueryFeeDiscountAccountInfoRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.DustFactor |= int64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Account = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -27558,7 +28845,7 @@ func (m *QueryFeeDiscountAccountInfoRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { +func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27581,17 +28868,17 @@ func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountAccountInfoResponse: wiretype end group for non-group") + return fmt.Errorf("proto: BalanceMismatch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountAccountInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BalanceMismatch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TierLevel", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } - m.TierLevel = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27601,16 +28888,29 @@ func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TierLevel |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountInfo", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27620,33 +28920,63 @@ func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.AccountInfo == nil { - m.AccountInfo = &FeeDiscountTierInfo{} + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) } - if err := m.AccountInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Available.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountTtl", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -27656,78 +28986,128 @@ func (m *QueryFeeDiscountAccountInfoResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.AccountTtl == nil { - m.AccountTtl = &FeeDiscountTierTTL{} + if err := m.Total.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - if err := m.AccountTtl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceHold", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.BalanceHold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpectedTotal", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ExpectedTotal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Difference", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryFeeDiscountScheduleRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.Difference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountScheduleRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountScheduleRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -27749,7 +29129,7 @@ func (m *QueryFeeDiscountScheduleRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFeeDiscountScheduleResponse) Unmarshal(dAtA []byte) error { +func (m *QueryBalanceMismatchesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27772,15 +29152,15 @@ func (m *QueryFeeDiscountScheduleResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountScheduleResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBalanceMismatchesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountScheduleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBalanceMismatchesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FeeDiscountSchedule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BalanceMismatches", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -27807,10 +29187,8 @@ func (m *QueryFeeDiscountScheduleResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.FeeDiscountSchedule == nil { - m.FeeDiscountSchedule = &FeeDiscountSchedule{} - } - if err := m.FeeDiscountSchedule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.BalanceMismatches = append(m.BalanceMismatches, &BalanceMismatch{}) + if err := m.BalanceMismatches[len(m.BalanceMismatches)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -27835,7 +29213,7 @@ func (m *QueryFeeDiscountScheduleResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBalanceMismatchesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryBalanceWithBalanceHoldsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27858,31 +29236,12 @@ func (m *QueryBalanceMismatchesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBalanceMismatchesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBalanceMismatchesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DustFactor", wireType) - } - m.DustFactor = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DustFactor |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -27904,7 +29263,7 @@ func (m *QueryBalanceMismatchesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { +func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27927,10 +29286,10 @@ func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BalanceMismatch: wiretype end group for non-group") + return fmt.Errorf("proto: BalanceWithMarginHold: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BalanceMismatch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BalanceWithMarginHold: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28092,18 +29451,202 @@ func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { if postIndex < 0 { return ErrInvalidLengthQuery } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.BalanceHold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryBalanceWithBalanceHoldsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BalanceWithBalanceHolds", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BalanceWithBalanceHolds = append(m.BalanceWithBalanceHolds, &BalanceWithMarginHold{}) + if err := m.BalanceWithBalanceHolds[len(m.BalanceWithBalanceHolds)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFeeDiscountTierStatisticsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TierStatistic) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if err := m.BalanceHold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpectedTotal", wireType) + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TierStatistic: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TierStatistic: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Tier", wireType) } - var stringLen uint64 + m.Tier = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28113,31 +29656,16 @@ func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Tier |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ExpectedTotal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Difference", wireType) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) } - var stringLen uint64 + m.Count = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28147,26 +29675,11 @@ func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Count |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Difference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -28188,7 +29701,7 @@ func (m *BalanceMismatch) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBalanceMismatchesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryFeeDiscountTierStatisticsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28211,15 +29724,15 @@ func (m *QueryBalanceMismatchesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBalanceMismatchesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBalanceMismatchesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BalanceMismatches", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Statistics", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -28246,8 +29759,8 @@ func (m *QueryBalanceMismatchesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BalanceMismatches = append(m.BalanceMismatches, &BalanceMismatch{}) - if err := m.BalanceMismatches[len(m.BalanceMismatches)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Statistics = append(m.Statistics, &TierStatistic{}) + if err := m.Statistics[len(m.Statistics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -28272,7 +29785,7 @@ func (m *QueryBalanceMismatchesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBalanceWithBalanceHoldsRequest) Unmarshal(dAtA []byte) error { +func (m *MitoVaultInfosRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28295,10 +29808,10 @@ func (m *QueryBalanceWithBalanceHoldsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: MitoVaultInfosRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MitoVaultInfosRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -28322,7 +29835,7 @@ func (m *QueryBalanceWithBalanceHoldsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { +func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28345,15 +29858,15 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BalanceWithMarginHold: wiretype end group for non-group") + return fmt.Errorf("proto: MitoVaultInfosResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BalanceWithMarginHold: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MitoVaultInfosResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MasterAddresses", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28381,11 +29894,11 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.MasterAddresses = append(m.MasterAddresses, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeAddresses", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28413,11 +29926,11 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denom = string(dAtA[iNdEx:postIndex]) + m.DerivativeAddresses = append(m.DerivativeAddresses, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SpotAddresses", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28445,13 +29958,11 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Available.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SpotAddresses = append(m.SpotAddresses, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cw20Addresses", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28479,13 +29990,61 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Total.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Cw20Addresses = append(m.Cw20Addresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 5: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryMarketIDFromVaultRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryMarketIDFromVaultRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryMarketIDFromVaultRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BalanceHold", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field VaultAddress", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28513,9 +30072,89 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.BalanceHold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.VaultAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { return err } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryMarketIDFromVaultResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryMarketIDFromVaultResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryMarketIDFromVaultResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -28538,7 +30177,7 @@ func (m *BalanceWithMarginHold) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBalanceWithBalanceHoldsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryHistoricalTradeRecordsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28561,17 +30200,17 @@ func (m *QueryBalanceWithBalanceHoldsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryHistoricalTradeRecordsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBalanceWithBalanceHoldsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryHistoricalTradeRecordsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BalanceWithBalanceHolds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28581,25 +30220,23 @@ func (m *QueryBalanceWithBalanceHoldsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.BalanceWithBalanceHolds = append(m.BalanceWithBalanceHolds, &BalanceWithMarginHold{}) - if err := m.BalanceWithBalanceHolds[len(m.BalanceWithBalanceHolds)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -28622,7 +30259,7 @@ func (m *QueryBalanceWithBalanceHoldsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFeeDiscountTierStatisticsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryHistoricalTradeRecordsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28645,12 +30282,46 @@ func (m *QueryFeeDiscountTierStatisticsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryHistoricalTradeRecordsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryHistoricalTradeRecordsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradeRecords", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TradeRecords = append(m.TradeRecords, &TradeRecords{}) + if err := m.TradeRecords[len(m.TradeRecords)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -28672,7 +30343,7 @@ func (m *QueryFeeDiscountTierStatisticsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *TierStatistic) Unmarshal(dAtA []byte) error { +func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28695,17 +30366,17 @@ func (m *TierStatistic) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TierStatistic: wiretype end group for non-group") + return fmt.Errorf("proto: TradeHistoryOptions: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TierStatistic: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TradeHistoryOptions: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Tier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TradeGroupingSec", wireType) } - m.Tier = 0 + m.TradeGroupingSec = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28715,16 +30386,16 @@ func (m *TierStatistic) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Tier |= uint64(b&0x7F) << shift + m.TradeGroupingSec |= uint64(b&0x7F) << shift if b < 0x80 { break } } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaxAge", wireType) } - m.Count = 0 + m.MaxAge = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28734,11 +30405,51 @@ func (m *TierStatistic) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Count |= uint64(b&0x7F) << shift + m.MaxAge |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeRawHistory", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeRawHistory = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeMetadata", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.IncludeMetadata = bool(v != 0) default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -28760,7 +30471,7 @@ func (m *TierStatistic) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFeeDiscountTierStatisticsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketVolatilityRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28783,17 +30494,17 @@ func (m *QueryFeeDiscountTierStatisticsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketVolatilityRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFeeDiscountTierStatisticsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketVolatilityRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Statistics", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -28803,76 +30514,60 @@ func (m *QueryFeeDiscountTierStatisticsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Statistics = append(m.Statistics, &TierStatistic{}) - if err := m.Statistics[len(m.Statistics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradeHistoryOptions", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return ErrInvalidLengthQuery } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MitoVaultInfosRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.TradeHistoryOptions == nil { + m.TradeHistoryOptions = &TradeHistoryOptions{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MitoVaultInfosRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MitoVaultInfosRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + if err := m.TradeHistoryOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -28894,7 +30589,7 @@ func (m *MitoVaultInfosRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28917,47 +30612,15 @@ func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MitoVaultInfosResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketVolatilityResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MitoVaultInfosResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketVolatilityResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MasterAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MasterAddresses = append(m.MasterAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeAddresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Volatility", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -28985,13 +30648,17 @@ func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DerivativeAddresses = append(m.DerivativeAddresses, string(dAtA[iNdEx:postIndex])) + var v cosmossdk_io_math.LegacyDec + m.Volatility = &v + if err := m.Volatility.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpotAddresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field HistoryMetadata", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29001,29 +30668,33 @@ func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.SpotAddresses = append(m.SpotAddresses, string(dAtA[iNdEx:postIndex])) + if m.HistoryMetadata == nil { + m.HistoryMetadata = &types.MetadataStatistics{} + } + if err := m.HistoryMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cw20Addresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RawHistory", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29033,23 +30704,25 @@ func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Cw20Addresses = append(m.Cw20Addresses, string(dAtA[iNdEx:postIndex])) + m.RawHistory = append(m.RawHistory, &TradeRecord{}) + if err := m.RawHistory[len(m.RawHistory)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -29072,7 +30745,7 @@ func (m *MitoVaultInfosResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketIDFromVaultRequest) Unmarshal(dAtA []byte) error { +func (m *QueryBinaryMarketsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29095,15 +30768,15 @@ func (m *QueryMarketIDFromVaultRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketIDFromVaultRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBinaryMarketsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketIDFromVaultRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBinaryMarketsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VaultAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -29131,7 +30804,7 @@ func (m *QueryMarketIDFromVaultRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.VaultAddress = string(dAtA[iNdEx:postIndex]) + m.Status = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -29154,7 +30827,7 @@ func (m *QueryMarketIDFromVaultRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketIDFromVaultResponse) Unmarshal(dAtA []byte) error { +func (m *QueryBinaryMarketsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29177,17 +30850,17 @@ func (m *QueryMarketIDFromVaultResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketIDFromVaultResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBinaryMarketsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketIDFromVaultResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBinaryMarketsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Markets", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29197,23 +30870,25 @@ func (m *QueryMarketIDFromVaultResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Markets = append(m.Markets, &BinaryOptionsMarket{}) + if err := m.Markets[len(m.Markets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -29236,7 +30911,7 @@ func (m *QueryMarketIDFromVaultResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryHistoricalTradeRecordsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29259,13 +30934,45 @@ func (m *QueryHistoricalTradeRecordsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryHistoricalTradeRecordsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryHistoricalTradeRecordsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } @@ -29318,7 +31025,7 @@ func (m *QueryHistoricalTradeRecordsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryHistoricalTradeRecordsResponse) Unmarshal(dAtA []byte) error { +func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29341,17 +31048,17 @@ func (m *QueryHistoricalTradeRecordsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryHistoricalTradeRecordsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: TrimmedDerivativeConditionalOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryHistoricalTradeRecordsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TrimmedDerivativeConditionalOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TradeRecords", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29361,81 +31068,133 @@ func (m *QueryHistoricalTradeRecordsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.TradeRecords = append(m.TradeRecords, &TradeRecords{}) - if err := m.TradeRecords[len(m.TradeRecords)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Margin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery + if err := m.Margin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - if iNdEx >= l { + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TriggerPrice", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TradeHistoryOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TradeHistoryOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TradeGroupingSec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsBuy", wireType) } - m.TradeGroupingSec = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29445,16 +31204,17 @@ func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.TradeGroupingSec |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 2: + m.IsBuy = bool(v != 0) + case 6: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxAge", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field IsLimit", wireType) } - m.MaxAge = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29464,16 +31224,17 @@ func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.MaxAge |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeRawHistory", wireType) + m.IsLimit = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29483,17 +31244,29 @@ func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IncludeRawHistory = bool(v != 0) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeMetadata", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery } - var v int + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29503,12 +31276,24 @@ func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IncludeMetadata = bool(v != 0) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -29530,7 +31315,7 @@ func (m *TradeHistoryOptions) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketVolatilityRequest) Unmarshal(dAtA []byte) error { +func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29553,47 +31338,15 @@ func (m *QueryMarketVolatilityRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketVolatilityRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketVolatilityRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MarketId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TradeHistoryOptions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -29620,10 +31373,8 @@ func (m *QueryMarketVolatilityRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TradeHistoryOptions == nil { - m.TradeHistoryOptions = &TradeHistoryOptions{} - } - if err := m.TradeHistoryOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Orders = append(m.Orders, &TrimmedDerivativeConditionalOrder{}) + if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -29648,7 +31399,7 @@ func (m *QueryMarketVolatilityRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { +func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29671,15 +31422,15 @@ func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketVolatilityResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketVolatilityResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Volatility", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -29707,81 +31458,7 @@ func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v cosmossdk_io_math.LegacyDec - m.Volatility = &v - if err := m.Volatility.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HistoryMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.HistoryMetadata == nil { - m.HistoryMetadata = &types.MetadataStatistics{} - } - if err := m.HistoryMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RawHistory", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RawHistory = append(m.RawHistory, &TradeRecord{}) - if err := m.RawHistory[len(m.RawHistory)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -29804,7 +31481,7 @@ func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBinaryMarketsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29827,17 +31504,17 @@ func (m *QueryBinaryMarketsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBinaryMarketsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBinaryMarketsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29847,23 +31524,59 @@ func (m *QueryBinaryMarketsRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Status = string(dAtA[iNdEx:postIndex]) + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -29886,7 +31599,7 @@ func (m *QueryBinaryMarketsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBinaryMarketsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29909,17 +31622,17 @@ func (m *QueryBinaryMarketsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBinaryMarketsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBinaryMarketsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Markets", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -29929,25 +31642,23 @@ func (m *QueryBinaryMarketsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Markets = append(m.Markets, &BinaryOptionsMarket{}) - if err := m.Markets[len(m.Markets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -29970,7 +31681,7 @@ func (m *QueryBinaryMarketsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) error { +func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -29993,17 +31704,17 @@ func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) e fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -30013,29 +31724,31 @@ func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) e } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.Bids = append(m.Bids, &TrimmedLimitOrder{}) + if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -30045,23 +31758,25 @@ func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) e } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Asks = append(m.Asks, &TrimmedLimitOrder{}) + if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -30084,7 +31799,7 @@ func (m *QueryTraderDerivativeConditionalOrdersRequest) Unmarshal(dAtA []byte) e } return nil } -func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { +func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30107,10 +31822,10 @@ func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TrimmedDerivativeConditionalOrder: wiretype end group for non-group") + return fmt.Errorf("proto: TrimmedLimitOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TrimmedDerivativeConditionalOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: TrimmedLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -30182,114 +31897,6 @@ func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Margin", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Margin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TriggerPrice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsBuy", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsBuy = bool(v != 0) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsLimit", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsLimit = bool(v != 0) - case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } @@ -30310,104 +31917,22 @@ func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { } intStringLen := int(stringLen) if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Cid = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery + return ErrInvalidLengthQuery } - if iNdEx >= l { - return io.ErrUnexpectedEOF + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if postIndex > l { + return io.ErrUnexpectedEOF } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryTraderDerivativeConditionalOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -30417,25 +31942,23 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Orders = append(m.Orders, &TrimmedDerivativeConditionalOrder{}) - if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -30458,7 +31981,7 @@ func (m *QueryTraderDerivativeConditionalOrdersResponse) Unmarshal(dAtA []byte) } return nil } -func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { +func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30481,10 +32004,10 @@ func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFullSpotOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -30540,7 +32063,7 @@ func (m *QueryFullSpotOrderbookRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30563,51 +32086,17 @@ func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFullSpotOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Bids = append(m.Bids, &TrimmedLimitOrder{}) - if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Multiplier", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -30617,23 +32106,23 @@ func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Asks = append(m.Asks, &TrimmedLimitOrder{}) - if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Multiplier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30658,7 +32147,7 @@ func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { +func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30681,15 +32170,15 @@ func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryActiveStakeGrantRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFullDerivativeOrderbookRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryActiveStakeGrantRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -30717,7 +32206,7 @@ func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Grantee = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -30740,7 +32229,7 @@ func (m *QueryFullDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { +func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30763,15 +32252,15 @@ func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryActiveStakeGrantResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryFullDerivativeOrderbookResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryActiveStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Bids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Grant", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -30798,14 +32287,16 @@ func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Bids = append(m.Bids, &TrimmedLimitOrder{}) - if err := m.Bids[len(m.Bids)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Grant == nil { + m.Grant = &ActiveGrant{} + } + if err := m.Grant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Asks", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveGrant", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -30832,8 +32323,10 @@ func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Asks = append(m.Asks, &TrimmedLimitOrder{}) - if err := m.Asks[len(m.Asks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.EffectiveGrant == nil { + m.EffectiveGrant = &EffectiveGrant{} + } + if err := m.EffectiveGrant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30858,7 +32351,7 @@ func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { +func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -30881,15 +32374,15 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TrimmedLimitOrder: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGrantAuthorizationRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TrimmedLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGrantAuthorizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -30917,13 +32410,11 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Granter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -30951,13 +32442,61 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { return err } - iNdEx = postIndex - case 3: + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGrantAuthorizationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -30985,11 +32524,63 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31017,7 +32608,7 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.Granter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -31040,7 +32631,7 @@ func (m *TrimmedLimitOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) error { +func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31063,15 +32654,15 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31099,7 +32690,43 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -31122,7 +32749,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) Unmarshal(dAtA []byte) } return nil } -func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31145,15 +32772,15 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalanceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketAtomicExecutionFeeMultiplierResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalanceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Multiplier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31181,9 +32808,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Multiplier.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -31206,7 +32831,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) } return nil } -func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31229,15 +32854,15 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryActiveStakeGrantRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalanceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryActiveStakeGrantRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalanceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31265,7 +32890,9 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Grantee = string(dAtA[iNdEx:postIndex]) + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -31288,7 +32915,7 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalancesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31311,51 +32938,65 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryActiveStakeGrantResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalancesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryActiveStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalancesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grant", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.Grant == nil { - m.Grant = &ActiveGrant{} + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryMarketBalancesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery } - if err := m.Grant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 2: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryMarketBalancesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryMarketBalancesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EffectiveGrant", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balances", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -31382,10 +33023,8 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.EffectiveGrant == nil { - m.EffectiveGrant = &EffectiveGrant{} - } - if err := m.EffectiveGrant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Balances = append(m.Balances, &MarketBalance{}) + if err := m.Balances[len(m.Balances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -31410,7 +33049,7 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { +func (m *MarketBalance) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31433,15 +33072,15 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: MarketBalance: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MarketBalance: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31469,11 +33108,11 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Granter = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31501,7 +33140,9 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Grantee = string(dAtA[iNdEx:postIndex]) + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -31524,7 +33165,7 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31547,15 +33188,15 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31583,9 +33224,7 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -31608,7 +33247,7 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31631,15 +33270,15 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31667,7 +33306,9 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Granter = string(dAtA[iNdEx:postIndex]) + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -31690,7 +33331,7 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -31713,49 +33354,65 @@ func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDenomMinNotionalsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 2: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionals", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -31782,8 +33439,8 @@ func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Grants = append(m.Grants, &GrantAuthorization{}) - if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.DenomMinNotionals = append(m.DenomMinNotionals, &DenomMinNotional{}) + if err := m.DenomMinNotionals[len(m.DenomMinNotionals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index 5d9cff61..3d5576c4 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -41,13 +41,13 @@ const ( Action_SEND Action = 8 // 16 is reserved for SUPER_BURN Action_SUPER_BURN Action = 16 - // 134217728 is reserved for MODIFY_POLICY_MANAGERS + // 2^27 is reserved for MODIFY_POLICY_MANAGERS Action_MODIFY_POLICY_MANAGERS Action = 134217728 - // 268435456 is reserved for MODIFY_CONTRACT_HOOK + // 2^28 is reserved for MODIFY_CONTRACT_HOOK Action_MODIFY_CONTRACT_HOOK Action = 268435456 - // 536870912 is reserved for MODIFY_ROLE_PERMISSIONS + // 2^29 is reserved for MODIFY_ROLE_PERMISSIONS Action_MODIFY_ROLE_PERMISSIONS Action = 536870912 - // 1073741824 is reserved for MODIFY_ROLE_MANAGERS + // 2^30 is reserved for MODIFY_ROLE_MANAGERS Action_MODIFY_ROLE_MANAGERS Action = 1073741824 ) diff --git a/chain/wasmx/types/authz.go b/chain/wasmx/types/authz.go new file mode 100644 index 00000000..e9ab1b1d --- /dev/null +++ b/chain/wasmx/types/authz.go @@ -0,0 +1,72 @@ +package types + +import ( + "context" + + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + authztypes "github.com/cosmos/cosmos-sdk/x/authz" +) + +var ( + _ authztypes.Authorization = &ContractExecutionCompatAuthorization{} + _ cdctypes.UnpackInterfacesMessage = &ContractExecutionCompatAuthorization{} +) + +// NewContractExecutionCompatAuthorization constructor +func NewContractExecutionCompatAuthorization(grants ...wasmtypes.ContractGrant) *ContractExecutionCompatAuthorization { + return &ContractExecutionCompatAuthorization{ + Grants: grants, + } +} + +// MsgTypeURL implements Authorization.MsgTypeURL. +func (a ContractExecutionCompatAuthorization) MsgTypeURL() string { + return sdk.MsgTypeURL(&MsgExecuteContractCompat{}) +} + +// NewAuthz factory method to create an Authorization with updated grants +func (a ContractExecutionCompatAuthorization) NewAuthz(g []wasmtypes.ContractGrant) authztypes.Authorization { + return NewContractExecutionCompatAuthorization(g...) +} + +// Accept implements Authorization.Accept. +func (a *ContractExecutionCompatAuthorization) Accept(goCtx context.Context, msg sdk.Msg) (authztypes.AcceptResponse, error) { + wasmxMsg := msg.(*MsgExecuteContractCompat) + + // convert MsgExecuteContractCompat to MsgExecuteContract + funds := sdk.Coins{} + if wasmxMsg.Funds != "0" { + funds, _ = sdk.ParseCoinsNormalized(wasmxMsg.Funds) + } + + wasmMsg := &wasmtypes.MsgExecuteContract{ + Sender: wasmxMsg.Sender, + Contract: wasmxMsg.Contract, + Msg: []byte(wasmxMsg.Msg), + Funds: funds, + } + + // convert wasmx auth to wasm auth + wasmAuth := wasmtypes.NewContractExecutionAuthorization(a.Grants...) + + // and check via converted values + return wasmAuth.Accept(goCtx, wasmMsg) +} + +// ValidateBasic implements Authorization.ValidateBasic. +func (a ContractExecutionCompatAuthorization) ValidateBasic() error { + wasmAuth := wasmtypes.NewContractExecutionAuthorization(a.Grants...) + return wasmAuth.ValidateBasic() +} + +// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces +func (a ContractExecutionCompatAuthorization) UnpackInterfaces(unpacker cdctypes.AnyUnpacker) error { + for _, g := range a.Grants { + if err := g.UnpackInterfaces(unpacker); err != nil { + return err + } + } + return nil +} diff --git a/chain/wasmx/types/authz.pb.go b/chain/wasmx/types/authz.pb.go new file mode 100644 index 00000000..f1a3bce5 --- /dev/null +++ b/chain/wasmx/types/authz.pb.go @@ -0,0 +1,342 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/wasmx/v1/authz.proto + +package types + +import ( + fmt "fmt" + types "github.com/CosmWasm/wasmd/x/wasm/types" + _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// ContractExecutionAuthorization defines authorization for wasm execute. +// Since: wasmd 0.30 +type ContractExecutionCompatAuthorization struct { + // Grants for contract executions + Grants []types.ContractGrant `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants"` +} + +func (m *ContractExecutionCompatAuthorization) Reset() { *m = ContractExecutionCompatAuthorization{} } +func (m *ContractExecutionCompatAuthorization) String() string { return proto.CompactTextString(m) } +func (*ContractExecutionCompatAuthorization) ProtoMessage() {} +func (*ContractExecutionCompatAuthorization) Descriptor() ([]byte, []int) { + return fileDescriptor_8416ae1aea8a23ab, []int{0} +} +func (m *ContractExecutionCompatAuthorization) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContractExecutionCompatAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ContractExecutionCompatAuthorization.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ContractExecutionCompatAuthorization) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContractExecutionCompatAuthorization.Merge(m, src) +} +func (m *ContractExecutionCompatAuthorization) XXX_Size() int { + return m.Size() +} +func (m *ContractExecutionCompatAuthorization) XXX_DiscardUnknown() { + xxx_messageInfo_ContractExecutionCompatAuthorization.DiscardUnknown(m) +} + +var xxx_messageInfo_ContractExecutionCompatAuthorization proto.InternalMessageInfo + +func (m *ContractExecutionCompatAuthorization) GetGrants() []types.ContractGrant { + if m != nil { + return m.Grants + } + return nil +} + +func init() { + proto.RegisterType((*ContractExecutionCompatAuthorization)(nil), "injective.wasmx.v1.ContractExecutionCompatAuthorization") +} + +func init() { proto.RegisterFile("injective/wasmx/v1/authz.proto", fileDescriptor_8416ae1aea8a23ab) } + +var fileDescriptor_8416ae1aea8a23ab = []byte{ + // 312 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcb, 0xcc, 0xcb, 0x4a, + 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0x4f, 0x2c, 0xce, 0xad, 0xd0, 0x2f, 0x33, 0xd4, 0x4f, + 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x82, 0xcb, 0xeb, 0x81, + 0xe5, 0xf5, 0xca, 0x0c, 0xa5, 0x64, 0x92, 0xf3, 0x8b, 0x73, 0x41, 0x3c, 0xb0, 0x16, 0x34, 0x1d, + 0x52, 0x92, 0x20, 0xd9, 0xfc, 0xe2, 0x78, 0x30, 0x4f, 0x1f, 0xc2, 0x81, 0x4a, 0x09, 0x26, 0xe6, + 0x66, 0xe6, 0xe5, 0xeb, 0x83, 0x49, 0xa8, 0x90, 0x48, 0x7a, 0x7e, 0x7a, 0x3e, 0x44, 0x29, 0x88, + 0x05, 0x11, 0x55, 0x3a, 0xc8, 0xc8, 0xa5, 0xe2, 0x9c, 0x9f, 0x57, 0x52, 0x94, 0x98, 0x5c, 0xe2, + 0x5a, 0x91, 0x9a, 0x5c, 0x5a, 0x92, 0x99, 0x9f, 0xe7, 0x9c, 0x9f, 0x5b, 0x90, 0x58, 0xe2, 0x58, + 0x5a, 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x08, 0x12, 0x12, 0x72, 0xe2, 0x62, 0x4b, 0x2f, 0x4a, + 0xcc, 0x2b, 0x29, 0x96, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, 0x92, 0xd7, 0x83, 0xb9, 0x0d, 0xec, + 0x5c, 0xbd, 0x32, 0x43, 0x3d, 0x98, 0x39, 0xee, 0x20, 0x75, 0x4e, 0x9c, 0x27, 0xee, 0xc9, 0x33, + 0xac, 0x78, 0xbe, 0x41, 0x8b, 0x31, 0x08, 0xaa, 0xd3, 0x2a, 0xf4, 0xd4, 0x16, 0x5d, 0x25, 0xa8, + 0x3b, 0x21, 0x1e, 0x29, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x43, 0xb1, 0xab, 0xeb, 0xf9, + 0x06, 0x2d, 0x2d, 0x48, 0x18, 0x11, 0xe3, 0x34, 0xa7, 0xd4, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, + 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, + 0x3c, 0x96, 0x63, 0x88, 0xf2, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, + 0xf7, 0x84, 0x05, 0xaf, 0x4f, 0x62, 0x52, 0xb1, 0x3e, 0x3c, 0xb0, 0x75, 0x93, 0xf3, 0x8b, 0x52, + 0x91, 0xb9, 0x19, 0x89, 0x99, 0x79, 0xfa, 0xb9, 0xf9, 0x29, 0xa5, 0x39, 0xa9, 0xc5, 0xd0, 0x98, + 0x2a, 0xa9, 0x2c, 0x48, 0x2d, 0x4e, 0x62, 0x03, 0x87, 0x98, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, + 0x58, 0xf0, 0xe6, 0x79, 0xc9, 0x01, 0x00, 0x00, +} + +func (m *ContractExecutionCompatAuthorization) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContractExecutionCompatAuthorization) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContractExecutionCompatAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grants) > 0 { + for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAuthz(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintAuthz(dAtA []byte, offset int, v uint64) int { + offset -= sovAuthz(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ContractExecutionCompatAuthorization) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.Size() + n += 1 + l + sovAuthz(uint64(l)) + } + } + return n +} + +func sovAuthz(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozAuthz(x uint64) (n int) { + return sovAuthz(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ContractExecutionCompatAuthorization) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthz + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContractExecutionCompatAuthorization: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContractExecutionCompatAuthorization: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthz + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAuthz + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAuthz + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Grants = append(m.Grants, types.ContractGrant{}) + if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAuthz(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAuthz + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipAuthz(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAuthz + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAuthz + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAuthz + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthAuthz + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupAuthz + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthAuthz + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthAuthz = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowAuthz = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupAuthz = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/wasmx/types/codec.go b/chain/wasmx/types/codec.go index 01d03e7a..16f73476 100644 --- a/chain/wasmx/types/codec.go +++ b/chain/wasmx/types/codec.go @@ -6,6 +6,7 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" + "github.com/cosmos/cosmos-sdk/x/authz" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) @@ -24,6 +25,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&BatchContractDeregistrationProposal{}, "wasmx/BatchContractDeregistrationProposal", nil) cdc.RegisterConcrete(&BatchStoreCodeProposal{}, "wasmx/BatchStoreCodeProposal", nil) + cdc.RegisterConcrete(&ContractExecutionCompatAuthorization{}, "wasmx/ContractExecutionCompatAuthorization", nil) + cdc.RegisterConcrete(&Params{}, "wasmx/Params", nil) } @@ -45,6 +48,11 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUpdateParams{}, ) + registry.RegisterImplementations( + (*authz.Authorization)(nil), + &ContractExecutionCompatAuthorization{}, + ) + msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) } diff --git a/client/chain/chain.go b/client/chain/chain.go index 33afbf70..559079f0 100644 --- a/client/chain/chain.go +++ b/client/chain/chain.go @@ -236,6 +236,12 @@ type ChainClient interface { FetchChainBinaryOptionsMarkets(ctx context.Context, status string) (*exchangetypes.QueryBinaryMarketsResponse, error) FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Context, marketId string) (*exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse, error) + FetchL3DerivativeOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullDerivativeOrderbookResponse, error) + FetchL3SpotOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullSpotOrderbookResponse, error) + FetchMarketBalance(ctx context.Context, marketId string) (*exchangetypes.QueryMarketBalanceResponse, error) + FetchMarketBalances(ctx context.Context) (*exchangetypes.QueryMarketBalancesResponse, error) + FetchDenomMinNotional(ctx context.Context, denom string) (*exchangetypes.QueryDenomMinNotionalResponse, error) + FetchDenomMinNotionals(ctx context.Context) (*exchangetypes.QueryDenomMinNotionalsResponse, error) // Tendermint module FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) @@ -2114,6 +2120,56 @@ func (c *chainClient) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Contex return res, err } +func (c *chainClient) FetchL3DerivativeOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullDerivativeOrderbookResponse, error) { + req := &exchangetypes.QueryFullDerivativeOrderbookRequest{ + MarketId: marketId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.L3DerivativeOrderBook, req) + + return res, err +} + +func (c *chainClient) FetchL3SpotOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullSpotOrderbookResponse, error) { + req := &exchangetypes.QueryFullSpotOrderbookRequest{ + MarketId: marketId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.L3SpotOrderBook, req) + + return res, err +} + +func (c *chainClient) FetchMarketBalance(ctx context.Context, marketId string) (*exchangetypes.QueryMarketBalanceResponse, error) { + req := &exchangetypes.QueryMarketBalanceRequest{ + MarketId: marketId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.MarketBalance, req) + + return res, err +} + +func (c *chainClient) FetchMarketBalances(ctx context.Context) (*exchangetypes.QueryMarketBalancesResponse, error) { + req := &exchangetypes.QueryMarketBalancesRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.MarketBalances, req) + + return res, err +} + +func (c *chainClient) FetchDenomMinNotional(ctx context.Context, denom string) (*exchangetypes.QueryDenomMinNotionalResponse, error) { + req := &exchangetypes.QueryDenomMinNotionalRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DenomMinNotional, req) + + return res, err +} + +func (c *chainClient) FetchDenomMinNotionals(ctx context.Context) (*exchangetypes.QueryDenomMinNotionalsResponse, error) { + req := &exchangetypes.QueryDenomMinNotionalsRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DenomMinNotionals, req) + + return res, err +} + // Tendermint module func (c *chainClient) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index f9f8a17b..d2f42e73 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -587,6 +587,30 @@ func (c *MockChainClient) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Co return &exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse{}, nil } +func (c *MockChainClient) FetchL3DerivativeOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullDerivativeOrderbookResponse, error) { + return &exchangetypes.QueryFullDerivativeOrderbookResponse{}, nil +} + +func (c *MockChainClient) FetchL3SpotOrderBook(ctx context.Context, marketId string) (*exchangetypes.QueryFullSpotOrderbookResponse, error) { + return &exchangetypes.QueryFullSpotOrderbookResponse{}, nil +} + +func (c *MockChainClient) FetchMarketBalance(ctx context.Context, marketId string) (*exchangetypes.QueryMarketBalanceResponse, error) { + return &exchangetypes.QueryMarketBalanceResponse{}, nil +} + +func (c *MockChainClient) FetchMarketBalances(ctx context.Context) (*exchangetypes.QueryMarketBalancesResponse, error) { + return &exchangetypes.QueryMarketBalancesResponse{}, nil +} + +func (c *MockChainClient) FetchDenomMinNotional(ctx context.Context, denom string) (*exchangetypes.QueryDenomMinNotionalResponse, error) { + return &exchangetypes.QueryDenomMinNotionalResponse{}, nil +} + +func (c *MockChainClient) FetchDenomMinNotionals(ctx context.Context) (*exchangetypes.QueryDenomMinNotionalsResponse, error) { + return &exchangetypes.QueryDenomMinNotionalsResponse{}, nil +} + // Tendermint module func (c *MockChainClient) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { diff --git a/client/exchange/exchange.go b/client/exchange/exchange.go index a93571ae..c59f63b0 100644 --- a/client/exchange/exchange.go +++ b/client/exchange/exchange.go @@ -34,7 +34,9 @@ type ExchangeClient interface { GetDerivativePositions(ctx context.Context, req *derivativeExchangePB.PositionsRequest) (*derivativeExchangePB.PositionsResponse, error) GetDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.PositionsV2Request) (*derivativeExchangePB.PositionsV2Response, error) GetDerivativeLiquidablePositions(ctx context.Context, req *derivativeExchangePB.LiquidablePositionsRequest) (*derivativeExchangePB.LiquidablePositionsResponse, error) + // Deprecated: Use StreamDerivativePositionsV2 instead. This method will be removed in a future version. StreamDerivativePositions(ctx context.Context, req *derivativeExchangePB.StreamPositionsRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsClient, error) + StreamDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.StreamPositionsV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) StreamDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) GetDerivativeTrades(ctx context.Context, req *derivativeExchangePB.TradesRequest) (*derivativeExchangePB.TradesResponse, error) GetDerivativeTradesV2(ctx context.Context, req *derivativeExchangePB.TradesV2Request) (*derivativeExchangePB.TradesV2Response, error) @@ -52,6 +54,7 @@ type ExchangeClient interface { GetAuction(ctx context.Context, round int64) (*auctionPB.AuctionEndpointResponse, error) GetAuctions(ctx context.Context) (*auctionPB.AuctionsResponse, error) StreamBids(ctx context.Context) (auctionPB.InjectiveAuctionRPC_StreamBidsClient, error) + FetchInjBurnt(ctx context.Context) (*auctionPB.InjBurntEndpointResponse, error) GetSubaccountsList(ctx context.Context, accountAddress string) (*accountPB.SubaccountsListResponse, error) GetSubaccountBalance(ctx context.Context, subaccountId string, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) StreamSubaccountBalance(ctx context.Context, subaccountId string) (accountPB.InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) @@ -305,6 +308,7 @@ func (c *exchangeClient) StreamDerivativeMarket(ctx context.Context, marketIDs [ return stream, nil } +// Deprecated: Use StreamDerivativePositionsV2 instead. This method will be removed in a future version. func (c *exchangeClient) StreamDerivativePositions(ctx context.Context, req *derivativeExchangePB.StreamPositionsRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsClient, error) { stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamPositions, req) @@ -316,6 +320,17 @@ func (c *exchangeClient) StreamDerivativePositions(ctx context.Context, req *der return stream, nil } +func (c *exchangeClient) StreamDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.StreamPositionsV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) { + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamPositionsV2, req) + + if err != nil { + fmt.Println(err) + return nil, err + } + + return stream, nil +} + func (c *exchangeClient) StreamDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) { stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamOrders, req) @@ -521,6 +536,18 @@ func (c *exchangeClient) StreamBids(ctx context.Context) (auctionPB.InjectiveAuc return stream, nil } +func (c *exchangeClient) FetchInjBurnt(ctx context.Context) (*auctionPB.InjBurntEndpointResponse, error) { + req := auctionPB.InjBurntEndpointRequest{} + + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.auctionClient.InjBurntEndpoint, &req) + if err != nil { + fmt.Println(err) + return &auctionPB.InjBurntEndpointResponse{}, err + } + + return res, nil +} + // Accounts RPC func (c *exchangeClient) GetSubaccountsList(ctx context.Context, accountAddress string) (*accountPB.SubaccountsListResponse, error) { diff --git a/client/exchange/exchange_test_support.go b/client/exchange/exchange_test_support.go index 5c31f5e8..ceb272d2 100644 --- a/client/exchange/exchange_test_support.go +++ b/client/exchange/exchange_test_support.go @@ -23,6 +23,8 @@ type MockExchangeClient struct { DerivativeMarketsResponses []*derivativeExchangePB.MarketsResponse } +var _ ExchangeClient = &MockExchangeClient{} + func (e *MockExchangeClient) QueryClient() *grpc.ClientConn { dummyConnection := grpc.ClientConn{} return &dummyConnection @@ -87,6 +89,10 @@ func (e *MockExchangeClient) StreamDerivativePositions(ctx context.Context, req return nil, nil } +func (e *MockExchangeClient) StreamDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.StreamPositionsV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) { + return nil, nil +} + func (e *MockExchangeClient) StreamDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) { return nil, nil } @@ -155,6 +161,10 @@ func (e *MockExchangeClient) StreamBids(ctx context.Context) (auctionPB.Injectiv return nil, nil } +func (e *MockExchangeClient) FetchInjBurnt(ctx context.Context) (*auctionPB.InjBurntEndpointResponse, error) { + return &auctionPB.InjBurntEndpointResponse{}, nil +} + func (e *MockExchangeClient) GetSubaccountsList(ctx context.Context, accountAddress string) (*accountPB.SubaccountsListResponse, error) { return &accountPB.SubaccountsListResponse{}, nil } diff --git a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go index e46f3029..7046df5f 100644 --- a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go +++ b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go @@ -74,6 +74,8 @@ func main() { MinPriceTickSize: chainMinPriceTickSize, MinQuantityTickSize: chainMinQuantityTickSize, MinNotional: chainMinNotional, + BaseDecimals: 18, + QuoteDecimals: 6, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/query/56_L3DerivativeOrderBook/example.go b/examples/chain/exchange/query/56_L3DerivativeOrderBook/example.go new file mode 100644 index 00000000..26f06ed7 --- /dev/null +++ b/examples/chain/exchange/query/56_L3DerivativeOrderBook/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + marketId := "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + res, err := chainClient.FetchL3DerivativeOrderBook(ctx, marketId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/exchange/query/57_L3SpotOrderBook/example.go b/examples/chain/exchange/query/57_L3SpotOrderBook/example.go new file mode 100644 index 00000000..c128b2f5 --- /dev/null +++ b/examples/chain/exchange/query/57_L3SpotOrderBook/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + marketId := "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" + + res, err := chainClient.FetchL3SpotOrderBook(ctx, marketId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/exchange/query/58_MarketBalance/example.go b/examples/chain/exchange/query/58_MarketBalance/example.go new file mode 100644 index 00000000..45c263f5 --- /dev/null +++ b/examples/chain/exchange/query/58_MarketBalance/example.go @@ -0,0 +1,65 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "log" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + marketId := "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" // Example derivative market ID + + res, err := chainClient.FetchMarketBalance(context.Background(), marketId) + if err != nil { + log.Fatalf("Failed to fetch market balance: %v", err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/exchange/query/59_MarketBalances/example.go b/examples/chain/exchange/query/59_MarketBalances/example.go new file mode 100644 index 00000000..c1de4dc5 --- /dev/null +++ b/examples/chain/exchange/query/59_MarketBalances/example.go @@ -0,0 +1,63 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "log" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + res, err := chainClient.FetchMarketBalances(context.Background()) + if err != nil { + log.Fatalf("Failed to fetch market balances: %v", err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/exchange/query/60_DenomMinNotional/example.go b/examples/chain/exchange/query/60_DenomMinNotional/example.go new file mode 100644 index 00000000..92c0b68e --- /dev/null +++ b/examples/chain/exchange/query/60_DenomMinNotional/example.go @@ -0,0 +1,65 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "log" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + denom := "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" + + res, err := chainClient.FetchDenomMinNotional(context.Background(), denom) + if err != nil { + log.Fatalf("Failed to fetch denom min notional for %s: %v", denom, err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/exchange/query/61_DenomMinNotionals/example.go b/examples/chain/exchange/query/61_DenomMinNotionals/example.go new file mode 100644 index 00000000..01ea6d0e --- /dev/null +++ b/examples/chain/exchange/query/61_DenomMinNotionals/example.go @@ -0,0 +1,63 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "log" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + res, err := chainClient.FetchDenomMinNotionals(context.Background()) + if err != nil { + log.Fatalf("Failed to fetch denoms min notionals: %v", err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/exchange/auction/4_InjBurntEndpoint/example.go b/examples/exchange/auction/4_InjBurntEndpoint/example.go new file mode 100644 index 00000000..8f718527 --- /dev/null +++ b/examples/exchange/auction/4_InjBurntEndpoint/example.go @@ -0,0 +1,39 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "time" + + "github.com/InjectiveLabs/sdk-go/client/common" + "github.com/InjectiveLabs/sdk-go/client/exchange" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + exchangeClient, err := exchange.NewExchangeClient(network) + if err != nil { + panic(err) + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + // Fetch INJ burnt details + injBurntResponse, err := exchangeClient.FetchInjBurnt(ctx) + if err != nil { + fmt.Printf("Failed to fetch INJ burnt details: %v\n", err) + return + } + + // Print JSON representation of the response + jsonResponse, err := json.MarshalIndent(injBurntResponse, "", " ") + if err != nil { + fmt.Printf("Failed to marshal response to JSON: %v\n", err) + return + } + + fmt.Println("INJ Burnt Details:") + fmt.Println(string(jsonResponse)) +} diff --git a/examples/exchange/derivatives/10_StreamPositions/example.go b/examples/exchange/derivatives/10_StreamPositions/example.go index af23ee70..8ddd886a 100644 --- a/examples/exchange/derivatives/10_StreamPositions/example.go +++ b/examples/exchange/derivatives/10_StreamPositions/example.go @@ -18,14 +18,14 @@ func main() { } ctx := context.Background() - marketId := "0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce" + marketId := "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" subaccountId := "0xc6fe5d33615a1c52c08018c47e8bc53646a0e101000000000000000000000000" - req := derivativeExchangePB.StreamPositionsRequest{ + req := derivativeExchangePB.StreamPositionsV2Request{ MarketId: marketId, SubaccountId: subaccountId, } - stream, err := exchangeClient.StreamDerivativePositions(ctx, &req) + stream, err := exchangeClient.StreamDerivativePositionsV2(ctx, &req) if err != nil { panic(err) } diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index 7731ea3e..2150edf0 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -2783,212 +2783,6 @@ func (x *GetTxsResponse) GetData() []*TxData { return nil } -type GetTxsV2Request struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // The starting timestamp in UNIX milliseconds that the txs must be equal or - // older than - StartTime int64 `protobuf:"zigzag64,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - // The ending timestamp in UNIX milliseconds that the txs must be equal or - // younger than - EndTime int64 `protobuf:"zigzag64,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` - PerPage int32 `protobuf:"zigzag32,4,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"` - Token string `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` -} - -func (x *GetTxsV2Request) Reset() { - *x = GetTxsV2Request{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetTxsV2Request) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetTxsV2Request) ProtoMessage() {} - -func (x *GetTxsV2Request) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_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 GetTxsV2Request.ProtoReflect.Descriptor instead. -func (*GetTxsV2Request) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} -} - -func (x *GetTxsV2Request) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *GetTxsV2Request) GetStartTime() int64 { - if x != nil { - return x.StartTime - } - return 0 -} - -func (x *GetTxsV2Request) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -func (x *GetTxsV2Request) GetPerPage() int32 { - if x != nil { - return x.PerPage - } - return 0 -} - -func (x *GetTxsV2Request) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -type GetTxsV2Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Paging *Cursor `protobuf:"bytes,1,opt,name=paging,proto3" json:"paging,omitempty"` - Data []*TxData `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` -} - -func (x *GetTxsV2Response) Reset() { - *x = GetTxsV2Response{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetTxsV2Response) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetTxsV2Response) ProtoMessage() {} - -func (x *GetTxsV2Response) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_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 GetTxsV2Response.ProtoReflect.Descriptor instead. -func (*GetTxsV2Response) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} -} - -func (x *GetTxsV2Response) GetPaging() *Cursor { - if x != nil { - return x.Paging - } - return nil -} - -func (x *GetTxsV2Response) GetData() []*TxData { - if x != nil { - return x.Data - } - return nil -} - -// Cursor Pagination defines the structure for required params for handling -// pagination -type Cursor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // can be either block height or index num - From int32 `protobuf:"zigzag32,1,opt,name=from,proto3" json:"from,omitempty"` - // can be either block height or index num - To int32 `protobuf:"zigzag32,2,opt,name=to,proto3" json:"to,omitempty"` - // array of tokens to navigate to the next pages - Next []string `protobuf:"bytes,3,rep,name=next,proto3" json:"next,omitempty"` -} - -func (x *Cursor) Reset() { - *x = Cursor{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Cursor) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Cursor) ProtoMessage() {} - -func (x *Cursor) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_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 Cursor.ProtoReflect.Descriptor instead. -func (*Cursor) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} -} - -func (x *Cursor) GetFrom() int32 { - if x != nil { - return x.From - } - return 0 -} - -func (x *Cursor) GetTo() int32 { - if x != nil { - return x.To - } - return 0 -} - -func (x *Cursor) GetNext() []string { - if x != nil { - return x.Next - } - return nil -} - type GetTxByTxHashRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3000,7 +2794,7 @@ type GetTxByTxHashRequest struct { func (x *GetTxByTxHashRequest) Reset() { *x = GetTxByTxHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3013,7 +2807,7 @@ func (x *GetTxByTxHashRequest) String() string { func (*GetTxByTxHashRequest) ProtoMessage() {} func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3026,7 +2820,7 @@ func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashRequest.ProtoReflect.Descriptor instead. func (*GetTxByTxHashRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} } func (x *GetTxByTxHashRequest) GetHash() string { @@ -3051,7 +2845,7 @@ type GetTxByTxHashResponse struct { func (x *GetTxByTxHashResponse) Reset() { *x = GetTxByTxHashResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3064,7 +2858,7 @@ func (x *GetTxByTxHashResponse) String() string { func (*GetTxByTxHashResponse) ProtoMessage() {} func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3077,7 +2871,7 @@ func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashResponse.ProtoReflect.Descriptor instead. func (*GetTxByTxHashResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} } func (x *GetTxByTxHashResponse) GetS() string { @@ -3117,7 +2911,7 @@ type GetPeggyDepositTxsRequest struct { func (x *GetPeggyDepositTxsRequest) Reset() { *x = GetPeggyDepositTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3130,7 +2924,7 @@ func (x *GetPeggyDepositTxsRequest) String() string { func (*GetPeggyDepositTxsRequest) ProtoMessage() {} func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3143,7 +2937,7 @@ func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} } func (x *GetPeggyDepositTxsRequest) GetSender() string { @@ -3185,7 +2979,7 @@ type GetPeggyDepositTxsResponse struct { func (x *GetPeggyDepositTxsResponse) Reset() { *x = GetPeggyDepositTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3198,7 +2992,7 @@ func (x *GetPeggyDepositTxsResponse) String() string { func (*GetPeggyDepositTxsResponse) ProtoMessage() {} func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3211,7 +3005,7 @@ func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} } func (x *GetPeggyDepositTxsResponse) GetField() []*PeggyDepositTx { @@ -3254,7 +3048,7 @@ type PeggyDepositTx struct { func (x *PeggyDepositTx) Reset() { *x = PeggyDepositTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3267,7 +3061,7 @@ func (x *PeggyDepositTx) String() string { func (*PeggyDepositTx) ProtoMessage() {} func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3280,7 +3074,7 @@ func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyDepositTx.ProtoReflect.Descriptor instead. func (*PeggyDepositTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} } func (x *PeggyDepositTx) GetSender() string { @@ -3383,7 +3177,7 @@ type GetPeggyWithdrawalTxsRequest struct { func (x *GetPeggyWithdrawalTxsRequest) Reset() { *x = GetPeggyWithdrawalTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3396,7 +3190,7 @@ func (x *GetPeggyWithdrawalTxsRequest) String() string { func (*GetPeggyWithdrawalTxsRequest) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3409,7 +3203,7 @@ func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} } func (x *GetPeggyWithdrawalTxsRequest) GetSender() string { @@ -3451,7 +3245,7 @@ type GetPeggyWithdrawalTxsResponse struct { func (x *GetPeggyWithdrawalTxsResponse) Reset() { *x = GetPeggyWithdrawalTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3464,7 +3258,7 @@ func (x *GetPeggyWithdrawalTxsResponse) String() string { func (*GetPeggyWithdrawalTxsResponse) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3477,7 +3271,7 @@ func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} } func (x *GetPeggyWithdrawalTxsResponse) GetField() []*PeggyWithdrawalTx { @@ -3530,7 +3324,7 @@ type PeggyWithdrawalTx struct { func (x *PeggyWithdrawalTx) Reset() { *x = PeggyWithdrawalTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3543,7 +3337,7 @@ func (x *PeggyWithdrawalTx) String() string { func (*PeggyWithdrawalTx) ProtoMessage() {} func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3556,7 +3350,7 @@ func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyWithdrawalTx.ProtoReflect.Descriptor instead. func (*PeggyWithdrawalTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} } func (x *PeggyWithdrawalTx) GetSender() string { @@ -3689,7 +3483,7 @@ type GetIBCTransferTxsRequest struct { func (x *GetIBCTransferTxsRequest) Reset() { *x = GetIBCTransferTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3702,7 +3496,7 @@ func (x *GetIBCTransferTxsRequest) String() string { func (*GetIBCTransferTxsRequest) ProtoMessage() {} func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3715,7 +3509,7 @@ func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsRequest.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} } func (x *GetIBCTransferTxsRequest) GetSender() string { @@ -3785,7 +3579,7 @@ type GetIBCTransferTxsResponse struct { func (x *GetIBCTransferTxsResponse) Reset() { *x = GetIBCTransferTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3798,7 +3592,7 @@ func (x *GetIBCTransferTxsResponse) String() string { func (*GetIBCTransferTxsResponse) ProtoMessage() {} func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3811,7 +3605,7 @@ func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsResponse.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} } func (x *GetIBCTransferTxsResponse) GetField() []*IBCTransferTx { @@ -3863,7 +3657,7 @@ type IBCTransferTx struct { func (x *IBCTransferTx) Reset() { *x = IBCTransferTx{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3876,7 +3670,7 @@ func (x *IBCTransferTx) String() string { func (*IBCTransferTx) ProtoMessage() {} func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3889,7 +3683,7 @@ func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { // Deprecated: Use IBCTransferTx.ProtoReflect.Descriptor instead. func (*IBCTransferTx) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} } func (x *IBCTransferTx) GetSender() string { @@ -4017,7 +3811,7 @@ type GetWasmCodesRequest struct { func (x *GetWasmCodesRequest) Reset() { *x = GetWasmCodesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4030,7 +3824,7 @@ func (x *GetWasmCodesRequest) String() string { func (*GetWasmCodesRequest) ProtoMessage() {} func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4043,7 +3837,7 @@ func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodesRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} } func (x *GetWasmCodesRequest) GetLimit() int32 { @@ -4079,7 +3873,7 @@ type GetWasmCodesResponse struct { func (x *GetWasmCodesResponse) Reset() { *x = GetWasmCodesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4092,7 +3886,7 @@ func (x *GetWasmCodesResponse) String() string { func (*GetWasmCodesResponse) ProtoMessage() {} func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4105,7 +3899,7 @@ func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodesResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} } func (x *GetWasmCodesResponse) GetPaging() *Paging { @@ -4159,7 +3953,7 @@ type WasmCode struct { func (x *WasmCode) Reset() { *x = WasmCode{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4172,7 +3966,7 @@ func (x *WasmCode) String() string { func (*WasmCode) ProtoMessage() {} func (x *WasmCode) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4185,7 +3979,7 @@ func (x *WasmCode) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCode.ProtoReflect.Descriptor instead. func (*WasmCode) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} } func (x *WasmCode) GetCodeId() uint64 { @@ -4293,7 +4087,7 @@ type Checksum struct { func (x *Checksum) Reset() { *x = Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4306,7 +4100,7 @@ func (x *Checksum) String() string { func (*Checksum) ProtoMessage() {} func (x *Checksum) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4319,7 +4113,7 @@ func (x *Checksum) ProtoReflect() protoreflect.Message { // Deprecated: Use Checksum.ProtoReflect.Descriptor instead. func (*Checksum) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} } func (x *Checksum) GetAlgorithm() string { @@ -4350,7 +4144,7 @@ type ContractPermission struct { func (x *ContractPermission) Reset() { *x = ContractPermission{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4363,7 +4157,7 @@ func (x *ContractPermission) String() string { func (*ContractPermission) ProtoMessage() {} func (x *ContractPermission) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4376,7 +4170,7 @@ func (x *ContractPermission) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractPermission.ProtoReflect.Descriptor instead. func (*ContractPermission) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} } func (x *ContractPermission) GetAccessType() int32 { @@ -4405,7 +4199,7 @@ type GetWasmCodeByIDRequest struct { func (x *GetWasmCodeByIDRequest) Reset() { *x = GetWasmCodeByIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4418,7 +4212,7 @@ func (x *GetWasmCodeByIDRequest) String() string { func (*GetWasmCodeByIDRequest) ProtoMessage() {} func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4431,7 +4225,7 @@ func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} } func (x *GetWasmCodeByIDRequest) GetCodeId() int64 { @@ -4477,7 +4271,7 @@ type GetWasmCodeByIDResponse struct { func (x *GetWasmCodeByIDResponse) Reset() { *x = GetWasmCodeByIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4490,7 +4284,7 @@ func (x *GetWasmCodeByIDResponse) String() string { func (*GetWasmCodeByIDResponse) ProtoMessage() {} func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4503,7 +4297,7 @@ func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} } func (x *GetWasmCodeByIDResponse) GetCodeId() uint64 { @@ -4615,7 +4409,7 @@ type GetWasmContractsRequest struct { func (x *GetWasmContractsRequest) Reset() { *x = GetWasmContractsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4628,7 +4422,7 @@ func (x *GetWasmContractsRequest) String() string { func (*GetWasmContractsRequest) ProtoMessage() {} func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4641,7 +4435,7 @@ func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} } func (x *GetWasmContractsRequest) GetLimit() int32 { @@ -4705,7 +4499,7 @@ type GetWasmContractsResponse struct { func (x *GetWasmContractsResponse) Reset() { *x = GetWasmContractsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4718,7 +4512,7 @@ func (x *GetWasmContractsResponse) String() string { func (*GetWasmContractsResponse) ProtoMessage() {} func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4731,7 +4525,7 @@ func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} } func (x *GetWasmContractsResponse) GetPaging() *Paging { @@ -4792,7 +4586,7 @@ type WasmContract struct { func (x *WasmContract) Reset() { *x = WasmContract{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4805,7 +4599,7 @@ func (x *WasmContract) String() string { func (*WasmContract) ProtoMessage() {} func (x *WasmContract) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4818,7 +4612,7 @@ func (x *WasmContract) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmContract.ProtoReflect.Descriptor instead. func (*WasmContract) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} } func (x *WasmContract) GetLabel() string { @@ -4954,7 +4748,7 @@ type ContractFund struct { func (x *ContractFund) Reset() { *x = ContractFund{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4967,7 +4761,7 @@ func (x *ContractFund) String() string { func (*ContractFund) ProtoMessage() {} func (x *ContractFund) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4980,7 +4774,7 @@ func (x *ContractFund) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractFund.ProtoReflect.Descriptor instead. func (*ContractFund) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} } func (x *ContractFund) GetDenom() string { @@ -5010,7 +4804,7 @@ type Cw20Metadata struct { func (x *Cw20Metadata) Reset() { *x = Cw20Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5023,7 +4817,7 @@ func (x *Cw20Metadata) String() string { func (*Cw20Metadata) ProtoMessage() {} func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5036,7 +4830,7 @@ func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20Metadata.ProtoReflect.Descriptor instead. func (*Cw20Metadata) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} } func (x *Cw20Metadata) GetTokenInfo() *Cw20TokenInfo { @@ -5072,7 +4866,7 @@ type Cw20TokenInfo struct { func (x *Cw20TokenInfo) Reset() { *x = Cw20TokenInfo{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5085,7 +4879,7 @@ func (x *Cw20TokenInfo) String() string { func (*Cw20TokenInfo) ProtoMessage() {} func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5098,7 +4892,7 @@ func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20TokenInfo.ProtoReflect.Descriptor instead. func (*Cw20TokenInfo) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} } func (x *Cw20TokenInfo) GetName() string { @@ -5148,7 +4942,7 @@ type Cw20MarketingInfo struct { func (x *Cw20MarketingInfo) Reset() { *x = Cw20MarketingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5161,7 +4955,7 @@ func (x *Cw20MarketingInfo) String() string { func (*Cw20MarketingInfo) ProtoMessage() {} func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5174,7 +4968,7 @@ func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20MarketingInfo.ProtoReflect.Descriptor instead. func (*Cw20MarketingInfo) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} } func (x *Cw20MarketingInfo) GetProject() string { @@ -5217,7 +5011,7 @@ type GetWasmContractByAddressRequest struct { func (x *GetWasmContractByAddressRequest) Reset() { *x = GetWasmContractByAddressRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5230,7 +5024,7 @@ func (x *GetWasmContractByAddressRequest) String() string { func (*GetWasmContractByAddressRequest) ProtoMessage() {} func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5243,7 +5037,7 @@ func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} } func (x *GetWasmContractByAddressRequest) GetContractAddress() string { @@ -5296,7 +5090,7 @@ type GetWasmContractByAddressResponse struct { func (x *GetWasmContractByAddressResponse) Reset() { *x = GetWasmContractByAddressResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5309,7 +5103,7 @@ func (x *GetWasmContractByAddressResponse) String() string { func (*GetWasmContractByAddressResponse) ProtoMessage() {} func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5322,7 +5116,7 @@ func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} } func (x *GetWasmContractByAddressResponse) GetLabel() string { @@ -5457,7 +5251,7 @@ type GetCw20BalanceRequest struct { func (x *GetCw20BalanceRequest) Reset() { *x = GetCw20BalanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5470,7 +5264,7 @@ func (x *GetCw20BalanceRequest) String() string { func (*GetCw20BalanceRequest) ProtoMessage() {} func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5483,7 +5277,7 @@ func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceRequest.ProtoReflect.Descriptor instead. func (*GetCw20BalanceRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} } func (x *GetCw20BalanceRequest) GetAddress() string { @@ -5511,7 +5305,7 @@ type GetCw20BalanceResponse struct { func (x *GetCw20BalanceResponse) Reset() { *x = GetCw20BalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5524,7 +5318,7 @@ func (x *GetCw20BalanceResponse) String() string { func (*GetCw20BalanceResponse) ProtoMessage() {} func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5537,7 +5331,7 @@ func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceResponse.ProtoReflect.Descriptor instead. func (*GetCw20BalanceResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} } func (x *GetCw20BalanceResponse) GetField() []*WasmCw20Balance { @@ -5566,7 +5360,7 @@ type WasmCw20Balance struct { func (x *WasmCw20Balance) Reset() { *x = WasmCw20Balance{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5579,7 +5373,7 @@ func (x *WasmCw20Balance) String() string { func (*WasmCw20Balance) ProtoMessage() {} func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5592,7 +5386,7 @@ func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCw20Balance.ProtoReflect.Descriptor instead. func (*WasmCw20Balance) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} } func (x *WasmCw20Balance) GetContractAddress() string { @@ -5642,7 +5436,7 @@ type RelayersRequest struct { func (x *RelayersRequest) Reset() { *x = RelayersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5655,7 +5449,7 @@ func (x *RelayersRequest) String() string { func (*RelayersRequest) ProtoMessage() {} func (x *RelayersRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5668,7 +5462,7 @@ func (x *RelayersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersRequest.ProtoReflect.Descriptor instead. func (*RelayersRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} } func (x *RelayersRequest) GetMarketIDs() []string { @@ -5689,7 +5483,7 @@ type RelayersResponse struct { func (x *RelayersResponse) Reset() { *x = RelayersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5702,7 +5496,7 @@ func (x *RelayersResponse) String() string { func (*RelayersResponse) ProtoMessage() {} func (x *RelayersResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5715,7 +5509,7 @@ func (x *RelayersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersResponse.ProtoReflect.Descriptor instead. func (*RelayersResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} } func (x *RelayersResponse) GetField() []*RelayerMarkets { @@ -5739,7 +5533,7 @@ type RelayerMarkets struct { func (x *RelayerMarkets) Reset() { *x = RelayerMarkets{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5752,7 +5546,7 @@ func (x *RelayerMarkets) String() string { func (*RelayerMarkets) ProtoMessage() {} func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5765,7 +5559,7 @@ func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayerMarkets.ProtoReflect.Descriptor instead. func (*RelayerMarkets) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} } func (x *RelayerMarkets) GetMarketId() string { @@ -5796,7 +5590,7 @@ type Relayer struct { func (x *Relayer) Reset() { *x = Relayer{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5809,7 +5603,7 @@ func (x *Relayer) String() string { func (*Relayer) ProtoMessage() {} func (x *Relayer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5822,7 +5616,7 @@ func (x *Relayer) ProtoReflect() protoreflect.Message { // Deprecated: Use Relayer.ProtoReflect.Descriptor instead. func (*Relayer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} } func (x *Relayer) GetName() string { @@ -5868,7 +5662,7 @@ type GetBankTransfersRequest struct { func (x *GetBankTransfersRequest) Reset() { *x = GetBankTransfersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5881,7 +5675,7 @@ func (x *GetBankTransfersRequest) String() string { func (*GetBankTransfersRequest) ProtoMessage() {} func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5894,7 +5688,7 @@ func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersRequest.ProtoReflect.Descriptor instead. func (*GetBankTransfersRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} } func (x *GetBankTransfersRequest) GetSenders() []string { @@ -5979,7 +5773,7 @@ type GetBankTransfersResponse struct { func (x *GetBankTransfersResponse) Reset() { *x = GetBankTransfersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5992,7 +5786,7 @@ func (x *GetBankTransfersResponse) String() string { func (*GetBankTransfersResponse) ProtoMessage() {} func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6005,7 +5799,7 @@ func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersResponse.ProtoReflect.Descriptor instead. func (*GetBankTransfersResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} } func (x *GetBankTransfersResponse) GetPaging() *Paging { @@ -6039,7 +5833,7 @@ type BankTransfer struct { func (x *BankTransfer) Reset() { *x = BankTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6052,7 +5846,7 @@ func (x *BankTransfer) String() string { func (*BankTransfer) ProtoMessage() {} func (x *BankTransfer) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6065,7 +5859,7 @@ func (x *BankTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use BankTransfer.ProtoReflect.Descriptor instead. func (*BankTransfer) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} } func (x *BankTransfer) GetSender() string { @@ -6116,7 +5910,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6129,7 +5923,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6142,7 +5936,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{72} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} } func (x *Coin) GetDenom() string { @@ -6168,7 +5962,7 @@ type StreamTxsRequest struct { func (x *StreamTxsRequest) Reset() { *x = StreamTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6181,7 +5975,7 @@ func (x *StreamTxsRequest) String() string { func (*StreamTxsRequest) ProtoMessage() {} func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6194,7 +5988,7 @@ func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsRequest.ProtoReflect.Descriptor instead. func (*StreamTxsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{73} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} } type StreamTxsResponse struct { @@ -6219,7 +6013,7 @@ type StreamTxsResponse struct { func (x *StreamTxsResponse) Reset() { *x = StreamTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6232,7 +6026,7 @@ func (x *StreamTxsResponse) String() string { func (*StreamTxsResponse) ProtoMessage() {} func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6245,7 +6039,7 @@ func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsResponse.ProtoReflect.Descriptor instead. func (*StreamTxsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} } func (x *StreamTxsResponse) GetId() string { @@ -6327,7 +6121,7 @@ type StreamBlocksRequest struct { func (x *StreamBlocksRequest) Reset() { *x = StreamBlocksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6340,7 +6134,7 @@ func (x *StreamBlocksRequest) String() string { func (*StreamBlocksRequest) ProtoMessage() {} func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6353,7 +6147,7 @@ func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksRequest.ProtoReflect.Descriptor instead. func (*StreamBlocksRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{72} } type StreamBlocksResponse struct { @@ -6375,7 +6169,7 @@ type StreamBlocksResponse struct { func (x *StreamBlocksResponse) Reset() { *x = StreamBlocksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6388,7 +6182,7 @@ func (x *StreamBlocksResponse) String() string { func (*StreamBlocksResponse) ProtoMessage() {} func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6401,7 +6195,7 @@ func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksResponse.ProtoReflect.Descriptor instead. func (*StreamBlocksResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{76} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{73} } func (x *StreamBlocksResponse) GetHeight() uint64 { @@ -6476,7 +6270,7 @@ type GetStatsRequest struct { func (x *GetStatsRequest) Reset() { *x = GetStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6489,7 +6283,7 @@ func (x *GetStatsRequest) String() string { func (*GetStatsRequest) ProtoMessage() {} func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6502,7 +6296,7 @@ func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead. func (*GetStatsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{77} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{74} } type GetStatsResponse struct { @@ -6533,7 +6327,7 @@ type GetStatsResponse struct { func (x *GetStatsResponse) Reset() { *x = GetStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6546,7 +6340,7 @@ func (x *GetStatsResponse) String() string { func (*GetStatsResponse) ProtoMessage() {} func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6559,7 +6353,7 @@ func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead. func (*GetStatsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{78} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{75} } func (x *GetStatsResponse) GetAddresses() uint64 { @@ -7037,289 +6831,343 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x40, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x02, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, - 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 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, 0x77, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, - 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, - 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, - 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 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, 0x77, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, + 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, - 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, - 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, - 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, - 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, - 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, - 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, - 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, - 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, + 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, + 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, + 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, + 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, + 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, + 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, + 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 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, 0x22, 0x31, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, + 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, + 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, + 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, + 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, + 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, + 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, + 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, + 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, @@ -7357,400 +7205,319 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, - 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, - 0x0a, 0x0d, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1a, 0x0a, 0x08, 0x64, - 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, - 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, - 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, - 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, - 0x20, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, - 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, - 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, - 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, + 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, + 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, + 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, + 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, + 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb8, + 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, + 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, + 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, + 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x6a, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x6a, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, + 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x50, + 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, 0x31, 0x30, + 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x78, 0x73, 0x50, 0x73, + 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, + 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, 0x32, 0xa5, 0x14, 0x0a, 0x14, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, - 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, - 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, - 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, - 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, - 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, - 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, - 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, - 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, - 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, - 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, - 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 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, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, - 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, - 0x78, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x69, 0x6e, 0x6a, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x69, 0x6e, 0x6a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, - 0x78, 0x73, 0x5f, 0x70, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x74, 0x78, 0x73, 0x50, 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, - 0x5f, 0x70, 0x73, 0x31, 0x30, 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x74, 0x78, 0x73, 0x50, 0x73, 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, - 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x74, 0x78, 0x73, 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, - 0x32, 0x84, 0x15, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, - 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, - 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, - 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, - 0x78, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, + 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, + 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, + 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, - 0x54, 0x78, 0x73, 0x12, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, + 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, + 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, + 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x54, 0x78, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, - 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, - 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x54, 0x78, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, + 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, + 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, + 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -7765,7 +7532,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 80) +var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 77) var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetAccountTxsRequest)(nil), // 0: injective_explorer_rpc.GetAccountTxsRequest (*GetAccountTxsResponse)(nil), // 1: injective_explorer_rpc.GetAccountTxsResponse @@ -7799,54 +7566,51 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetValidatorUptimeResponse)(nil), // 29: injective_explorer_rpc.GetValidatorUptimeResponse (*GetTxsRequest)(nil), // 30: injective_explorer_rpc.GetTxsRequest (*GetTxsResponse)(nil), // 31: injective_explorer_rpc.GetTxsResponse - (*GetTxsV2Request)(nil), // 32: injective_explorer_rpc.GetTxsV2Request - (*GetTxsV2Response)(nil), // 33: injective_explorer_rpc.GetTxsV2Response - (*Cursor)(nil), // 34: injective_explorer_rpc.Cursor - (*GetTxByTxHashRequest)(nil), // 35: injective_explorer_rpc.GetTxByTxHashRequest - (*GetTxByTxHashResponse)(nil), // 36: injective_explorer_rpc.GetTxByTxHashResponse - (*GetPeggyDepositTxsRequest)(nil), // 37: injective_explorer_rpc.GetPeggyDepositTxsRequest - (*GetPeggyDepositTxsResponse)(nil), // 38: injective_explorer_rpc.GetPeggyDepositTxsResponse - (*PeggyDepositTx)(nil), // 39: injective_explorer_rpc.PeggyDepositTx - (*GetPeggyWithdrawalTxsRequest)(nil), // 40: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - (*GetPeggyWithdrawalTxsResponse)(nil), // 41: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - (*PeggyWithdrawalTx)(nil), // 42: injective_explorer_rpc.PeggyWithdrawalTx - (*GetIBCTransferTxsRequest)(nil), // 43: injective_explorer_rpc.GetIBCTransferTxsRequest - (*GetIBCTransferTxsResponse)(nil), // 44: injective_explorer_rpc.GetIBCTransferTxsResponse - (*IBCTransferTx)(nil), // 45: injective_explorer_rpc.IBCTransferTx - (*GetWasmCodesRequest)(nil), // 46: injective_explorer_rpc.GetWasmCodesRequest - (*GetWasmCodesResponse)(nil), // 47: injective_explorer_rpc.GetWasmCodesResponse - (*WasmCode)(nil), // 48: injective_explorer_rpc.WasmCode - (*Checksum)(nil), // 49: injective_explorer_rpc.Checksum - (*ContractPermission)(nil), // 50: injective_explorer_rpc.ContractPermission - (*GetWasmCodeByIDRequest)(nil), // 51: injective_explorer_rpc.GetWasmCodeByIDRequest - (*GetWasmCodeByIDResponse)(nil), // 52: injective_explorer_rpc.GetWasmCodeByIDResponse - (*GetWasmContractsRequest)(nil), // 53: injective_explorer_rpc.GetWasmContractsRequest - (*GetWasmContractsResponse)(nil), // 54: injective_explorer_rpc.GetWasmContractsResponse - (*WasmContract)(nil), // 55: injective_explorer_rpc.WasmContract - (*ContractFund)(nil), // 56: injective_explorer_rpc.ContractFund - (*Cw20Metadata)(nil), // 57: injective_explorer_rpc.Cw20Metadata - (*Cw20TokenInfo)(nil), // 58: injective_explorer_rpc.Cw20TokenInfo - (*Cw20MarketingInfo)(nil), // 59: injective_explorer_rpc.Cw20MarketingInfo - (*GetWasmContractByAddressRequest)(nil), // 60: injective_explorer_rpc.GetWasmContractByAddressRequest - (*GetWasmContractByAddressResponse)(nil), // 61: injective_explorer_rpc.GetWasmContractByAddressResponse - (*GetCw20BalanceRequest)(nil), // 62: injective_explorer_rpc.GetCw20BalanceRequest - (*GetCw20BalanceResponse)(nil), // 63: injective_explorer_rpc.GetCw20BalanceResponse - (*WasmCw20Balance)(nil), // 64: injective_explorer_rpc.WasmCw20Balance - (*RelayersRequest)(nil), // 65: injective_explorer_rpc.RelayersRequest - (*RelayersResponse)(nil), // 66: injective_explorer_rpc.RelayersResponse - (*RelayerMarkets)(nil), // 67: injective_explorer_rpc.RelayerMarkets - (*Relayer)(nil), // 68: injective_explorer_rpc.Relayer - (*GetBankTransfersRequest)(nil), // 69: injective_explorer_rpc.GetBankTransfersRequest - (*GetBankTransfersResponse)(nil), // 70: injective_explorer_rpc.GetBankTransfersResponse - (*BankTransfer)(nil), // 71: injective_explorer_rpc.BankTransfer - (*Coin)(nil), // 72: injective_explorer_rpc.Coin - (*StreamTxsRequest)(nil), // 73: injective_explorer_rpc.StreamTxsRequest - (*StreamTxsResponse)(nil), // 74: injective_explorer_rpc.StreamTxsResponse - (*StreamBlocksRequest)(nil), // 75: injective_explorer_rpc.StreamBlocksRequest - (*StreamBlocksResponse)(nil), // 76: injective_explorer_rpc.StreamBlocksResponse - (*GetStatsRequest)(nil), // 77: injective_explorer_rpc.GetStatsRequest - (*GetStatsResponse)(nil), // 78: injective_explorer_rpc.GetStatsResponse - nil, // 79: injective_explorer_rpc.Event.AttributesEntry + (*GetTxByTxHashRequest)(nil), // 32: injective_explorer_rpc.GetTxByTxHashRequest + (*GetTxByTxHashResponse)(nil), // 33: injective_explorer_rpc.GetTxByTxHashResponse + (*GetPeggyDepositTxsRequest)(nil), // 34: injective_explorer_rpc.GetPeggyDepositTxsRequest + (*GetPeggyDepositTxsResponse)(nil), // 35: injective_explorer_rpc.GetPeggyDepositTxsResponse + (*PeggyDepositTx)(nil), // 36: injective_explorer_rpc.PeggyDepositTx + (*GetPeggyWithdrawalTxsRequest)(nil), // 37: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + (*GetPeggyWithdrawalTxsResponse)(nil), // 38: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + (*PeggyWithdrawalTx)(nil), // 39: injective_explorer_rpc.PeggyWithdrawalTx + (*GetIBCTransferTxsRequest)(nil), // 40: injective_explorer_rpc.GetIBCTransferTxsRequest + (*GetIBCTransferTxsResponse)(nil), // 41: injective_explorer_rpc.GetIBCTransferTxsResponse + (*IBCTransferTx)(nil), // 42: injective_explorer_rpc.IBCTransferTx + (*GetWasmCodesRequest)(nil), // 43: injective_explorer_rpc.GetWasmCodesRequest + (*GetWasmCodesResponse)(nil), // 44: injective_explorer_rpc.GetWasmCodesResponse + (*WasmCode)(nil), // 45: injective_explorer_rpc.WasmCode + (*Checksum)(nil), // 46: injective_explorer_rpc.Checksum + (*ContractPermission)(nil), // 47: injective_explorer_rpc.ContractPermission + (*GetWasmCodeByIDRequest)(nil), // 48: injective_explorer_rpc.GetWasmCodeByIDRequest + (*GetWasmCodeByIDResponse)(nil), // 49: injective_explorer_rpc.GetWasmCodeByIDResponse + (*GetWasmContractsRequest)(nil), // 50: injective_explorer_rpc.GetWasmContractsRequest + (*GetWasmContractsResponse)(nil), // 51: injective_explorer_rpc.GetWasmContractsResponse + (*WasmContract)(nil), // 52: injective_explorer_rpc.WasmContract + (*ContractFund)(nil), // 53: injective_explorer_rpc.ContractFund + (*Cw20Metadata)(nil), // 54: injective_explorer_rpc.Cw20Metadata + (*Cw20TokenInfo)(nil), // 55: injective_explorer_rpc.Cw20TokenInfo + (*Cw20MarketingInfo)(nil), // 56: injective_explorer_rpc.Cw20MarketingInfo + (*GetWasmContractByAddressRequest)(nil), // 57: injective_explorer_rpc.GetWasmContractByAddressRequest + (*GetWasmContractByAddressResponse)(nil), // 58: injective_explorer_rpc.GetWasmContractByAddressResponse + (*GetCw20BalanceRequest)(nil), // 59: injective_explorer_rpc.GetCw20BalanceRequest + (*GetCw20BalanceResponse)(nil), // 60: injective_explorer_rpc.GetCw20BalanceResponse + (*WasmCw20Balance)(nil), // 61: injective_explorer_rpc.WasmCw20Balance + (*RelayersRequest)(nil), // 62: injective_explorer_rpc.RelayersRequest + (*RelayersResponse)(nil), // 63: injective_explorer_rpc.RelayersResponse + (*RelayerMarkets)(nil), // 64: injective_explorer_rpc.RelayerMarkets + (*Relayer)(nil), // 65: injective_explorer_rpc.Relayer + (*GetBankTransfersRequest)(nil), // 66: injective_explorer_rpc.GetBankTransfersRequest + (*GetBankTransfersResponse)(nil), // 67: injective_explorer_rpc.GetBankTransfersResponse + (*BankTransfer)(nil), // 68: injective_explorer_rpc.BankTransfer + (*Coin)(nil), // 69: injective_explorer_rpc.Coin + (*StreamTxsRequest)(nil), // 70: injective_explorer_rpc.StreamTxsRequest + (*StreamTxsResponse)(nil), // 71: injective_explorer_rpc.StreamTxsResponse + (*StreamBlocksRequest)(nil), // 72: injective_explorer_rpc.StreamBlocksRequest + (*StreamBlocksResponse)(nil), // 73: injective_explorer_rpc.StreamBlocksResponse + (*GetStatsRequest)(nil), // 74: injective_explorer_rpc.GetStatsRequest + (*GetStatsResponse)(nil), // 75: injective_explorer_rpc.GetStatsResponse + nil, // 76: injective_explorer_rpc.Event.AttributesEntry } var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 2, // 0: injective_explorer_rpc.GetAccountTxsResponse.paging:type_name -> injective_explorer_rpc.Paging @@ -7855,7 +7619,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 6, // 3: injective_explorer_rpc.TxDetailData.events:type_name -> injective_explorer_rpc.Event 7, // 4: injective_explorer_rpc.TxDetailData.signatures:type_name -> injective_explorer_rpc.Signature 5, // 5: injective_explorer_rpc.GasFee.amount:type_name -> injective_explorer_rpc.CosmosCoin - 79, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry + 76, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry 2, // 7: injective_explorer_rpc.GetContractTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 8: injective_explorer_rpc.GetContractTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData 3, // 9: injective_explorer_rpc.GetContractTxsV2Response.data:type_name -> injective_explorer_rpc.TxDetailData @@ -7873,87 +7637,83 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 24, // 21: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime 2, // 22: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 19, // 23: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData - 34, // 24: injective_explorer_rpc.GetTxsV2Response.paging:type_name -> injective_explorer_rpc.Cursor - 19, // 25: injective_explorer_rpc.GetTxsV2Response.data:type_name -> injective_explorer_rpc.TxData - 3, // 26: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 39, // 27: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx - 42, // 28: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx - 45, // 29: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx - 2, // 30: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging - 48, // 31: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode - 49, // 32: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum - 50, // 33: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission - 49, // 34: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum - 50, // 35: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission - 2, // 36: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging - 55, // 37: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract - 56, // 38: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund - 57, // 39: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 58, // 40: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo - 59, // 41: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo - 56, // 42: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund - 57, // 43: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 64, // 44: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance - 57, // 45: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 67, // 46: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets - 68, // 47: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer - 2, // 48: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging - 71, // 49: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer - 72, // 50: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin - 15, // 51: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC - 0, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest - 8, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest - 10, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request - 12, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest - 16, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest - 20, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest - 26, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest - 28, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest - 30, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest - 32, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetTxsV2:input_type -> injective_explorer_rpc.GetTxsV2Request - 35, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest - 37, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest - 40, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - 43, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest - 46, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest - 51, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest - 53, // 68: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest - 60, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest - 62, // 70: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest - 65, // 71: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest - 69, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest - 73, // 73: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest - 75, // 74: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest - 77, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest - 1, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse - 9, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse - 11, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response - 13, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse - 17, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse - 21, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse - 27, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse - 29, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse - 31, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse - 33, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetTxsV2:output_type -> injective_explorer_rpc.GetTxsV2Response - 36, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse - 38, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse - 41, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - 44, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse - 47, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse - 52, // 91: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse - 54, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse - 61, // 93: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse - 63, // 94: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse - 66, // 95: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse - 70, // 96: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse - 74, // 97: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse - 76, // 98: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse - 78, // 99: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse - 76, // [76:100] is the sub-list for method output_type - 52, // [52:76] is the sub-list for method input_type - 52, // [52:52] is the sub-list for extension type_name - 52, // [52:52] is the sub-list for extension extendee - 0, // [0:52] is the sub-list for field type_name + 3, // 24: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData + 36, // 25: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx + 39, // 26: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx + 42, // 27: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx + 2, // 28: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging + 45, // 29: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode + 46, // 30: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 31: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission + 46, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 33: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission + 2, // 34: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging + 52, // 35: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract + 53, // 36: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 37: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 55, // 38: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo + 56, // 39: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo + 53, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 41: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 61, // 42: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance + 54, // 43: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 64, // 44: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets + 65, // 45: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer + 2, // 46: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging + 68, // 47: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer + 69, // 48: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin + 15, // 49: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC + 0, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest + 8, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest + 10, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request + 12, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest + 16, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest + 20, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest + 26, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest + 28, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest + 30, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest + 32, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest + 34, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest + 37, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + 40, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest + 43, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest + 48, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest + 50, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest + 57, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest + 59, // 67: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest + 62, // 68: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest + 66, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest + 70, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest + 72, // 71: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest + 74, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:input_type -> injective_explorer_rpc.GetStatsRequest + 1, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse + 9, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse + 11, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response + 13, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse + 17, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse + 21, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse + 27, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse + 29, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse + 31, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse + 33, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse + 35, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse + 38, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + 41, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse + 44, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse + 49, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse + 51, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse + 58, // 89: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse + 60, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse + 63, // 91: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse + 67, // 92: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse + 71, // 93: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse + 73, // 94: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse + 75, // 95: injective_explorer_rpc.InjectiveExplorerRPC.GetStats:output_type -> injective_explorer_rpc.GetStatsResponse + 73, // [73:96] is the sub-list for method output_type + 50, // [50:73] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_explorer_rpc_proto_init() } @@ -8347,42 +8107,6 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { } } file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTxsV2Request); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTxsV2Response); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cursor); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxByTxHashRequest); i { case 0: return &v.state @@ -8394,7 +8118,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxByTxHashResponse); i { case 0: return &v.state @@ -8406,7 +8130,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyDepositTxsRequest); i { case 0: return &v.state @@ -8418,7 +8142,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyDepositTxsResponse); i { case 0: return &v.state @@ -8430,7 +8154,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeggyDepositTx); i { case 0: return &v.state @@ -8442,7 +8166,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyWithdrawalTxsRequest); i { case 0: return &v.state @@ -8454,7 +8178,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyWithdrawalTxsResponse); i { case 0: return &v.state @@ -8466,7 +8190,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeggyWithdrawalTx); i { case 0: return &v.state @@ -8478,7 +8202,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIBCTransferTxsRequest); i { case 0: return &v.state @@ -8490,7 +8214,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIBCTransferTxsResponse); i { case 0: return &v.state @@ -8502,7 +8226,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IBCTransferTx); i { case 0: return &v.state @@ -8514,7 +8238,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodesRequest); i { case 0: return &v.state @@ -8526,7 +8250,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodesResponse); i { case 0: return &v.state @@ -8538,7 +8262,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmCode); i { case 0: return &v.state @@ -8550,7 +8274,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Checksum); i { case 0: return &v.state @@ -8562,7 +8286,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractPermission); i { case 0: return &v.state @@ -8574,7 +8298,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodeByIDRequest); i { case 0: return &v.state @@ -8586,7 +8310,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodeByIDResponse); i { case 0: return &v.state @@ -8598,7 +8322,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractsRequest); i { case 0: return &v.state @@ -8610,7 +8334,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractsResponse); i { case 0: return &v.state @@ -8622,7 +8346,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmContract); i { case 0: return &v.state @@ -8634,7 +8358,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractFund); i { case 0: return &v.state @@ -8646,7 +8370,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20Metadata); i { case 0: return &v.state @@ -8658,7 +8382,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20TokenInfo); i { case 0: return &v.state @@ -8670,7 +8394,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20MarketingInfo); i { case 0: return &v.state @@ -8682,7 +8406,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractByAddressRequest); i { case 0: return &v.state @@ -8694,7 +8418,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractByAddressResponse); i { case 0: return &v.state @@ -8706,7 +8430,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCw20BalanceRequest); i { case 0: return &v.state @@ -8718,7 +8442,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCw20BalanceResponse); i { case 0: return &v.state @@ -8730,7 +8454,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmCw20Balance); i { case 0: return &v.state @@ -8742,7 +8466,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayersRequest); i { case 0: return &v.state @@ -8754,7 +8478,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayersResponse); i { case 0: return &v.state @@ -8766,7 +8490,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayerMarkets); i { case 0: return &v.state @@ -8778,7 +8502,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Relayer); i { case 0: return &v.state @@ -8790,7 +8514,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBankTransfersRequest); i { case 0: return &v.state @@ -8802,7 +8526,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBankTransfersResponse); i { case 0: return &v.state @@ -8814,7 +8538,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BankTransfer); i { case 0: return &v.state @@ -8826,7 +8550,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state @@ -8838,7 +8562,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTxsRequest); i { case 0: return &v.state @@ -8850,7 +8574,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTxsResponse); i { case 0: return &v.state @@ -8862,7 +8586,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBlocksRequest); i { case 0: return &v.state @@ -8874,7 +8598,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBlocksResponse); i { case 0: return &v.state @@ -8886,7 +8610,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatsRequest); i { case 0: return &v.state @@ -8898,7 +8622,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { return nil } } - file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatsResponse); i { case 0: return &v.state @@ -8917,7 +8641,7 @@ func file_goadesign_goagen_injective_explorer_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 80, + NumMessages: 77, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go index ef090dc0..1b0b94fc 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go @@ -40,8 +40,6 @@ type InjectiveExplorerRPCClient interface { GetValidatorUptime(ctx context.Context, in *GetValidatorUptimeRequest, opts ...grpc.CallOption) (*GetValidatorUptimeResponse, error) // GetTxs returns transactions based upon the request params GetTxs(ctx context.Context, in *GetTxsRequest, opts ...grpc.CallOption) (*GetTxsResponse, error) - // GetTxs returns transactions based upon the request params - GetTxsV2(ctx context.Context, in *GetTxsV2Request, opts ...grpc.CallOption) (*GetTxsV2Response, error) // GetTxByTxHash returns certain transaction information by its tx hash. GetTxByTxHash(ctx context.Context, in *GetTxByTxHashRequest, opts ...grpc.CallOption) (*GetTxByTxHashResponse, error) // GetPeggyDepositTxs returns the peggy deposit transactions based upon the @@ -165,15 +163,6 @@ func (c *injectiveExplorerRPCClient) GetTxs(ctx context.Context, in *GetTxsReque return out, nil } -func (c *injectiveExplorerRPCClient) GetTxsV2(ctx context.Context, in *GetTxsV2Request, opts ...grpc.CallOption) (*GetTxsV2Response, error) { - out := new(GetTxsV2Response) - err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *injectiveExplorerRPCClient) GetTxByTxHash(ctx context.Context, in *GetTxByTxHashRequest, opts ...grpc.CallOption) (*GetTxByTxHashResponse, error) { out := new(GetTxByTxHashResponse) err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", in, out, opts...) @@ -368,8 +357,6 @@ type InjectiveExplorerRPCServer interface { GetValidatorUptime(context.Context, *GetValidatorUptimeRequest) (*GetValidatorUptimeResponse, error) // GetTxs returns transactions based upon the request params GetTxs(context.Context, *GetTxsRequest) (*GetTxsResponse, error) - // GetTxs returns transactions based upon the request params - GetTxsV2(context.Context, *GetTxsV2Request) (*GetTxsV2Response, error) // GetTxByTxHash returns certain transaction information by its tx hash. GetTxByTxHash(context.Context, *GetTxByTxHashRequest) (*GetTxByTxHashResponse, error) // GetPeggyDepositTxs returns the peggy deposit transactions based upon the @@ -436,9 +423,6 @@ func (UnimplementedInjectiveExplorerRPCServer) GetValidatorUptime(context.Contex func (UnimplementedInjectiveExplorerRPCServer) GetTxs(context.Context, *GetTxsRequest) (*GetTxsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTxs not implemented") } -func (UnimplementedInjectiveExplorerRPCServer) GetTxsV2(context.Context, *GetTxsV2Request) (*GetTxsV2Response, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetTxsV2 not implemented") -} func (UnimplementedInjectiveExplorerRPCServer) GetTxByTxHash(context.Context, *GetTxByTxHashRequest) (*GetTxByTxHashResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTxByTxHash not implemented") } @@ -656,24 +640,6 @@ func _InjectiveExplorerRPC_GetTxs_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _InjectiveExplorerRPC_GetTxsV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetTxsV2Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InjectiveExplorerRPCServer).GetTxsV2(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxsV2", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InjectiveExplorerRPCServer).GetTxsV2(ctx, req.(*GetTxsV2Request)) - } - return interceptor(ctx, in, info, handler) -} - func _InjectiveExplorerRPC_GetTxByTxHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetTxByTxHashRequest) if err := dec(in); err != nil { @@ -975,10 +941,6 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTxs", Handler: _InjectiveExplorerRPC_GetTxs_Handler, }, - { - MethodName: "GetTxsV2", - Handler: _InjectiveExplorerRPC_GetTxsV2_Handler, - }, { MethodName: "GetTxByTxHash", Handler: _InjectiveExplorerRPC_GetTxByTxHash_Handler, diff --git a/proto/injective/exchange/v1beta1/events.proto b/proto/injective/exchange/v1beta1/events.proto index 22cbafdd..0363f43d 100644 --- a/proto/injective/exchange/v1beta1/events.proto +++ b/proto/injective/exchange/v1beta1/events.proto @@ -53,6 +53,16 @@ message EventDerivativeMarketPaused { string missing_funds_rate = 4; } +message EventSettledMarketBalance { + string market_id = 1; + string amount = 2; +} + +message EventNotSettledMarketBalance { + string market_id = 1; + string amount = 2; +} + message EventMarketBeyondBankruptcy { string market_id = 1; string settle_price = 2; diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto index d05131e9..b21e441b 100644 --- a/proto/injective/exchange/v1beta1/exchange.proto +++ b/proto/injective/exchange/v1beta1/exchange.proto @@ -272,6 +272,7 @@ message DerivativeMarket { // quote token decimals uint32 quote_decimals = 20; } + // An object describing a binary options market in Injective Protocol. message BinaryOptionsMarket { option (gogoproto.goproto_getters) = false; @@ -990,3 +991,11 @@ message EffectiveGrant { ]; bool is_valid = 3; } + +message DenomMinNotional { + string denom = 1; + string min_notional = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/injective/exchange/v1beta1/genesis.proto b/proto/injective/exchange/v1beta1/genesis.proto index eccb4363..097067cf 100644 --- a/proto/injective/exchange/v1beta1/genesis.proto +++ b/proto/injective/exchange/v1beta1/genesis.proto @@ -133,6 +133,8 @@ message GenesisState { repeated FullGrantAuthorizations grant_authorizations = 35; repeated FullActiveGrant active_grants = 36; + + repeated DenomMinNotional denom_min_notionals = 37; } message OrderbookSequence { diff --git a/proto/injective/exchange/v1beta1/proposal.proto b/proto/injective/exchange/v1beta1/proposal.proto index cc0a836e..fc9b7057 100644 --- a/proto/injective/exchange/v1beta1/proposal.proto +++ b/proto/injective/exchange/v1beta1/proposal.proto @@ -119,6 +119,8 @@ message BatchExchangeModificationProposal { repeated MarketForcedSettlementProposal market_forced_settlement_proposals = 13; + + DenomMinNotionalProposal denom_min_notional_proposal = 14; } // SpotMarketLaunchProposal defines a SDK message for proposing a new spot @@ -659,4 +661,16 @@ message AtomicMarketOrderFeeMultiplierScheduleProposal { string description = 2; repeated MarketFeeMultiplier market_fee_multipliers = 3; +} + +message DenomMinNotionalProposal { + option (amino.name) = "exchange/DenomMinNotionalProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + + repeated DenomMinNotional denom_min_notionals = 3; } \ No newline at end of file diff --git a/proto/injective/exchange/v1beta1/query.proto b/proto/injective/exchange/v1beta1/query.proto index 4b498a01..78753374 100644 --- a/proto/injective/exchange/v1beta1/query.proto +++ b/proto/injective/exchange/v1beta1/query.proto @@ -448,6 +448,32 @@ service Query { option (google.api.http).get = "/injective/exchange/v1beta1/grant_authorizations/{granter}"; } + + // Retrieves a derivative or binary options market's balance + rpc MarketBalance(QueryMarketBalanceRequest) + returns (QueryMarketBalanceResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/market_balance/{market_id}"; + } + // Retrieves all derivative or binary options market balances + rpc MarketBalances(QueryMarketBalancesRequest) + returns (QueryMarketBalancesResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/market_balances"; + } + // Retrieves the min notional for a denom + rpc DenomMinNotional(QueryDenomMinNotionalRequest) + returns (QueryDenomMinNotionalResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/denom_min_notional/{denom}"; + } + + // Retrieves the min notionals for all denoms + rpc DenomMinNotionals(QueryDenomMinNotionalsRequest) + returns (QueryDenomMinNotionalsResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/denom_min_notionals"; + } } message Subaccount { @@ -1491,3 +1517,44 @@ message QueryGrantAuthorizationsResponse { ]; repeated GrantAuthorization grants = 2; } + +message QueryMarketBalanceRequest { + // market id + string market_id = 1; +} + +message QueryMarketBalanceResponse { + string balance = 1[ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message QueryMarketBalancesRequest {} + +message QueryMarketBalancesResponse { + repeated MarketBalance balances = 1; +} + +message MarketBalance { + string market_id = 1; + string balance = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message QueryDenomMinNotionalRequest { string denom = 1; } + +message QueryDenomMinNotionalResponse { + string amount = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message QueryDenomMinNotionalsRequest {} + +message QueryDenomMinNotionalsResponse { + repeated DenomMinNotional denom_min_notionals = 1; +} diff --git a/proto/injective/wasmx/v1/authz.proto b/proto/injective/wasmx/v1/authz.proto new file mode 100644 index 00000000..4f03a8c0 --- /dev/null +++ b/proto/injective/wasmx/v1/authz.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package injective.wasmx.v1; + +import "cosmwasm/wasm/v1/authz.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; + +// ContractExecutionAuthorization defines authorization for wasm execute. +// Since: wasmd 0.30 +message ContractExecutionCompatAuthorization { + option (amino.name) = "wasmx/ContractExecutionCompatAuthorization"; + option (cosmos_proto.implements_interface) = + "cosmos.authz.v1beta1.Authorization"; + + // Grants for contract executions + repeated cosmwasm.wasm.v1.ContractGrant grants = 1 + [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ]; +} \ No newline at end of file